配置指南
在 master02
节点上部署 Kubernetes 组件
- 从
master01
节点复制证书文件、配置文件和服务管理文件到master02
节点:scp -r /opt/etcd/ root@20.0.0.66:/opt/ scp -r /opt/kubernetes/ root@20.0.0.66:/opt scp -r /root/.kube root@20.0.0.66:/root scp /usr/lib/systemd/system/{ kube-apiserver,kube-controller-manager,kube-scheduler}.service root@20.0.0.66:/usr/lib/systemd/system/
- 修改
kube-apiserver
配置文件中的 IP 地址:vim /opt/kubernetes/cfg/kube-apiserver # 修改 --bind-address 和 --advertise-address 为 20.0.0.66
KUBE_APISERVER_OPTS="--logtostderr=true \ --v=4 \ --etcd- servers=https://20.0.0.10:2379,https://20.0.0.58:2379,https://20.0.0.59:2379 \ --bind-address=20.0.0.66 \ #修改 --secure-port=6443 \ --advertise-address=20.0.0.66 \ #修改 ......
- 在
master02
节点上启动并设置服务开机自启:systemctl start kube-apiserver.service systemctl enable kube-apiserver.service systemctl start kube-controller-manager.service systemctl enable kube-controller-manager.service systemctl start kube-scheduler.service systemctl enable kube-scheduler.service
- 验证
kubectl
命令是否可用,并查看节点状态:ln -s /opt/kubernetes/bin/* /usr/local/bin/ kubectl get nodes kubectl get nodes -o wide #-o=wide:输出额外信息;对于Pod,将输出Pod所在的Node名
此时在master02节点查到的node节点状态仅是从etcd查询到的信息,而此时node节点实际上并未与master02节点建立通信连接,因此需要使用一个VIP把node节点与master节点都关联起来
配置负载均衡器(Nginx + Keepalived)
在 lb01
和 lb02
节点上操作
-
配置 Nginx 的官方在线 yum 源并安装 Nginx:
cat > /etc/yum.repos.d/nginx.repo << 'EOF' [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/\$basearch/ gpgcheck=0 EOF yum install nginx -y
-
修改 Nginx 配置文件以配置四层反向代理负载均衡:
配置四层反向代理负载均衡,指定k8s群集2台master的节点ip和6443端口vim /etc/nginx/nginx.conf # 添加 stream 块 stream { log_format main '$remote_addr $upstream_addr - [$time_local] $status $upstream_bytes_sent'; access_log /var/log/nginx/k8s-access.log main; upstream k8s-apiserver { server 20.0.0.10:6443