问题1:
虽然每次通过yaml创建rc都显示成功了,但是
kubectl get pod却没显示任何的pod.
问题2:
直接通过yaml创建pod提示apixxx
问题3:
通过.json文件创建pod
未验证
原因是身份认证
解决方法有两种,我用的第一种:
1.跳过认证
/linux/installing-kubernetes-cluster-on-centos7-to-manage-pods-and-services/
创建pod:
# kubectl create -f
此时有如下报错:
Error from server: error when creating "": Pod "nginx" is forbidden: no API token found for service account default/default, retry after the token is automatically created and added to the service account
解决办法是编辑/etc/kubernetes/apiserver 去除 KUBE_ADMISSION_CONTROL中的SecurityContextDeny,ServiceAccount,并重启服务:
#vim /etc/kubernetes/apiserver
KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota"
#systemctl restart
之后重新创建pod:
# kubectl create -f
pods/nginx
2.解决认证
出处:
/questions/34464779/pod-mysql-is-forbidden-no-api-token-found-for-service-account-default-default
To get your setup working, you can do the same thing is doing:
Generate a signing key:
openssl genrsa -out /tmp/ 2048
Update /etc/kubernetes/apiserver:
KUBE_API_ARGS=”–service_account_key_file=/tmp/”
Update /etc/kubernetes/controller-manager:
KUBE_CONTROLLER_MANAGER_ARGS=”–service_account_private_key_file=/tmp/”
From /kubernetes/kubernetes/issues/11355#issuecomment-127378691
完了之后可以看到pod了,但是发现是挂起状态,pending,于是查了下发现是因为无法从拉取pause0.8.0的镜像。那么很简单 就找个可用的镜像拉取即可。
docker pull /kubernetes/pause
现在再来看看pod:
OK了!。至此,问题解决。