Kubernetes: 集羣網絡配置 - flannel

參考: [ Kubernetes 權威指南 ]
<br>html

Kubernetes 集羣搭建能夠參考 [ Kubernetes : 多節點 k8s 集羣實踐 ] <br>node

在多個 Node 組成的 Kubernetes 集羣內, Kubernetes 自己不會對跨主機容器網絡進行設置. flannel 就是解決跨主機容器間網絡互通的需求. <br><br>docker

Kubernetes 集羣架構

Server Listapi

節點名稱 節點 IP
k8s-master 10.10.10.10
k8s-node1 10.10.10.11
k8s-node2 10.10.10.12

<br>服務器

節點服務說明網絡

  • Master : etcd , kube-apiserver , kube-controller-manager, kube-scheduler.架構

  • Node : docker, kubelet, kube-proxy <br><br>spa

flannel 配置安裝

flannel 安裝於 kubernetes node 服務器上.rest

安裝 flannelcode

yum install flannel
ln -sv /usr/libexec/flannel/mk-docker-opts.sh /usr/bin

<br>

配置: /etc/sysconfig/flanneld

須要鏈接位於 master 上的 etcd 服務:

FLANNEL_ETCD_ENDPOINTS="http://10.10.10.10:2379"
FLANNEL_ETCD_PREFIX="/myk8s/network" # myk8s 能夠隨意定義

<br>

在 etcd 中添加網絡配置記錄

etcdctl set /myk8s/network/config '{"Network":"10.1.0.0/16"}'

<br>

修改文件: /usr/lib/systemd/system/flanneld.service

[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
After=network-online.target
#After=etcd.service # 不在本機部署 etcd
Wants=network-online.target
Before=docker.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/flanneld
EnvironmentFile=-/etc/sysconfig/docker-network
ExecStart=/usr/bin/flanneld-start $FLANNEL_OPTIONS
ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker
Restart=on-failure

[Install]
WantedBy=multi-user.target
WantedBy=docker.service

<br>

服務啓動

systemctl stop docker
systemctl start flanneld

<br>

配置 Docker 網橋

mk-docker-opts.sh -i
source /run/flannel/subnet.env
ifconfig docker0 ${FLANNEL_SUBNET}

<br>

重啓服務

systemctl start docker
systemctl restart kubelet
systemctl restart kube-proxy
相關文章
相關標籤/搜索