ZBLOG

k8s 安装网络插件

Kubernetes(k8s)安装网络插件是必须的,因为默认情况下 k8s 集群中的 Pod 是不能互相通信的。以下是安装网络插件的步骤:

  1. 选择一款网络插件,比较常用的有 Flannel、Calico、Weave Net 等,这里以 Flannel 为例。

  2. 在 k8s 的 Master 节点上下载并安装 flannel:

  1. $ wget https://github.com/coreos/flannel/releases/download/v0.14.0/flannel-v0.14.0-linux-amd64.tar.gz
  2. $ tar -zxvf flannel-v0.14.0-linux-amd64.tar.gz
  3. $ cd flannel-v0.14.0-linux-amd64/
  4. $ sudo cp flanneld /usr/local/bin/
  5. $ sudo cp mk-docker-opts.sh /usr/local/bin/
  1. 创建 flannel 的配置文件 /etc/sysconfig/flanneld
  1. # Flanneld configuration options
  2. # etcd url location. Point this to the server where etcd runs
  3. FLANNEL_ETCD_ENDPOINTS="http://127.0.0.1:2379"
  4. # etcd config key. This is the configuration key that flannel queries
  5. # For address range assignment
  6. FLANNEL_ETCD_PREFIX="/kubernetes/network"
  7. # Any additional options that you want to pass
  8. FLANNEL_OPTIONS="-iface=enp0s8"

其中,FLANNEL_ETCD_ENDPOINTS 指定 etcd 的地址和端口号,FLANNEL_ETCD_PREFIX 指定 flannel 在 etcd 中存储的前缀,FLANNEL_OPTIONS 指定 flannel 的参数,这里 -iface=enp0s8 表示 flannel 使用 enp0s8 网卡。

  1. 创建 flannel systemd unit 文件 /usr/lib/systemd/system/flanneld.service
  1. [Unit]
  2. Description=Flanneld overlay address etcd agent
  3. After=network.target
  4. Before=docker.service
  5. [Service]
  6. EnvironmentFile=/etc/sysconfig/flanneld
  7. ExecStart=/usr/local/bin/flanneld --ip-masq $FLANNEL_OPTIONS
  8. ExecStartPost=/usr/local/bin/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker
  9. Restart=on-failure
  10. [Install]
  11. WantedBy=multi-user.target
  12. RequiredBy=docker.service
  1. 启动 flannel 服务并设置开机自启:
  1. $ sudo systemctl daemon-reload
  2. $ sudo systemctl enable flanneld
  3. $ sudo systemctl start flanneld
  1. 在 k8s 节点上安装 docker。注意,docker 版本要与当前 k8s 版本兼容。

  2. 在 k8s 节点上下载并安装 kubelet、kubectl 和 kubeadm,并配置 kubelet:

  1. $ sudo kubeadm init --pod-network-cidr=10.244.0.0/16

其中,--pod-network-cidr 指定 Pod 网络的 IP 地址段。

  1. 安装 flannel 插件:
  1. $ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.14.0/Documentation/kube-flannel.yml
  1. 验证网络插件是否正常工作:
  1. $ kubectl get pods --all-namespaces

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=1979

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?