kubernetes podの起動に失敗しました
「kubernetes権威ガイド」の入門の一例では、podが
問題は明らかで、
インストール
ここでまた問題が発生しました.
では、どうすればいいのでしょうか.
次にrpmパッケージを手動でインストールします.
このとき、
この場合
この場合、前に作成したrc、svc、podをすべて削除して再作成し、pod起動に成功しました原因推測:エラーメッセージによると、pod起動には
ContainerCreating
の状態にあることを発見し、kubectl describe pod mysql
を使ったとき、次のようなエラーを発見しました.Events:
FirstSeen LastSeen Count From SubObjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
1h 24m 17 {kubelet 127.0.0.1} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "POD" with ErrImagePull: "image pull failed for registry.access.redhat.com/rhel7/pod-infrastructure:latest, this may be because there are no credentials on this request. details: (open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory)"
1h 19m 291 {kubelet 127.0.0.1} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image \"registry.access.redhat.com/rhel7/pod-infrastructure:latest\""
15m 15m 1 {kubelet 127.0.0.1} Warning MissingClusterDNS kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to DNSDefault policy.
15m 15m 1 {kubelet 127.0.0.1} spec.containers{mysql} Normal Pulling pulling image "mysql"
7m 7m 1 {kubelet 127.0.0.1} Warning MissingClusterDNS kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to DNSDefault policy.
7m 7m 1 {kubelet 127.0.0.1} spec.containers{mysql} Normal Pulling pulling image "mysql"
問題は明らかで、
/etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt
ファイルがなく、ls -l
で見たところソフトリンクであり、/etc/rhsm/ca/redhat-uep.pem
にリンクされていることが分かったが、このファイルは存在せず、yum search *rhsm*
コマンドを使用している.インストール
python-rhsm-certificates
パッケージ:# yum install python-rhsm-certificates -y
ここでまた問題が発生しました.
python-rhsm-certificates <= 1.20.3-1 ( ) subscription-manager-rhsm-certificates-1.20.11-1.el7.centos.x86_64
では、どうすればいいのでしょうか.
subscription-manager-rhsm-certificates
パッケージを直接アンインストールし、yum remove subscription-manager-rhsm-certificates -y
コマンドを使用して、python-rhsm-certificates
パッケージをダウンロードします.# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm
次にrpmパッケージを手動でインストールします.
# rpm -ivh python-rhsm-certificates
このとき、
/etc/rhsm/ca/redhat-uep.pem
ファイルは既に存在します.docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest
コマンドを使用してミラーをダウンロードしますが、遅くなる可能性があります.https://dashboard.daocloud.ioサイトにアカウントを登録し、アクセラレータをクリックして実行し、その後dockerを再起動すると加速し、dockerサービスを再起動するときに起動できない場合はsystemctl status docker
:を使用します.# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 2018-05-28 22:13:37 CST; 13s ago
Docs: http://docs.docker.com
Process: 79849 ExecStart=/usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/docker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY $REGISTRIES (code=exited, status=1/FAILURE)
Main PID: 79849 (code=exited, status=1/FAILURE)
5 28 22:13:37 kube.example.com systemd[1]: Starting Docker Application Container Engine...
5 28 22:13:37 kube.example.com dockerd-current[79849]: unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character '}' loo...y string
5 28 22:13:37 kube.example.com systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
5 28 22:13:37 kube.example.com systemd[1]: Failed to start Docker Application Container Engine.
5 28 22:13:37 kube.example.com systemd[1]: Unit docker.service entered failed state.
5 28 22:13:37 kube.example.com systemd[1]: docker.service failed.
Hint: Some lines were ellipsized, use -l to show in full
この場合
/etc/docker/seccomp.json
を削除し、再起動すればよいこの場合、前に作成したrc、svc、podをすべて削除して再作成し、pod起動に成功しました原因推測:エラーメッセージによると、pod起動には
registry.access.redhat.com/rhel7/pod-infrastructure:latest
ミラーが必要で、赤帽倉庫にダウンロードする必要があるが、証明書がなく、証明書をインストールしてからでよい.