1. 建立Nginx Pod過程當中報以下錯誤:node
#kubectlcreate -f nginx-pod.yamlnginx
Error from server: error when creating "nginx-pod.yaml": 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
解決方法:git
1> 修改/etc/kubernetes/apiserver文件中KUBE_ADMISSION_CONTROL參數。github
修改前:vim
KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
去掉「ServiceAccount」選項。centos
2> 重啓kube-apiserver服務api
# systemctl restart kube-apiserver。網絡
2. 建立Pod過程當中,顯示異常,經過查看日誌/var/log/messages,有如下報錯信息: ide
Nov 26 21:52:06 localhost kube-apiserver: E1126 21:52:06.697708 1963 server.go:454] Unable to generate self signed cert: open /var/run/kubernetes/apiserver.crt: permission denied Nov 26 21:52:06 localhost kube-apiserver: E1126 21:52:06.697818 1963 server.go:464] Unable to listen for secure (open /var/run/kubernetes/apiserver.crt: no such file or directory); will try again.
解決方法有兩種:ui
第一種方法:
# vim /usr/lib/systemd/system/kube-apiserver.service
[Service] PermissionsStartOnly=true ExecStartPre=-/usr/bin/mkdir /var/run/kubernetes ExecStartPre=/usr/bin/chown -R kube:kube /var/run/kubernetes/
# systemctl daemon-reload
# systemctl restart kube-apiserver
第二種方法:
# vim /etc/kubernetes/apiserver
KUBE_API_ARGS="--secure-port=0"
在KUBE_API_ARGS加上--secure-port=0參數。
緣由以下:
--secure-port=6443: The port on which to serve HTTPS with authentication and authorization. If 0, don't serve HTTPS at all.
3. 在利用yaml文件建立Pod過程當中,報「Error from server:the server could not find the requested resource」
這個問題最坑,緣由是Kubernetes版本過低,雖然node節點的狀態顯示是Ready,但沒法建立Pod。
伴隨現象:在描述節點狀態時,顯示以下,正常的是沒有紅色方框部分。
並且顯示的版本信息以下:
注意:該版本信息卻與Kubernetes官方提供的yum源中的版本信息吻合:http://cbs.centos.org/repos/virt7-testing/x86_64/os/Packages/
而最新的版本信息爲:
Kubelet Version: v1.0.3.34+b9a88a7d0e357b
問題緣由:
用了CentOS自帶光盤做爲本地yum源,而刪除了CentOS自帶的網絡yum源的配置文件
解決方法:
使用CentOS自帶的網絡yum源的配置文件。
PS: 關於Kubernetes集羣如何搭建,可參考官方的搭建指南