Centos7 k8s安装脚本+3台master的高可用配置

1、CentOS7 安装Docker和K8s

kubekey安装k8s
1. 执行init_docker.sh脚本,安装docker
2. yum install -y socat conntrack ebtables ipset
3. 下载kubekey并解压: 下载地址(7zip格式windows平台自解压文件<因为阿里云不允许分享压缩包,博客园不能上传10M以上文件>):https://www.aliyundrive.com/s/xcZ4jJxdsvM「kubekey-v2.2.0-linux-amd64.tar.exe」https://www.aliyundrive.com/s/xcZ4jJxdsvM 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。「kubekey-v2.2.0-linux-amd64.tar.exe」https://www.aliyundrive.com/s/xcZ4jJxdsvM 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。https://www.aliyundrive.com/s/xcZ4jJxdsvM
4. 查看kubekey支持的k8s版本:  ./kk version --show-supported-k8s
5. 生成默认的配置文件:./kk create config --with-kubernetes v1.23.7 -f config.yaml
6. 修改config文件(ip、节点数量、用户名密码等)
7. 使用国内源:export KKZONE=cn
8. 创建集群:./kk create cluster -f config.yaml
9. 升级集群:
  a. ./kk upgrade -f config.yaml
  b. 增加节点:./kk add nodes -f config.yaml
  c. 删除节点:./kk delete node <nodeName> -f config-sample.yaml
10. 删除集群:./kk delete cluster -f config.yaml

 


2、CentOS7下配置Master高可用
高可用部分来自:
原文链接:https://blog.csdn.net/hhhhhhhzp/article/details/118653067

keepalived+haproxy高可用(三台master)

//安装(3台)

yum -y install haproxy keepalived
mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak

编辑keepalived配置文件

vi /etc/keepalived/keepalived.conf

 

内容:

! /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
    router_id LVS_DEVEL
}
vrrp_script check_apiserver {
  script "/etc/keepalived/check_apiserver.sh"
  interval 3
  weight -2
  fall 10
  rise 2
}

vrrp_instance VI_1 {
    state MASTER                # 主从关系需要更改
    interface ens32             # 网卡注意更改
    virtual_router_id 50        # 虚拟id每一台要一样
    priority 100                #优先级主为100、两从分别为98、96
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.100.200/24      # 虚拟ip设置
    }
    track_script {
        check_apiserver
    }
}

#需要按需修改的参数
#state MASTE/SLAVE
#interface 主网卡名称
#虚拟id
#优先级priority
#virtual_ipaddress 虚拟ip

 




编辑脚本文件

 chmod +x /etc/keepalived/check_apiserver.sh
 vim /etc/keepalived/check_apiserver.sh

内容:

#!/bin/bash
APISERVER_VIP=192.168.100.200   #虚拟IP地址
APISERVER_DEST_PORT=6443

errorExit() {
    echo "*** $*" 1>&2
    exit 1
}

curl --silent --max-time 2 --insecure https://localhost:${APISERVER_DEST_PORT}/ -o /dev/null || errorExit "Error GET https://localhost:${APISERVER_DEST_PORT}/"
if ip addr | grep -q ${APISERVER_VIP};then
    curl --silent --max-time 2 --insecure https://${APISERVER_VIP}:${APISERVER_DEST_PORT}/ -o /dev/null || errorExit "Error GET https://${APISERVER_VIP}:${APISERVER_DEST_PORT}/"
fi

 



编辑haproxy配置文件

vi /etc/haproxy/haproxy.cfg

 

# /etc/haproxy/haproxy.cfg
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    log /dev/log local0
    log /dev/log local1 notice
    daemon

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 1
    timeout http-request    10s
    timeout queue           20s
    timeout connect         5s
    timeout client          20s
    timeout server          20s
    timeout http-keep-alive 10s
    timeout check           10s

#---------------------------------------------------------------------
# apiserver frontend which proxys to the masters
#---------------------------------------------------------------------
frontend apiserver
    bind *:8443
    mode tcp
    option tcplog
    default_backend apiserver

#---------------------------------------------------------------------
# round robin balancing for apiserver
#---------------------------------------------------------------------
backend apiserver
    option httpchk GET /healthz
    http-check expect status 200
    mode tcp
    option ssl-hello-chk
    balance     roundrobin
        server k8s-master1 192.168.100.20:6443 check    #三台masterIP及端口,还有master就往下加即可
        server k8s-master2 192.168.100.21:6443 check
        server k8s-master3 192.168.100.22:6443 check


开启服务

//开启keepalived和haproxy

 systemctl enable keepalived --now
systemctl enable haproxy --now

 


启用了防火墙后,需要放开下列防火墙:

https://github.com/kubesphere/kubekey/blob/master/docs/network-access.md

posted on 2022-09-23 09:00  sixiiweb  阅读(577)  评论(0编辑  收藏  举报

导航