Kubeadm: ポート10251および10252が使用中です

作成日 2017年07月07日  ·  13コメント  ·  ソース: kubernetes/kubeadm

バージョン情報

kubeadm v1.6.5

再現する

マスターサーバーの場合:(1) kubeadm init ; (2) kubeadm reset ; (3) kubeadm initもう一度実行すると、エラーport 10251 is in use, port 10252 is in useます。

kubeadm init --token abcdef.1234567890abcdef --kubernetes-version v1.6.5
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
[init] Using Kubernetes version: v1.6.5
[init] Using Authorization mode: RBAC
[preflight] Running pre-flight checks
[preflight] Some fatal errors occurred:
    Port 10251 is in use
    Port 10252 is in use

解決

すべてのポートの使用状況を確認します。 kubeadmがcontrollerschedulerリセットに失敗したようです。

$ netstat -lnp | grep 1025
tcp6       0      0 :::10251                :::*                    LISTEN      4366/kube-scheduler
tcp6       0      0 :::10252                :::*                    LISTEN      4353/kube-controlle
$ kill 4366
$ kill 4353

それらを強制終了した後、kubernetesクラスターを初期化できます。

kubeadm init --token abcdef.1234567890abcdef --kubernetes-version v1.6.5
[kubeadm] WARNING:  is in beta, please do not use it for production clusters.
[init] Using Kubernetes version: v1.6.5
[init] Using Authorization mode: RBAC
[preflight] Running pre-flight checks
[preflight] Starting the kubelet service
[certificates] Generated CA certificate and key.
[certificates] Generated API server certificate and key.
[certificates] API Server serving cert is signed for DNS names [xxx.xxx.xxx.xxx kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [xxx.xxx.xxx.xxx]
[certificates] Generated API server kubelet client certificate and key.
[certificates] Generated service account token signing key and public key.
[certificates] Generated front-proxy CA certificate and key.
[certificates] Generated front-proxy client certificate and key.
[certificates] Valid certificates and keys now exist in "/etc/kubernetes/pki"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"
[apiclient] Created API client, waiting for the control plane to become ready
[apiclient] All control plane components are healthy after 16.281203 seconds
[apiclient] Waiting for at least one node to register
[apiclient] First node has registered after 5.501873 seconds
[token] Using token: abcdef.1234567890abcdef
[apiconfig] Created RBAC rules
[addons] Created essential addon: kube-proxy
[addons] Created essential addon: kube-dns

Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run (as a regular user):

  sudo cp /etc/kubernetes/admin.conf $HOME/
  sudo chown $(id -u):$(id -g) $HOME/admin.conf
  export KUBECONFIG=$HOME/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  http://kubernetes.io/docs/admin/addons/

You can now join any number of machines by running the following on each node
as root:

  kubeadm join --token abcdef.1234567890abcdef xxx.xxx.xxx.xxx:6443

一言で言えば

同じ問題を解決したいユーザーのためのソリューションを添付しました。
バグかどうか確認してもらえますか?

最も参考になるコメント

問題を提出していただきありがとうございます!

本当にバグではないと思います。 kube-schedulerコンテナーとcontroller-managerコンテナーがまだ実行されていたため、どういうわけかyou / kubeadmが正しくクリーンアップされていません。 または、dockerが何らかの方法でそれらを再起動しました。
または、なんとかしてコントローラーマネージャーとスケジューラーを自分で起動しました。
または、事前にkubeadm resetを少し入れておきます...

頻繁に発生する場合は、再度開いてください。ただし、ここで修正するものはないと思います。

全てのコメント13件

問題を提出していただきありがとうございます!

本当にバグではないと思います。 kube-schedulerコンテナーとcontroller-managerコンテナーがまだ実行されていたため、どういうわけかyou / kubeadmが正しくクリーンアップされていません。 または、dockerが何らかの方法でそれらを再起動しました。
または、なんとかしてコントローラーマネージャーとスケジューラーを自分で起動しました。
または、事前にkubeadm resetを少し入れておきます...

頻繁に発生する場合は、再度開いてください。ただし、ここで修正するものはないと思います。

@luxasフェアポイント。 この問題に注意を払います。 問題の原因となる構成に問題がある場合は、それを報告したいと思います。

あなたのヒントに従いましたが、それでも同じ問題がありました。 minikubeが実行されていることに気付きました。これは、同じポートを使用しているため停止する必要がありましたが、プロセスは「localkube」としてリストされています。

@luxasが言ったように、これは
$ sudokubeadmリセット

Dockerをダウングレードしてから、minikubeを実行しようとすると、この状況に陥りました。 @luxasが提案したように、 kubeadmresetは問題を

kubeadmリセットで問題が修正されました

docker ps; docker inspect etcd1は、関連するポート番号を使用していたetcdコンテナを一覧表示しました。 したがって、 sudo kubeadm initは成功しませんでした。
私がしたように: docker kill etcd1

kubernetesクラスター(SSH、kernel cgroups configなど)の初期化に関しては、他にもいくつかの問題が残っています。基本的に、使用しているLinux / Architectureのバージョンはわかっていますが、要件の詳細で解決される可能性があります。

kubeadmリセット
私も問題を修正しました

ミニクベスタートも同じ問題です。
そして、私は次の手順で問題を解決しました:
1、docker stop $(docker ps -a -q)
2、minikubestartの--extra-configパラメータを使用します。 例:minikube start --kubernetes-version = 1.17.2 --vm-driver = none kubelet.ignore-preflight-errors kubeadm.ignore-preflight-errors

ミニクベスタートも同じ問題です。
そして、私は次の手順で問題を解決しました:
1、docker stop $(docker ps -a -q)
2、minikubestartの--extra-configパラメータを使用します。 例:minikube start --kubernetes-version = 1.17.2 --vm-driver = none kubelet.ignore-preflight-errors kubeadm.ignore-preflight-errors

皆さんこんにちは、
ubuntu VMにKubernetesをインストールしようとしていますが、残念ながら、kubeadmがリセットされているにもかかわらず問題が発生しています。
root @ KVM :〜#kubeadm init --config = kubeadm-config.yaml --upload-certs | tee kubeadm-init.out#将来のレビューのために出力を保存します
W0719 22:06:28.075574 15363 configset.go:202]警告:kubeadmはAPIグループのコンポーネント構成を検証できません[kubelet.config.k8s.io kubeproxy.config.k8s.io]
[init] Kubernetesバージョンの使用:v1.18.1
[プリフライト]プリフライトチェックの実行
[警告IsDockerSystemdCheck]:Dockercgroupドライバーとして「cgroupfs」が検出されました。 推奨されるドライバーは「systemd」です。 https://kubernetes.io/docs/setup/cri/のガイドに従って
[プリフライト] Kubernetesクラスターのセットアップに必要な画像のプル
[プリフライト]インターネット接続の速度によっては、1〜2分かかる場合があります
[プリフライト]このアクションは、「kubeadm configimagespull」を使用して事前に実行することもできます
[kubelet-start]フラグ付きのkubelet環境ファイルをファイル「/var/lib/kubelet/kubeadm-flags.env」に書き込んでいます
[kubelet-start]ファイル「/var/lib/kubelet/config.yaml」へのkubelet設定の書き込み
[kubelet-start] kubeletを開始します
[証明書] certificateDirフォルダー「/ etc / kubernetes / pki」を使用
[証明書]「ca」証明書とキーの生成
[証明書]「apiserver」証明書とキーの生成
[certs] apiserverサービング証明書は、DNS名[ahmed-kvm kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.localk8smaster]およびIP [xxxxxxxx]に対して署名されています
[証明書]「apiserver-kubelet-client」証明書とキーの生成
[証明書]「front-proxy-ca」証明書とキーの生成
[証明書]「front-proxy-client」証明書とキーの生成
[証明書]「etcd / ca」証明書とキーの生成
[証明書]「etcd / server」証明書とキーの生成
[証明書] etcd /サーバーサービング証明書はDNS名[ahmed-kvmlocalhost]およびIP [xxxxxxxx]に対して署名されています
[証明書]「etcd / peer」証明書とキーの生成
[証明書] etcd / peerserving証明書は、DNS名[ahmed-kvmlocalhost]およびIP [xxxxxxxx]に対して署名されています
[証明書]「etcd / healthcheck-client」証明書とキーの生成
[証明書]「apiserver-etcd-client」証明書とキーの生成
[証明書]「sa」キーと公開キーの生成
[kubeconfig] kubeconfigフォルダー「/ etc / kubernetes」を使用する
[kubeconfig]「admin.conf」kubeconfigファイルの書き込み
[kubeconfig]「kubelet.conf」kubeconfigファイルの書き込み
[kubeconfig]「controller-manager.conf」kubeconfigファイルの書き込み
[kubeconfig]「scheduler.conf」kubeconfigファイルの書き込み
[コントロールプレーン]マニフェストフォルダー「/ etc / kubernetes / manifests」を使用する
[コントロールプレーン]「kube-apiserver」の静的ポッドマニフェストを作成する
W0719 22:06:31.223537 15363manifests.go:225]デフォルトのkube-apiserver認証モードは「Node、RBAC」です。 「Node、RBAC」を使用
[コントロールプレーン]「kube-controller-manager」の静的ポッドマニフェストを作成する
W0719 22:06:31.224263 15363manifests.go:225]デフォルトのkube-apiserver認証モードは「Node、RBAC」です。 「Node、RBAC」を使用
[コントロールプレーン]「kube-scheduler」の静的ポッドマニフェストを作成する
[etcd]「/ etc / kubernetes / manifests」にローカルetcdの静的ポッドマニフェストを作成する
[wait-control-plane] kubeletがディレクトリ「/ etc / kubernetes / manifests」から静的ポッドとしてコントロールプレーンを起動するのを待機しています。 これには最大4分0秒かかる場合があります
[kubelet-check] 40秒の初期タイムアウトが過ぎました。

Unfortunately, an error has occurred:
    timed out waiting for the condition

This error is likely caused by:
    - The kubelet is not running
    - The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)

If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands:
    - 'systemctl status kubelet'
    - 'journalctl -xeu kubelet'

Additionally, a control plane component may have crashed or exited when started by the container runtime.
To troubleshoot, list all containers using your preferred container runtimes CLI.

Here is one example how you may list all Kubernetes containers running in docker:
    - 'docker ps -a | grep kube | grep -v pause'
    Once you have found the failing container, you can inspect its logs with:
    - 'docker logs CONTAINERID'

エラー実行フェーズwait-control-plane:Kubernetesクラスターを初期化できませんでした
このエラーのスタックトレースを確認するには、-v = 5以上で実行します

ご協力いただきありがとうございます

この問題に直面している人は、 microk8sインストールされているかどうかを確認して削除してください。 それが私の問題でした

sudo kubeadm reset

私も解決しました

このページは役に立ちましたか?
0 / 5 - 0 評価