1. 程式人生 > >《二》Kubernetes叢集部署-搭建叢集

《二》Kubernetes叢集部署-搭建叢集

多master叢集架構圖

時間必須同步、關閉防火牆、Firewalld、selinux

《二》Kubernetes叢集部署-搭建叢集

《二》Kubernetes叢集部署-搭建叢集

1、拷貝master01 中的kubernetes目錄到master02上
[[email protected] ~]# scp -r /opt/kubernetes/ 192.168.1.16:/opt/

2、啟動指令碼
[[email protected] kubeconfig]# scp /usr/lib/systemd/system/{kube-apiserver,kube-controller-manager,kube-scheduler}.service 192.168.1.16:/usr/lib/systemd/system/

3、拷貝master01 中的etcd目錄到master02上
[[email protected] ~]# scp -r /opt/etcd/ 192.168.1.16:/opt/

4、登入到master02(192.168.1.16)上修改IP配置資訊
只需要修改vi /opt/kubernetes/cfg/kube-apiserver 更改為192.168.1.16

5、啟動
systemctl start kube-apiserver
systemctl start kube-scheduler
systemctl start kube-controller-manager
systemctl enable kube-apiserver
systemctl enable kube-scheduler
systemctl enable kube-controller-manager

驗證:
《二》Kubernetes叢集部署-搭建叢集

《二》Kubernetes叢集部署-搭建叢集

Load Balancer 安裝nginx/keepalived

192.168.1.20
[[email protected] nginx]# vi /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0

[[email protected] nginx]# yum install nginx -y
[[email protected] nginx]# yum install keepalived -y

192.168.1.26


[[email protected] nginx]# vi /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0

[[email protected] nginx]# yum install nginx -y
[[email protected] nginx]# yum install keepalived -y

修改nginx配置檔案
新增:
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 192.168.1.13:6443;
    server 192.168.1.16:6443;
}

server {
listen 6443;
proxy_pass k8s-apiserver;

      }

}

《二》Kubernetes叢集部署-搭建叢集

vi /etc/keepalived/keepalived.conf
[[email protected] ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
#接收郵件地址
notification_email {
[email protected]
[email protected]
[email protected]
}
#郵件傳送地址
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id NGINX_MASTER
}

vrrp_script check_nginx {
script "/etc/nginx/check_nginx.sh"
}

vrrp_instance VI_1 {
state MASTER
interface ens33 #根據自己的網絡卡名字更改
virtual_router_id 51 # VRRP 路由 ID例項,每個例項是唯一的
priority 100 # 優先順序,備伺服器設定 90,哪個高就是主
advert_int 1 # 指定VRRP 心跳包通告間隔時間,預設1秒
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.30/24
}
track_script {
check_nginx
}
}

[[email protected] ~]# vi /etc/nginx/check_nginx.sh

count=$(ps -ef |grep nginx |egrep -cv "grep|$$")

if [ "$count" -eq 0 ];then
systemctl stop keepalived
fi

實驗:
2臺機都啟動 nginx、keepalived服務後,在主節點上會有一個vip(192.168.1.30)
192.168.1.20
echo 'nginx master' > /usr/share/nginx/html/index.html

192.168.1.26
echo 'nginx backup' > /usr/share/nginx/html/index.html

驗證:
訪問192.168.1.30 ---》nginx master
/etc/nginx/check_nginx.sh
當把主節點的nginx關閉,pkill nginx時,keepalived會每隔1秒檢測check_nginx,會執行指令碼/etc/nginx/check_nginx.sh,停止掉keepalived服務,這樣vip會轉移到backup上去,噹噹把主節點的nginx,keepalived開啟,vip又會回到主節點上