在测试部署k8s环境后,测试创建容器环境,执行创建命令后,提示deployment创建成功,但是在查看pod时,提示没有pod,场景信息如下:

[root@k8s1-1 kubernetes]# kubectl run nginx  --image=nginx --replicas=1 --port=8000 deployment "nginx" created [root@k8s1-1 kubernetes]# kubectl  get pod No resources found. [root@k8s1-1 kubernetes]# kubectl  get deployment       # NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE nginx     1         0         0            0           23s

想起k8s从执行命令到创建pod的过程,如下:

k8s创建容器可以查看deployment但是没有pod创建的异常

可以先判断出可能出现问题的点:controller-manager,一下是排查controller-manager的步骤,事实证明就是该点创建pod报错,并根据提示报错提示信息解决问题的,

1.查看controller-manager的服务启动是否正常,服务正常,但是有提示replica_set创建nginx的pod失败

[root@k8s1-1 ~]# systemctl status  kube-controller-manager ● kube-controller-manager.service - Kubernetes Controller Manager    Loaded: loaded (/usr/lib/systemd/system/kube-controller-manager.service; enabled; vendor preset: disabled)    Active: active (running) since 三 2020-03-11 22:27:45 CST; 13h ago      Docs: https://github.com/GoogleCloudPlatform/kubernetes  Main PID: 2749 (kube-controller)    Memory: 63.0M    CGroup: /system.slice/kube-controller-manager.service            └─2749 /usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=http://192.168.191.20:8080 3月 12 12:18:00 k8s1-1 kube-controller-manager[2749]: E0312 12:18:00.745860    2749 replica_set.go:448] Sync "default/nginx-3360602662" failed...account 3月 12 12:18:00 k8s1-1 kube-controller-manager[2749]: I0312 12:18:00.746001    2749 event.go:217] Event(api.ObjectReference{Kind:"ReplicaSet", Namesp... 3月 12 12:18:10 k8s1-1 kube-controller-manager[2749]: I0312 12:18:10.964525    2749 event.go:217] Event(api.ObjectReference{Kind:"ReplicaSet", Namesp... 3月 12 12:18:10 k8s1-1 kube-controller-manager[2749]: E0312 12:18:10.964989    2749 replica_set.go:448] Sync "default/nginx-3360602662" failed...account 3月 12 12:19:00 k8s1-1 kube-controller-manager[2749]: E0312 12:19:00.974815    2749 replica_set.go:448] Sync "default/nginx-3360602662" failed...account 3月 12 12:19:00 k8s1-1 kube-controller-manager[2749]: I0312 12:19:00.975211    2749 event.go:217] Event(api.ObjectReference{Kind:"ReplicaSet", Namesp... 3月 12 12:20:31 k8s1-1 kube-controller-manager[2749]: E0312 12:20:31.943106    2749 replica_set.go:448] Sync "default/nginx-3360602662" failed...account 3月 12 12:20:31 k8s1-1 kube-controller-manager[2749]: I0312 12:20:31.944967    2749 event.go:217] Event(api.ObjectReference{Kind:"ReplicaSet", Namesp... 3月 12 12:23:24 k8s1-1 kube-controller-manager[2749]: I0312 12:23:24.817465    2749 event.go:217] Event(api.ObjectReference{Kind:"ReplicaSet", Namesp... 3月 12 12:23:24 k8s1-1 kube-controller-manager[2749]: E0312 12:23:24.817504    2749 replica_set.go:448] Sync "default/nginx-3360602662" failed...account Hint: Some lines were ellipsized, use -l to show in full.

2.查看具体的信息

tail -f  /var/log/message Mar 12 10:32:09 k8s1-1 kube-controller-manager: E0312 10:32:09.872378    2749 replica_set.go:448] Sync "default/nginx-3360602662" failed with unable to c reate pods: No API token found for service account "default", retry after the token is automatically created and added to the service account Mar 12 10:32:09 k8s1-1 kube-controller-manager: I0312 10:32:09.873371    2749 event.go:217] Event(api.ObjectReference{Kind:"ReplicaSet", Namespace:"defau lt", Name:"nginx-3360602662", UID:"826df3de-63ab-11ea-86b1-000c295f23c3", APIVersion:"extensions", ResourceVersion:"3632", FieldPath:""}): type: 'Warning ' reason: 'FailedCreate' Error creating: No API token found for service account "default", retry after the token is automatically created and added to th e service account

3.百度查到是因为kube-apiservice和kube-controller-manager中没有配置serviceaccount

1、首先生成密钥: openssl genrsa -out /etc/kubernetes/serviceaccount.key 2048 2、编辑/etc/kubenetes/apiserver 添加以下内容: KUBE_API_ARGS="--service_account_key_file=/etc/kubernetes/serviceaccount.key" 3、再编辑/etc/kubernetes/controller-manager 添加以下内容: KUBE_CONTROLLER_MANAGER_ARGS="--service_account_private_key_file=/etc/kubernetes/serviceaccount.key" 最后无论是哪种解决方式都需要再重启kubernetes服务: systemctl restart etcd kube-apiserver kube-controller-manager kube-scheduler

4.再次查看创建的pod和deployment信息正常

[root@k8s1-1 ~]# kubectl get deployment NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE nginx     1         1         1            0           2h [root@k8s1-1 ~]# kubectl get pod NAME                     READY     STATUS              RESTARTS   AGE nginx-3360602662-1bl96   0/1       ContainerCreating   0          25m

    在测试部署k8s环境后,测试创建容器环境,执行创建命令后,提示deployment创建成功,但是在查看pod时,提示没有pod,场景信息如下:

