Kubernetes 上的 Flannel 安装
Flannel installation on Kubernetes
我已经在一台主机上安装了全新的 Kubernetes 1.6.2 master,现在尝试使用 https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml
启动 Flannel
pod 没有出现:
$ kubectl get pods kube-flannel-ds-l6gn4 --namespace kube-system
NAME READY STATUS RESTARTS AGE
kube-flannel-ds-l6gn4 1/2 CrashLoopBackOff 36 2h
$ kubectl logs kube-flannel-ds-l6gn4 --namespace kube-system kube-flannel
E0427 15:35:52.232093 1 main.go:127] Failed to create
SubnetManager: error retrieving pod spec for 'kube-system/kube-flannel-ds-l6gn4': the server does not allow access to the requested resource (get pods kube-flannel-ds-l6gn4)
我也使用默认服务帐户尝试过此操作,但不会出现。
如果你使用的是RBAC authorizer,你还需要创建https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel-rbac.yml来设置flannel服务账号的角色和权限
请注意,要使用 flannel 安装 Kubernetes,您需要指定 --pod-network-cidr
标志。参见 kubeadm init section
示例
kubeadm init --pod-network-cidr=10.244.0.0/16
然后像Jordan提到的那样,在某些环境下你需要安装RBAC
kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel-rbac.yml
如果问题仍然存在,请检查
确保您的 cni 插件二进制文件在 /opt/cni/bin 中就位。您应该看到每个 CNI 附加组件的相应二进制文件
确保网络插件的 CNI 配置文件在 /etc/cni/net.d 下
[root@node1]# ls /etc/cni/net.d
10-flannel.conf
运行 ifconfig 检查docker,flannel 网桥和虚拟接口已启动
正如在 github 上提到的
https://github.com/kubernetes/kubernetes/issues/36575#issuecomment-264622923
我已经写了一篇complete blog post on the topic如果有帮助的话
对于最近可能正在寻找此内容的任何人,most recent docs 声明正确的配置命令(对于启用 RBAC 的 1.7+)是:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
注意还有instruction docs for older versions/without RBAC,其中状态:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-legacy.yml
请注意,要在旧版本之上安装 RBAC:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml
不工作
adminka@l-test:~$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-legacy.yml
serviceaccount/flannel不变
configmap/kube-flannel-cfg 已配置
错误:无法识别“https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-legacy.yml”:版本“extensions/v1beta1”中的种类“DaemonSet”没有匹配项“
”
adminka@l-test:~$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml
无法识别“https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml”:版本“rbac.authorization.k8s.io/v1beta1”中种类“ClusterRole”没有匹配项
无法识别“https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml”:版本“rbac.authorization.k8s.io/v1beta1”中种类“ClusterRoleBinding”没有匹配项
adminka@l-test:~$
我已经在一台主机上安装了全新的 Kubernetes 1.6.2 master,现在尝试使用 https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml
启动 Flannelpod 没有出现:
$ kubectl get pods kube-flannel-ds-l6gn4 --namespace kube-system
NAME READY STATUS RESTARTS AGE
kube-flannel-ds-l6gn4 1/2 CrashLoopBackOff 36 2h
$ kubectl logs kube-flannel-ds-l6gn4 --namespace kube-system kube-flannel
E0427 15:35:52.232093 1 main.go:127] Failed to create
SubnetManager: error retrieving pod spec for 'kube-system/kube-flannel-ds-l6gn4': the server does not allow access to the requested resource (get pods kube-flannel-ds-l6gn4)
我也使用默认服务帐户尝试过此操作,但不会出现。
如果你使用的是RBAC authorizer,你还需要创建https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel-rbac.yml来设置flannel服务账号的角色和权限
请注意,要使用 flannel 安装 Kubernetes,您需要指定 --pod-network-cidr
标志。参见 kubeadm init section
示例
kubeadm init --pod-network-cidr=10.244.0.0/16
然后像Jordan提到的那样,在某些环境下你需要安装RBAC
kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel-rbac.yml
如果问题仍然存在,请检查
确保您的 cni 插件二进制文件在 /opt/cni/bin 中就位。您应该看到每个 CNI 附加组件的相应二进制文件
确保网络插件的 CNI 配置文件在 /etc/cni/net.d 下 [root@node1]# ls /etc/cni/net.d 10-flannel.conf
运行 ifconfig 检查docker,flannel 网桥和虚拟接口已启动
正如在 github 上提到的 https://github.com/kubernetes/kubernetes/issues/36575#issuecomment-264622923
我已经写了一篇complete blog post on the topic如果有帮助的话
对于最近可能正在寻找此内容的任何人,most recent docs 声明正确的配置命令(对于启用 RBAC 的 1.7+)是:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
注意还有instruction docs for older versions/without RBAC,其中状态:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-legacy.yml
请注意,要在旧版本之上安装 RBAC:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml
不工作
adminka@l-test:~$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-legacy.yml serviceaccount/flannel不变 configmap/kube-flannel-cfg 已配置 错误:无法识别“https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-legacy.yml”:版本“extensions/v1beta1”中的种类“DaemonSet”没有匹配项“
”adminka@l-test:~$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml 无法识别“https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml”:版本“rbac.authorization.k8s.io/v1beta1”中种类“ClusterRole”没有匹配项 无法识别“https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml”:版本“rbac.authorization.k8s.io/v1beta1”中种类“ClusterRoleBinding”没有匹配项 adminka@l-test:~$