普通k8s集群安装flannel

Kubernetes v1.17+

对于新版的 Kubernetes 可以使用如下 manifests 文件在集群中部署 flannel

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Kubernetes v1.16

对于 Kubernetes v1.16 版本需要修改后才能正常部署:

curl https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml > kube-flannel.yml

修改 rbac.authorization.k8s.io/v1  ---> rbac.authorization.k8s.io/v1beta1

kubectl  apply -f kube-flannel.yml

因为在 Kubernetes v1.17 版本中 RBAC 认证已经 GA 了,新版本是 rbac.authorization.k8s.io/v1

所以当使用 Kubernetes v1.16 时,需要将 kube-flannel.yml 中的 APIVersion 回退到 v1beta1

rbac.authorization.k8s.io/v1  ---> rbac.authorization.k8s.io/v1beta1

kube-flannel.yaml文件中使用 rbac.authorization.k8s.io/v1 的资源有2个:

  • ClusterRole
  • ClusterRoleBinding

Kubernetes v1.6~v1.15

对于老版本的 Kubernetes 在执行 apply kube-flannel.yaml 时可能会报错:invalid field... ,可以使用 "legacy" 版本的 kubernetes manifest 文件进行部署。

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-legacy.yml

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml

如果在 flanneld 的 logs 日志中会有以下错误信息,请确认 rbac 文件是否正确导入

Failed to create SubnetManager: error retrieving pod spec...

kube-flannel.yaml 介绍

flannel manifest 文件中的资源定义:

  • ServiceAccount 定义了 flannel 用户
  • ClusterRole 和 ClusterRoleBinding 绑定了 flannel 用户的权限 (RBAC)
  • ConfigMap 定了 CNI 和 Flannel 的配置文件。在 flannel 配置文件中 network 字段需要和 Kubernetes 的 Pod CIDR 网段对应。backend 字段定义了网络模型,默认是 VxLAN 。
  • DaemonSet 在每个 node 节点上运行一个 flanneld 的 Pod。该 Pod 中包含2个容器,一个是 flanned 自身,还有一个是 initContainer 用来部署和配置 CNI ,以便于 kubelet 能够正常使用。

注意

flannel.alpha.coreos.com/public-ip-overwrite: Allows to overwrite the public IP of a node. Useful if the public IP can not determined from the node, e.G. because it is behind a NAT. It can be automatically set to a nodes ExternalIP using the flannel-node-annotator

The flannel CNI plugin

flannel CNI 插件可以在插件仓库中查找 CNI plugins repository.

Kubernetes 1.6 版本要求 CNI plugin version 0.5.1 及以上.

参考

https://github.com/flannel-io/flannel/blob/master/Documentation/kubernetes.md

Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2021-04-22 09:27:04

results matching ""

    No results matching ""