参考: [ 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 flannelln -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 agentAfter=network.targetAfter=network-online.target#After=etcd.service # 不在本机部署 etcdWants=network-online.targetBefore=docker.service[Service]Type=notifyEnvironmentFile=/etc/sysconfig/flanneldEnvironmentFile=-/etc/sysconfig/docker-networkExecStart=/usr/bin/flanneld-start $FLANNEL_OPTIONSExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/dockerRestart=on-failure[Install]WantedBy=multi-user.targetWantedBy=docker.service
服务启动
systemctl stop dockersystemctl start flanneld
配置 Docker 网桥
mk-docker-opts.sh -isource /run/flannel/subnet.envifconfig docker0 ${FLANNEL_SUBNET}
启动 docker
systemctl start docker
Kubernetes: 集群网络配置 - flannel
原文地址:https://www.cnblogs.com/tiantiandas/p/k8s_cluster_network_by_flannel.html