@zhangyy
2020-01-17T07:45:23.000000Z
字数 4398
阅读 722
kubernetes系列
一: kubernetes master 节点的 高可用
二: 配置nginx 服务器
三: 配置nginx 的LB 的 keepalived 高可用
kubernetes 的多master集群架构kubernetes 高可用主要在于apiserver

部署master01 IP 地址: 192.168.100.12在 192.168.100.12 部署与 master01 一样的 服务scp -r /opt/kubernetes/ root@192.168.100.12:/opt/scp -r /opt/etcd/ root@192.168.100.12:/opt/scp /usr/bin/kubectl root@192.168.20.12:/usr/bin/scp /usr/lib/systemd/system/kube-* root@192.168.100.12:/usr/lib/systemd/system/




修改 配置文件cd /opt/kubernetes/cfgvim kube-apiserver-----bind-address=192.168.100.12--advertise-address=192.168.100.12

启动服务:service kube-apiserver startservice kube-controller-manager startservice kube-scheduler start



login :192.168.20.12kubectl get cs

nginx 服务器 地址: 192.168.100.15nginx 的yum 包地址http://nginx.org/en/linux_packages.htmlcd /etc/yum.repos.d/vim nginx.repo---[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.key[nginx-mainline]name=nginx mainline repobaseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/gpgcheck=1enabled=0gpgkey=https://nginx.org/keys/nginx_signing.key---
yum install nignx


cd /etc/nginx/vim nginx.conf增加:---stream {log_format main "$remote_addr $upstream_addr $time_local $status";access_log /var/log/nginx/k8s-access.log main;upstream k8s-apiserver {server 192.168.100.11:6443;server 192.168.100.12:6443;}server {listen 192.168.100.15:6443;proxy_pass k8s-apiserver;}}


修改node 节点的 master 服务器指向login : 192.168.20.13cd /opt/kubernetes/cfg/vim bootstrap.kubeconfig---server: https://192.168.100.11:6443 改成:server: https://192.168.100.15:6443---vim kubelet.kubeconfig----server: https://192.168.100.11:6443 改成:server: https://192.168.100.15:6443----vim kube-proxy.kubeconfig----server: https://192.168.100.11:6443 改成:server: https://192.168.100.15:6443----scp bootstrap.kubeconfig kubelet.kubeconfig kube-proxy.kubeconfig root@192.168.100.14:/opt/kubernetes/cfg/

重新启动 node 节点的 kubelet 和 kube-proxyservice kubelet restartservice kube-proxy restart


使用 主节点 配置 测试kubectl get nodes


login 192.168.100.16安装nginx 服务器 同上 192.168.100.15 一样修改 :vim /etc/nginx/nginx.conf----stream {log_format main "$remote_addr $upstream_addr $time_local $status";access_log /var/log/nginx/k8s-access.log main;upstream k8s-apiserver {server 192.168.100.11:6443;server 192.168.100.12:6443;}server {listen 192.168.100.16:6443;proxy_pass k8s-apiserver;}}---service nginx start

配置keepalive 高可用yum install keepalivedkeepalived 的配置文件cd /etc/keepalived/vim keepalived.conf---! Configuration File for keepalivedglobal_defs {# 接收邮件地址notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}# 邮件发送地址notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id NGINX_MASTER}vrrp_script check_nginx {script "/etc/keepalived/check_nginx.sh"}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的priority 100 # 优先级,备192.168.100.16服务器设置 90advert_int 1 # 指定VRRP 心跳包通告间隔时间,默认1秒authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.100.70/24}track_script {check_nginx}}----配置 检查 nginx 进程 检查cd /etc/keepalived/vim check_nginx.sh---#!/bin/bashcount=$(ps -ef |grep nginx |egrep -cv "grep|$$")if [ "$count" -eq 0 ];then/etc/init.d/keepalived stopfi---
service keepalived startps -ef |grep keepalived

cd /etc/keepalivedscp check_nginx.sh keepalived.conf root@192.168.100.16:/etc/keepalived/
login: 192.168.100.16cd /etc/keepalived/vim keepalived.conf---改 priority 100 为 priority 90----serivice keepalived startps -ef |grep keepalived

改 node 节点的 IP 地址修改node 节点的 master 服务器指向login : 192.168.20.13cd /opt/kubernetes/cfg/vim bootstrap.kubeconfig---server: https://192.168.100.15:6443 改成:server: https://192.168.100.70:6443---vim kubelet.kubeconfig----server: https://192.168.100.15:6443 改成:server: https://192.168.100.70:6443----vim kube-proxy.kubeconfig----server: https://192.168.100.15:6443 改成:server: https://192.168.100.70:6443----scp bootstrap.kubeconfig kubelet.kubeconfig kube-proxy.kubeconfig root@192.168.100.14:/opt/kubernetes/cfg/
重新启动 node 节点的 kubelet 和 kube-proxyservice kubelet restartservice kube-proxy restart


login: 192.168.100.15修改 nginx 的 配置文件cd /etc/nginx/vim nginx.conf----将linsten 192.168.100.15:6443 改为: 0.0.0.0:6443----service nginx restart

login: 192.168.100.16修改 nginx 的 配置文件cd /etc/nginx/vim nginx.conf----将linsten 192.168.100.16:6443 改为: 0.0.0.0:6443----service nginx restart


去master01 节点上面查看kubectl get svckubectl get svc,pods -n kube-system --all-namespaces


去master02 节点上面查看kubectl get svckubectl get svc,pods -n kube-system --all-namespaces
