kubernetes创建RC的时候,创建不成功
1. 环境:node节点已经成功连接到master节点,并且在两个节点都添加对方docker0的静态路由。
2. 创建RC,内容如下:
apiVersion: v1
kind: ReplicationController
metadata:
name: blog-controller
spec:
replicas: 2
selector:
name: blog
template:
metadata:
labels:
name: blog
spec:
containers:
- name: blog
image: 172.16.20.215:5000/blognew4:v4
ports:
- containerPort: 80
结果:kubectl get rc,显示的结果为:

3. 使用命令:kubectl describe rc blog,结果如下:
[root@k8s-v1 tools]# kubectl describe rc blog
Name: blog-controller
Namespace: default
Selector: name=blog
Labels: name=blog
Annotations: <none>
Replicas: 0 current / 2 desired
Pods Status: 0 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
Labels: name=blog
Containers:
blog:
Image: 172.16.20.215:5000/blognew4:v4
Port: 80/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
ReplicaFailure True FailedCreate
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedCreate 6m (x18 over 19m) replication-controller Error creating: No API token found for service account "default", retry after the token is automatically created and added to the service account
解决方法:将/etc/kubernetes/apiserver中的KUBE_ADMISSION_CONTROL中的ServiceAccount删除。
这个ServiceAccount做什么用的?还不清楚。
4. 再创建RC,查看RC,状态正常了。
5. 查看pod状态,结果如下:

查看详细的错误:kubectl describe pod apache-controller-592zz,内容如下:
[root@k8s-v1 tools]# kubectl describe pod apache-controller-592zz
Name: apache-controller-592zz
Namespace: default
Node: 172.16.252.209/172.16.252.209
Start Time: Mon, 05 Mar 2018 16:47:10 +0800
Labels: name=apache
Annotations: kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicationController","namespace":"default","name":"apache-controller","uid":"cb0c03eb-2051-11e8-872d-000...
Status: Pending
IP: 192.168.130.2
Created By: ReplicationController/apache-controller
Controlled By: ReplicationController/apache-controller
Containers:
apache:
Container ID:
Image: 172.16.20.215:5000/httpd
Image ID:
Port: 80/TCP
State: Waiting
Reason: ImagePullBackOff
Ready: False
Restart Count: 0
Environment: <none>
Mounts: <none>
Conditions:
Type Status
Initialized True
Ready False
PodScheduled True
Volumes: <none>
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 6m default-scheduler Successfully assigned apache-controller-592zz to 172.16.252.209
Normal Pulling 4m (x4 over 6m) kubelet, 172.16.252.209 pulling image "172.16.20.215:5000/httpd"
Warning Failed 4m (x4 over 6m) kubelet, 172.16.252.209 Failed to pull image "172.16.20.215:5000/httpd": rpc error: code = Unknown desc = Error: image httpd:latest not found
Normal BackOff 4m (x6 over 6m) kubelet, 172.16.252.209 Back-off pulling image "172.16.20.215:5000/httpd"
Warning FailedSync 1m (x26 over 6m) kubelet, 172.16.252.209 Error syncing pod
解决方法:因为我上传的镜像带有标签,所以我需要在拉镜像的时候,添加上标签。删除旧的RC,重新创建RC,成功了。
6. 当前使用的yaml文件,没有配置pod亲和性,所以当我把一个节点关机以后,所有的pod都跑到另外一个节点上了。
等我关掉的那台机器恢复以后,pod不会自动回来。
如何让那些pod自动回来呢?
一往无前虎山行,拨开云雾见光明

浙公网安备 33010602011771号