环境规划
Master节点:docker1(kubernetes,etcd,ntp)
Minion节点:docker2,docker3(kubernetes,flannel,ntp)
安装
创建yum源
[root@cheyo yum.repos.d]# cat /etc/yum.repos.d/docker.repo
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
[root@cheyo yum.repos.d]#
安装软件包
Master节点:
yum install -y kubernetes ntp.x86_64 etcd
Minion节点:
yum install -y kubernetes ntp.x86_64 flannel
配置etcd(Master节点)
在Master节点上,修改etcd的配置文件/etc/etcd/etcd.conf:
1ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
配置kubernetes(Master节点)
在Master节点上,修改kubernetes的配置文件/etc/kubernetes/config:
1KUBE_LOG_LEVEL="--v=2"
修改Master节点kubernetes apiserver的配置文件/etc/kubernetes/apiserver:
1
2
3KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_API_PORT="--port=8080"
KUBELET_PORT="--kubelet_port=10250"
启动相关服务(Master节点)
启动Master节点的相关服务:ntpd、etcd、kube-apiserver、kube-scheduler、kube-controller-manager,并将这些服务设为开机自动启动。
for SRV in ntpd etcd kube-apiserver kube-scheduler kube-controller-manager;
do
systemctl start $SRV
systemctl enable $SRV
systemctl status $SRV
done
如果每一个服务都启动成功,那么systemctl status $SRV显示的信息则包含Active: active (running)
配置Flannel的子网(Master节点)
在Master节点修改etcd的配置,设定Minion中flannel所使用的子网范围为172.80.1.0~172.80.254.0(每一个Minion节点都有一个独立的flannel子网)。
etcdctl mk /atomic.io/network/config '{"Network":"172.80.0.0/16", "SubnetMin": "172.80.1.0", "SubnetMax": "172.80.254.0"}'
配置Flannel连接的etcd(Minion节点)
修改Minion节点上Flannel的配置/etc/sysconfig/flanneld,设定etcd的相关信息,其中192.168.1.21为Master的IP地址。
1
2FLANNEL_ETCD="http://192.168.1.21:2379"
FLANNEL_ETCD_KEY="/atomic.io/network"
配置Minion节点连接Master节点的Kubernetes(Minion节点)
修改Minion节点Kubernetes的全局配置文件/etc/kubernetes/config。
1
2KUBE_LOG_LEVEL="--v=2"
KUBE_MASTER="--master=http://192.168.1.21:8080"
修改Minion节点上Kubernetes kubelet的配置/etc/kubernetes/kubelet。
1
2
3
4KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_API_SERVER="--api_servers=http://192.168.1.21:8080"
KUBELET_HOSTNAME=""
启动相关服务(Minion节点)
在Minion节点上启动相关服务:ntpd、flanneld、docker、kube-proxy、kubelet,并将这些服务设为开机自启动。
for SRV in ntpd flanneld docker kube-proxy kubelet;
do
systemctl start $SRV
systemctl enable $SRV
systemctl status $SRV
done备注:如下配置此版本docker不识别,会造成docker服务无法正常启动:
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
解决办法:删除"registry-mirrors"这一行配置。
检查安装结果(状态)
在Master节点查看Kubernetes的状态
[root@docker1 ~]# kubectl get nodes -o wide
NAME STATUS AGE
docker2 Ready 1m
docker3 Ready 1m
[root@docker1 ~]#
在Master节点查看flannel子网分配情况:
[root@docker1 ~]# etcdctl ls /atomic.io/network/subnets
/atomic.io/network/subnets/172.80.74.0-24
/atomic.io/network/subnets/172.80.65.0-24
[root@docker1 ~]#
在Minion节点通过ip a查看flannel和docker网桥的网络配置信息,确认是否与etcd中/atomic.io/network/subnets的信息一致。
参考文档