K8S、keepalived、haproxy 高可用集群实战

本文围绕K8S、keepalived、haproxy高可用集群展开实战。介绍了在Centos7.6环境下,对K8S节点进行Hosts及防火墙设置、Linux内核参数优化、免秘钥登录配置等操作,还涉及Docker、Kubeadm等安装,以及Haproxy、Keepalived配置,网络插件安装和Dashboard UI配置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


K8S、keepalived、haproxy 高可用集群实战

环境:Centos7.6、2个CPU、8G内存以上配置
Master1:172.20.26.24
Master2:172.20.26.86
Master3:172.20.26.89
Node1:    172.20.26.104

VIP :172.20.26.201

在master1、2、3、Node1上:关闭selinux、firewalld、安装net-tools、lrzsz、vim、epel-release、yum update


一、K8S所有节点(master1、2、3、Node1)Hosts及防火墙设置

Master1、Master2、Master3、node1节点进行如下配置:

#添加hosts解析;

cat >/etc/hosts<<EOF
127.0.0.1 localhost localhost.localdomain
172.20.26.34 master1
172.20.26.36 master2
172.20.26.38 master3
172.20.26.37 node1
EOF

#临时关闭selinux和防火墙;

vim /etc/selinux/config    #将状态改为disabled
setenforce  0
systemctl   stop     firewalld.service
systemctl   disable   firewalld.service

#同步节点时间;

yum install ntpdate -y
ntpdate  pool.ntp.org


#修改对应节点主机名;

hostname `cat /etc/hosts|grep $(ifconfig|grep broadcast|awk '{print $2}')|awk '{print $2}'`;su

#关闭swapoff(因交换分区读写速度无法与内存比,关闭交换分区,确保k8s性能);

swapoff -a     # 临时关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab  #永久关闭


二、Linux内核参数设置&优化(master1、2、3、Node1)

让k8s支持IP负载均衡技术:

cat > /etc/modules-load.d/ipvs.conf <<EOF
# Load IPVS at boot
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4
EOF

systemctl enable --now systemd-modules-load.service   #加载模块

#确认内核模块加载成功

lsmod | grep -e ip_vs -e nf_conntrack_ipv4

如果没有看到信息,可以把机器重启一下就可以了

#安装ipset、ipvsadm

yum install -y ipset ipvsadm

#配置内核参数;(加入桥接转发,让容器能够使用二层网络)

cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF


sysctl --system


三、配置节点免秘钥登录:

     Master1节点作为Master控制节点,执行如下指令创建公钥和私钥,然后将公钥拷贝至其余节点即可

ssh-keygen -t rsa -N '' -f /root/.ssh/id_rsa -q
ssh-copy-id -i /root/.ssh/id_rsa.pub root@master1
ssh-copy-id -i /root/.ssh/id_rsa.pub root@master2
ssh-copy-id -i /root/.ssh/id_rsa.pub root@master3
ssh-copy-id -i /root/.ssh/id_rsa.pub root@node1


四、所有节点安装Docker、kubeadm、kubelet、kubectl (master1、2、3、Node1)

1、安装Docker

# 安装依赖软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加Docker repository,这里使用国内阿里云yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装docker-ce,这里直接安装最新版本

yum install -y docker-ce

#修改docker配置文件

mkdir /etc/docker

cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ],
  "registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"]
}
EOF

# 注意,由于国内拉取镜像较慢,配置文件最后增加了registry-mirrors

mkdir -p /etc/systemd/system/docker.service.d

# 重启docker服务

systemctl daemon-reload
systemctl enable docker.service
systemctl start docker.service
ps -ef|grep -aiE docker

2、Kubernetes添加部署源


添加kubernetes源指令如下:

cat>>/etc/yum.repos.d/kubernetes.repo<<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
EOF

3、K8S Kubeadm

  安装Kubeadm工具;

#安装Kubeadm;

yum install -y kubeadm-1.20.4 kubelet-1.20.4 kubectl-1.20.4

#启动kubelet服务(此时启动kubelet 会无法正常启动,可以忽略启动失败)

systemctl enable kubelet.service;systemctl start kubelet.service;systemctl status kubelet.service

Node1节点安装到这即可。

五、Haproxy安装配置(Master1、2、3)

Haproxy安装配置步骤相对比较简单,跟其他源码软件安装方法大致相同,如下为Haproxy配置方法及步骤:

(1)Haproxy编译及安装

#yum安装:
yum install haproxy* -y


#源码编译安装:
yum install wget gcc -y
cd /usr/src
wget -c https://www.haproxy.org/download/2.1/src/haproxy-2.1.12.tar.gz  
tar xzf haproxy-2.1.12.tar.gz
cd haproxy-2.1.12
make  TARGET=linux310  PREFIX=/usr/local/haproxy/
make  install  PREFIX=/usr/local/haproxy

(2)配置Haproxy服务

#yum 安装的配置:

cd /usr/local/haproxy
vim haproxy.cfg


#源码编译安装配置:

useradd -s /sbin/nologin haproxy -M
cd /usr/local/haproxy ;mkdir -p etc/
touch /usr/local/haproxy/etc/haproxy.cfg
cd /usr/local/haproxy/etc/
vim /usr/local/haproxy/etc/haproxy.cfg


(3)Haproxy.cfg配置文件内容如下:

global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /usr/local/haproxy
    stats socket /usr/local/haproxy/haproxy-admin.sock mode 660 level admin
    stats timeout 30s
    user haproxy
    group haproxy
    daemon
    nbproc 1
defaults
    log     global
    timeout connect 5000
    timeout client  10m
    timeout server  10m
listen  admin_stats
    bind 0.0.0.0:10080
    mode http
    log 127.0.0.1 local0 err
    stats refresh 30s
    stats uri /status
    stats realm welcome login\ Haproxy
    stats auth admin:123456
    stats hide-version
    stats admin if TRUE
listen kube-master
    bind 0.0.0.0:8443
    mode tcp
    option tcplog
    balance source
    server master1 172.20.26.24:6443 check inter 2000 fall 2 rise 2 weight 1
    server master2 172.20.26.86:6443 check inter 2000 fall 2 rise 2 weight 1
    server master3 172.20.26.89:6443 check inter 2000 fall 2 rise 2 weight 1

(4)启动Haproxy服务

/usr/local/haproxy/sbin/haproxy   -f   /usr/local/haproxy/etc/haproxy.cfg    #(源码编译安装)

/usr/local/haproxy/sbin/haproxy   -f   /usr/local/haproxy/haprox

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lqcbj_IT老混混

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值