Kubernetes二进制部署(多节点)

一、实验环境介绍

Master02:192.168.50.134

LB1:192.168.50.137

LB2:192.168.50.138

VIP:192.168.50.100

二、实验步骤

  • 前置条件:先具备单master节点部署环境

1、关闭防火墙及selinux服务

2、在master01上操作,将master1上的工作目录推送到master2上

scp -r /opt/kubernetes/ root@192.168.195.136:/opt

3、复制master中的三个组件启动脚本

scp /usr/lib/systemd/system/{kube-apiserver,kube-controller-manager,kube-scheduler}.service root@192.168.50.136:/usr/lib/systemd/system/

4、在master02上操作,修改配置文件kube-apiserver中的IP,

cd /opt/kubernetes/cfg/
vim kube-apiserver
--bind-address=192.168.50.136 \     ## 修改为master2的IP
--advertise-address=192.168.50.136 \    ## 修改为master2的IP

5、将master1上的etcd工作目录拷贝到master2中

scp -r /opt/etcd/ root@192.168.50.136:/opt/

6、启动master02中的三个组件服务

systemctl start kube-apiserver.service
systemctl start kube-controller-manager.service
systemctl start kube-scheduler.service

7、设置环境变量

vim /etc/profile
在末尾加入一行:
export PATH=$PATH:/opt/kubernetes/bin/
使配置生效:source /etc/profile

//下面进行高可用负载均衡配置

8、分别在lb01 lb02上操作

安装nginx服务,把nginx.sh和keepalived.conf脚本拷贝到家目录

vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0

yum install nginx -y

9、在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.50.133:6443;      ## 代理的两个master节点IP
        server 192.168.50.136:6443;      ## 代理的两个master节点IP
    }
    server {
                listen 6443;
                proxy_pass k8s-apiserver;
    }
    }

启动nginx服务

systemctl start nginx

10、分别在lb1与lb2上部署keepalived服务

yum install keepalived -y

修改配置文件

cp keepalived.conf /etc/keepalived/keepalived.conf

keepalived配置文件如下:
! Configuration File for keepalived 
 
global_defs { 
   # 接收邮件地址 
   notification_email { 
     acassen@firewall.loc 
     failover@firewall.loc 
     sysadmin@firewall.loc 
   } 
   # 邮件发送地址 
   notification_email_from Alexandre.Cassen@firewall.loc  
   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.50.100/24 
    } 
    track_script {
        check_nginx
    } 
}//注意:lb02是Backup配置如下:
! Configuration File for keepalived 
 
global_defs { 
   # 接收邮件地址 
   notification_email { 
     acassen@firewall.loc 
     failover@firewall.loc 
     sysadmin@firewall.loc 
   } 
   # 邮件发送地址 
   notification_email_from Alexandre.Cassen@firewall.loc  
   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 BACKUP 
    interface ens33
    virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的 
    priority 90    # 优先级,备服务器设置 90 
    advert_int 1    # 指定VRRP 心跳包通告间隔时间,默认1秒 
    authentication { 
        auth_type PASS      
        auth_pass 1111 
    }  
    virtual_ipaddress { 
        192.168.195.100/24 
    } 
    track_script {
        check_nginx
    } 
}

11、创建keepalived服务监测脚本

vim /etc/nginx/check_nginx.sh

#!/bin/bash
count=$(ps -ef |grep nginx |egrep -cv "grep|$$")

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

为脚本添加可执行权限并启动keepalived

chmod +x /etc/nginx/check_nginx.sh
systemctl start keepalived

到此,k8s高可用群集部署完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值