环境介绍
IP | Hostname | 备注 |
---|---|---|
172.19.170.183 | master-1 | 私有云安装keepalived + haproxy + etcd |
172.19.170.184 | master-2 | 私有云安装keepalived + haproxy + etcd |
172.19.170.185 | master-3 | 私有云安装keepalived + haproxy + etcd |
172.19.170.186 | node-1 | 无 |
172.19.170.187 | node-2 | 无 |
172.19.170.100 | vip | 私有云使用keepalive+haproxy搭建,公有云使用内部负载均衡器 |
环境初始化
修改hosts信息,在所有master机器上运行
1 | cat <<EOF >> /etc/hosts |
在master-1 机器上执行以下命令:
1 | ssh-keygen -t rsa |
优化所有master & node 节点的机器环境
在所有master & node 机器上都要执行以下命令
1 |
|
搭建keepalived + haproxy (公有云不需要搭建)
在master-1上配置
keepalived 安装配置
1 | yum install -y keepalived |
haproxy 安装配置
1 | yum install -y haproxy |
在master-2上配置
keepalived 安装配置
1 | yum install -y keepalived |
haproxy 安装配置
1 | yum install -y haproxy |
在master-3上配置
keepalived 安装配置
1 | yum install -y keepalived |
haproxy 安装配置
1 | yum install -y haproxy |
搭建etcd
在master-1上执行
安装cfssl
1 | wget -O /bin/cfssl https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 |
配置生成etcd 证书
1 | # 配置证书 |
安装配置etcd
1 | yum install -y etcd |
在master-2 上执行
安装配置etcd
1 | yum install -y etcd |
在master-3 上执行
安装配置etcd
1 | cat << EOF > /etc/etcd/etcd.conf |
etcd 集群验证
随意在任何一台etcd (master) 节点上进行验证
1 | etcdctl --endpoints "https://172.19.170.183:2379,https://172.19.170.184:2379,https://172.19.170.185:2379" --ca-file=/etc/etcd/ssl/etcd-ca.pem \ |
搭建kubernetes master 集群
初始化master-1
在master-1 上执行
1 | token=$(kubeadm token generate) |
初始化master-2
在master-2 上执行
1 | docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 |
初始化master-3
在master-3 上执行
1 | docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 |
1 | ###################################################### |
开启kubernetes 插件
在随意一台master执行
安装calico 网络插件
确保 Kubernetes controller manager (/etc/kubernetes/manifests/kube-controller-manager.yaml)
设置了以下标志:--cluster-cidr=192.168.0.0/16和--allocate-node-cidrs=true
。
提示:在kubeadm上,您可以传递--pod-network-cidr=192.168.0.0/16
给kubeadm以设置两个Kubernetes控制器标志。
在ConfigMap命名中calico-config
,找到typha_service_name
,删除none
值,并替换为calico-typha
我们建议每200
个节点至少复制一个副本
,不超过20个副本。在生产中,我们建议至少使用三个副本
来减少滚动升级和故障的影响。
警告:如果您设置typha_service_name而不增加其默认值为0 Felix的副本计数将尝试连接到Typha,找不到要连接的Typha实例,并且无法启动。
1
kubectl apply -f www.jiunile.com/k8s/plugin/1.11.5/calico.yaml
安装heapster 监控插件
1 | kubectl apply -f www.jiunile.com/k8s/plugin/1.11.5/heapster.yaml |
安装dashboard 插件
1 | kubectl apply -f www.jiunile.com/k8s/plugin/1.11.5/dashboard.yaml |
获取加入master集群命令
1 | kubeadm token create --print-join-command |
初始化所有kubernetes node
1 | docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 |
可以在master机器上查看对应的node状态
1 | kubectl get node |
测试
测试应用和dns是否正常
在随意一台master机器上运行
1 | # 部署一个服务 |
测试master & Haproxy高可用
1 | #随机关掉一台master机器 |