[root@k8s1-1 kubernetes]# kubectl run nginx  --image=nginx --replicas=1 --port=8000 deployment "nginx" created [root@k8s1-1 kubernetes]# kubectl  get pod No resources found. [root@k8s1-1 kubernetes]# kubectl  get deployment       # NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE nginx     1         0         0            0           23s

想起k8s从执行命令到创建pod的过程,如下:

k8s创建容器可以查看deployment但是没有pod创建的异常

可以先判断出可能出现问题的点:controller-manager,一下是排查controller-manager的步骤,事实证明就是该点创建pod报错,并根据提示报错提示信息解决问题的,

1.查看controller-manager的服务启动是否正常,服务正常,但是有提示replica_set创建nginx的pod失败

[root@k8s1-1 ~]# systemctl status  kube-controller-manager ● kube-controller-manager.service - Kubernetes Controller Manager    Loaded: loaded (/usr/lib/systemd/system/kube-controller-manager.service; enabled; vendor preset: disabled)    Active: active (running) since 三 2020-03-11 22:27:45 CST; 13h ago      Docs: https://github.com/GoogleCloudPlatform/kubernetes  Main PID: 2749 (kube-controller)    Memory: 63.0M    CGroup: /system.slice/kube-controller-manager.service            └─2749 /usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=http://192.168.191.20:8080 3月 12 12:18:00 k8s1-1 kube-controller-manager[2749]: E0312 12:18:00.745860    2749 replica_set.go:448] Sync "default/nginx-3360602662" failed...account 3月 12 12:18:00 k8s1-1 kube-controller-manager[2749]: I0312 12:18:00.746001    2749 event.go:217] Event(api.ObjectReference{Kind:"ReplicaSet", Namesp... 3月 12 12:18:10 k8s1-1 kube-controller-manager[2749]: I0312 12:18:10.964525    2749 event.go:217] Event(api.ObjectReference{Kind:"ReplicaSet", Namesp... 3月 12 12:18:10 k8s1-1 kube-controller-manager[2749]: E0312 12:18:10.964989    2749 replica_set.go:448] Sync "default/nginx-3360602662" failed...account 3月 12 12:19:00 k8s1-1 kube-controller-manager[2749]: E0312 12:19:00.974815    2749 replica_set.go:448] Sync "default/nginx-3360602662" failed...account 3月 12 12:19:00 k8s1-1 kube-controller-manager[2749]: I0312 12:19:00.975211    2749 event.go:217] Event(api.ObjectReference{Kind:"ReplicaSet", Namesp... 3月 12 12:20:31 k8s1-1 kube-controller-manager[2749]: E0312 12:20:31.943106    2749 replica_set.go:448] Sync "default/nginx-3360602662" failed...account 3月 12 12:20:31 k8s1-1 kube-controller-manager[2749]: I0312 12:20:31.944967    2749 event.go:217] Event(api.ObjectReference{Kind:"ReplicaSet", Namesp... 3月 12 12:23:24 k8s1-1 kube-controller-manager[2749]: I0312 12:23:24.817465    2749 event.go:217] Event(api.ObjectReference{Kind:"ReplicaSet", Namesp... 3月 12 12:23:24 k8s1-1 kube-controller-manager[2749]: E0312 12:23:24.817504    2749 replica_set.go:448] Sync "default/nginx-3360602662" failed...account Hint: Some lines were ellipsized, use -l to show in full.

2.查看具体的信息

tail -f  /var/log/message Mar 12 10:32:09 k8s1-1 kube-controller-manager: E0312 10:32:09.872378    2749 replica_set.go:448] Sync "default/nginx-3360602662" failed with unable to c reate pods: No API token found for service account "default", retry after the token is automatically created and added to the service account Mar 12 10:32:09 k8s1-1 kube-controller-manager: I0312 10:32:09.873371    2749 event.go:217] Event(api.ObjectReference{Kind:"ReplicaSet", Namespace:"defau lt", Name:"nginx-3360602662", UID:"826df3de-63ab-11ea-86b1-000c295f23c3", APIVersion:"extensions", ResourceVersion:"3632", FieldPath:""}): type: 'Warning ' reason: 'FailedCreate' Error creating: No API token found for service account "default", retry after the token is automatically created and added to th e service account

3.百度查到是因为kube-apiservice和kube-controller-manager中没有配置serviceaccount

1、首先生成密钥: openssl genrsa -out /etc/kubernetes/serviceaccount.key 2048 2、编辑/etc/kubenetes/apiserver 添加以下内容: KUBE_API_ARGS="--service_account_key_file=/etc/kubernetes/serviceaccount.key" 3、再编辑/etc/kubernetes/controller-manager 添加以下内容: KUBE_CONTROLLER_MANAGER_ARGS="--service_account_private_key_file=/etc/kubernetes/serviceaccount.key" 最后无论是哪种解决方式都需要再重启kubernetes服务: systemctl restart etcd kube-apiserver kube-controller-manager kube-scheduler

4.再次查看创建的pod和deployment信息正常

[root@k8s1-1 ~]# kubectl get deployment NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE nginx     1         1         1            0           2h [root@k8s1-1 ~]# kubectl get pod NAME                     READY     STATUS              RESTARTS   AGE nginx-3360602662-1bl96   0/1       ContainerCreating   0          25m

  • 版权声明:文章来源于网络采集,版权归原创者所有,均已注明来源,如未注明可能来源未知,如有侵权请联系管理员删除。

发表回复

后才能评论