Kubernetes 运维 - 高可用集群方案 Keepalived + Haproxy

Kubernetes 运维 - 高可用集群方案

  • 一、概述
  • 二、搭建负载均衡高可用
    • 1.1 基础环境
      • 1.1.1 配置Hosts文件
      • 1.1.2 配置互信(可选)
      • 1.1.3 系统优化
        • ① 关闭防火墙&selinux&swap分区&iptables
        • ② 优化内核参数
        • ③ 配置时间同步
        • ④ kube-proxy开启ipvs的前置
      • 1.1.4 安装Docker
      • 1.1.5 安装Kubernetes
        • ① 配置阿里源
        • ② 安装kubelet
    • 1.2 安装Haproxy
      • 1.2.1 通过yum安装haproxy
      • 1.2.2 配置文件
      • 1.2.3 启动并设置开机自启
    • 1.3 部署Keepalived
      • 1.3.1 通过yum安装keepalived
      • 1.3.2 配置文件
        • ① Master-01
        • ② Master-02
        • ③ Master-03
      • 1.3.3 启动并设置开机自启
    • 1.4 初始化集群
      • 1.4.1 创建kubeadm-config文件
      • 1.4.2 创建目录
      • 1.4.3 安装calico网络
      • 1.4.4 上传证书
      • 1.4.5 将其他Master加入到集群
      • 1.4.6 查看集群状态
        • ① 检查etcd集群健康状态
        • ② 检查组件
      • 1.4.7 设置污点
    • 1.5 测试
      • 1.5.1 打开haproxy状态页面


一、概述

Kubernetes 运维 - 高可用集群方案 Keepalived + Haproxy_第1张图片

Keepalived 用于提供 kube-apiserver 对外服务的 VIP 地址
Haproxy 用于监听 VIP 地址,后端连接所有 kube-apiserver 实例,提供监控检查和负载均衡功能

keepalived在运行过程中对本机的haproxy进行状态进行周期性检查,如果检测到haproxy进程异常,则触发重新选主的过程,VIP也将漂移到新选出来的节点上,从而实现VIP的高可用

二、搭建负载均衡高可用

节点名 IP地址 使用端口 K8S版本
master-01 192.168.0.10 HA(8443) 1.18.2
master-02 192.168.0.20 HA(8443) 1.18.2
master-03 192.168.0.30 HA(8443) 1.18.2

1.1 基础环境

1.1.1 配置Hosts文件

192.168.0.10 master-01
192.168.0.20 master-02
192.168.0.30 master-03

1.1.2 配置互信(可选)

ssh-keygen -t rsa
ssh-copy-id 节点名

1.1.3 系统优化

① 关闭防火墙&selinux&swap分区&iptables
systemctl stop firewalld && systemctl disable firewalld

swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

yum -y install iptables-services
systemctl start iptables && systemctl enable iptables
iptables -F && service iptables save
② 优化内核参数
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf

你可能感兴趣的:(运维,运维,kubernetes,keepalived,haptoxy)