我在主节点上运行etcd
,kube-apiserver
,kube-scheduler
和kube-controllermanager
以及kubelet
和kube-proxy
minion节点如下(所有kube二进制文件来自kubernetes 1.7.4):
# [master node]
./etcd
./kube-apiserver --logtostderr=true --etcd-servers=http://127.0.0.1:2379 --service-cluster-ip-range=10.10.10.0/24 --insecure-port 8080 --secure-port=0 --allow-privileged=true --insecure-bind-address 0.0.0.0
./kube-scheduler --address=0.0.0.0 --master=http://127.0.0.1:8080
./kube-controller-manager --address=0.0.0.0 --master=http://127.0.0.1:8080
# [minion node]
./kubelet --logtostderr=true --address=0.0.0.0 --api_servers=http://$MASTER_IP:8080 --allow-privileged=true
./kube-proxy --master=http://$MASTER_IP:8080
在此之后,如果我执行kubectl get all --all-namespaces
和kubectl get nodes
,我就会
NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default svc/kubernetes 10.10.10.1 <none> 443/TCP 27m
NAME STATUS AGE VERSION
minion-1 Ready 27m v1.7.4+793658f2d7ca7
然后,我按照以下方式涂抹法兰绒:
kubectl apply -f kube-flannel-rbac.yml -f kube-flannel.yml
现在,我看到创建了一个pod,但错误:
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system kube-flannel-ds-p8tcb 1/2 CrashLoopBackOff 4 2m
当我检查minion节点中失败容器内的日志时,我看到以下错误:
Failed to create SubnetManager: unable to initialize inclusterconfig: open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory
我的问题是:如何解决这个问题?这是SSL问题吗?我在设置群集时缺少哪一步?
答案 0 :(得分:1)
也许是你的法兰绒yaml文件有问题, 你可以尝试这个来安装你的法兰绒, 检查旧的IP链接
ip link
如果显示法兰绒,请删除它
ip link delete flannel.1
并安装,其默认的pod网络cdir为10.244.0.0/16
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.0/Documentation/kube-flannel.yml
答案 1 :(得分:0)
你可以尝试将 - etcd-prefix = / your / prefix 和 - etcd-endpoints = address 传递给flanneld而不是 - kube -subnet-mgr 所以flannel从etcd服务器获取 net-conf ,而不是从api服务器获取。
请记住,您必须将net-conf推送到etcd服务器。
<强>更新强>
问题(/var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory
)可以在没有 - admission-control = ...,ServiceAccount,... 的执行apiserver时出现,或者如果kubelet在容器内(例如:超立方体)这最后是我的情况。如果要在容器内执行k8s组件,则需要将“shared”选项传递给kubelet卷
的/ var / lib中/ kubelet /:在/ var / lib中/ kubelet:RW,共享
此外,在docker.service
中启用与docker相同的选项MountFlags =共享
现在的问题是:是否存在共享安装的安全漏洞?