Kubernetes: 集群网络配置 - flannel

参考: [ Kubernetes 权威指南 ]

Kubernetes 集群搭建可以参考 [ Kubernetes : 多节点 k8s 集群搭建实践 ]

在多个 Node 组成的 Kubernetes 集群内, Kubernetes 本身不会对跨主机容器网络进行设置. flannel 就是解决跨主机容器间网络互通的需求.


Kubernetes 集群架构

Server List

节点名称 节点 IP
k8s-master 10.10.10.10
k8s-node1 10.10.10.11
k8s-node2 10.10.10.12


节点服务说明

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

  • Node : docker, kubelet, kube-proxy


flannel 配置安装

flannel 安装于 kubernetes node 服务器上.

安装 flannel

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


配置: /etc/sysconfig/flanneld

需要连接位于 master 上的 etcd 服务:

FLANNEL_ETCD_ENDPOINTS="http://10.10.10.10:2379"
FLANNEL_ETCD_PREFIX="/myk8s/network" # myk8s 可以随意定义


在 etcd 中添加网络配置记录

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


修改文件: /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


服务启动

systemctl stop docker
systemctl start flanneld


配置 Docker 网桥

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


启动 docker

systemctl start docker

猜你喜欢

转载自www.cnblogs.com/tiantiandas/p/k8s_cluster_network_by_flannel.html