code=13 按照官方的定义,应该是INTERNAL ,即来自内部的错误,但有时也是自己配置上的错误.在Ubuntu 16.04上安装kubernetes,etcd是直接apt-get安装的,当前版
code=13 按照官方的定义,应该是INTERNAL
,即来自内部的错误,但有时也是自己配置上的错误.
在Ubuntu 16.04上安装kubernetes,etcd是直接apt-get安装的,当前版本为2.2.5
,而kubernetes在1.5版本后默认使用etcd3的配置项。
因此在创建kube-apiserver.service配置文件时,需要指定etcd版本只需加入--storage-backend=etcd2
参数即可.
Ubuntu16.04的kube-apiserver.service
配置文件示例,其中192.168.1.220替换为本机IP:
[Unit]Description=Kubernetes API ServerDocumentation=https://github.com/GoogleCloudPlatform/kubernetesAfter=network.target[Service]User=rootExecStart=/usr/bin/kube-apiserver / --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota / --advertise-address=192.168.1.220 / --allow-privileged=true / --apiserver-count=1 / --audit-log-maxage=30 / --audit-log-maxbackup=1 / --audit-log-maxsize=100 / --audit-log-path=/var/lib/audit.log / --authorization-mode=RBAC / --bind-address=192.168.1.220 / --client-ca-file=/etc/kubernetes/ssl/ca.pem / --enable-swagger-ui=true / --etcd-cafile=/etc/kubernetes/ssl/ca.pem / --etcd-certfile=/etc/kubernetes/ssl/etcd.pem / --etcd-keyfile=/etc/kubernetes/ssl/etcd-key.pem / --etcd-servers=https://192.168.1.220:2379 / --event-ttl=1h / --kubelet-https=true / --insecure-bind-address=192.168.1.220 / --runtime-config=rbac.authorization.k8s.io/v1alpha1 / --service-account-key-file=/etc/kubernetes/ssl/ca-key.pem / --service-cluster-ip-range=10.254.0.0/16 / --service-node-port-range=8081-32000 / --tls-cert-file=/etc/kubernetes/ssl/kubernetes.pem / --tls-private-key-file=/etc/kubernetes/ssl/kubernetes-key.pem / --experimental-bootstrap-token-auth / --token-auth-file=/etc/kubernetes/token.csv / --storage-backend=etcd2 --v=2Restart=on-failureRestartSec=5sType=notifyLimitNOFILE=65536[Install]WantedBy=multi-user.target
参考:
- kube-apiserver is not working with etcd2 when enable with client-cert-auth