• 从零开始:新手快速在国产操作系统中搭建高可用K8S(V1.28)集群落地实践


    b03bc5c49f8b00e1fee28b2b66b9010b.jpeg

    e933ebea10992ed188f7dad5760a333c.gif

    微信改版了,现在看到我们全凭缘分,为了不错过【全栈工程师修炼指南】重要内容及福利,大家记得按照上方步骤设置「接收文章推送」哦~

    关注【公众号】回复【学习交流群】加入【SecDevOps】学习交流群!

    原文链接:

    从零开始:新手快速在国产操作系统中搭建高可用K8S(V1.28)集群落地实践此文章主要讲解企业内部在国产化银河麒麟Linux服务器操作系统中安装K8S容器编排云平台,基于安全加固后的操作系统,带领新手使用ansible工具+手动的方式快速安装部署最新v1.28版本的高可用K8S集群,让云原生技术实实在在企业中落地。icon-default.png?t=N7T8https://mp.weixin.qq.com/s/L-qABhXkHPx9dlmwQA-jFQ


    文章目录:

    95c15f9dd69d900140ba9ce23c383353.png


    本文为作者原创文章,为尊重作者劳动成果禁止非授权转载,若需转载请在【全栈工程师修炼指南】公众号留言,或者发送邮件到 [master@weiyigeek.top] 中我将及时回复。

    0x00 前言简述

    描述: 由于公司内部需要将原本繁重的elk日志收集平台(等保需要)以及Promethus资源监控预警平台(开发运维测试需要),迁移到国产Linux操作系统之中(大趋势),作者我也趁着此机会,将原本单机部署的项目进行迁移到,使用银河麒麟( KylinOS V10)服务器操作系统部署最新 V1.28 版本的高可用 Kubernetes 云平台上,让企业全面拥抱云原生,以及国产化替代。

    42efc86ca57fef83613fbd874dfa772b.png

    此外,作者也将使用Promtail + Loki + Grafana贴近于云原生的架构来全面替换繁重elk日志收集平台,并且使用 Promethus + Exporters + Alertmanager + PushGateWay 来完成企业内部主机、网络设备、业务等相关资源的监控预警,此系列文章将会在《#云原生落地实用指南》付费专栏之中进行持续更新,希望对各位有需要的朋友有帮助,也请多多支持作者创作更多云原生落地实践文章。

    此篇文章是作者花费了半天时间,为了防止恶意爬虫和伸手党直接转发,所以作者将此文设为付费文章(请作者喝一杯☕ 精神精神),希望大家理解并多多支持。

    作者将实践步骤流程进行总结,从而帮助各位企业IT朋友,在安全加固后的银河麒麟(KylinOS V10)服务器操作系统中,使用ansible + 手动的方式快速安装部署最新v1.28版本的 Kubernetes  高可用集群,以及NFS动态持久存储卷、Ingress-nginx、以及集群包管理工具 helm,集群管理工具 k9s等相关基础安装配置,为前面所述的,以为后续的日志收集资源监控预警做准备,让云原生实实在在企业中落地,加快企业内部的数字化转型以及完成企业内部国产化替代工作。

    若还有不了解的银河麒麟( KylinOS V10)系统的朋友可以参考,作者的此篇文章《企业实践 | 国产操作系统之光? 银河麒麟KylinOS-V10(SP3)高级服务器操作系统基础安装篇》进行基础扫盲。

    温馨提示: 此篇文章也适用于在 CentOS8 主机中安装高可用的K8S集群(V1.28)。


    0x01 Kubernetes 前置准备

    1.安装方式介绍

    描述:下面介绍了几种 Kubernetes 安装方式,以及其安装部署的特点区别,和部署的时间耗费情况,时而选择出最适合本企业中安装部署K8S的方式。

    • 1.基于 kubeadm 工具部署 (耗费时间 30min)

      kubeadm (耗费时间 30min):K8S 官方提供的原生安装方式,学习时建议首选此方式。官方文档: https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/

      kubespray (耗费时间 20~30min) : 基于ansible其支持联邦与舰队,高可用性集群,网络插件,持续集成测试。项目地址: https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubespray/

      kubekey (耗费时间 20~30min) :由 Go 语言开发是一种全新的安装工具,替代了以前使用的基于 ansible 的安装程序,可快速安装 Kubernetes/K3s。项目地址: https://github.com/kubesphere/kubekey

      sealos (耗费时间 180second) : 持多种部署方式,包括单主节点、多主节点、高可用等,同时还提供了一些高级功能,如TLS证书自动签发、节点扩缩容、组件升级等。官方地址: https://docs.sealos.io/zh-Hans/

      kind (kubernetes in docker): 提供一个轻量级、快速部署的Kubernetes环境,适用于开发、测试和本地调试,生产环境不建议。项目地址: https://github.com/kubernetes-sigs/kind

    • 2.基于 二进制离线部署 (耗费时间 较长)

      手动离线部署 (耗费时间 3~5hour) : 可参考博主的 kubease (耗费时间 7~10 hour) :基于二进制方式部署和利用ansible-playbook实现自动化;既提供一键安装脚本, 也可以根据安装指南分步执行安装各个组。项目地址: https://github.com/easzlab/kubeasz

    • 3.基于 Rancher 方式部署:(RKE)是一款非常简单,运行速度快的 Kubernetes 安装程序,支持各种运行平台,其次它是一个功能强大的容器管理平台,可以简化容器化应用程序的部署和管理,并提供丰富的功能来帮助用户监控和保护容器K8S集群。项目地址: https://docs.rancher.cn/


    2.安装依赖说明

    描述: 此处作者使用 kubeadm 进行 kubernetes(k8s)高可用安装部署, 我们可从 Kubernetes 官方文档中可知,其安装部署K8S的控制平面以及工作节点主机要求如下所示:

    • 一台或多台运行兼容 deb/rpm 的 Linux 操作系统的计算机;例如:Ubuntu 或 CentOS 或者其他发行版, 此处作者将使用国产系统KylinOS v10操作系统

    • 每台机器 2 GB 以上的内存,内存不足时应用会受限制。

    • 用作控制平面节点的计算机上至少有 2 个 CPU

    • 集群中所有计算机之间具有完全的网络连接,你可以使用公共网络或专用网络。

    • 高可用集群中将要使用奇数的Master工作平面。

    此处作者已经将国产系统KylinOS v10操作系统进行了安全加固以满足等保三级主机安全的要求,有需求的朋友请在下方自取,加固后的KylinOS系统登录连接界面如下所示:

    1. [IP 地址] : 10.10.10.2~10.10.10.5
    2. [System Info]
    3.   SYSTEM    : Kylin Linux Advanced Server V10 (Lance)
    4.   KERNEL    : Linux 4.19.90-52.25.v2207.ky10.x86_64
    5.   ARCH      : x86_64
    6.   UPTIME    : 0 days 0 hours 48 minutes 18 seconds
    7.   CPU       : Intel(R) Xeon(R) CPU E7-4820 v4 @ 2.00GHz (8 vCPU)
    8.   MEMORY    : 227 MB / 14749 MB (1.54% Used)
    9.   LOAD AVG  : 0.00 (1m), 0.00 (5m), 0.00 (15m)
    10.   PROCESSES : 194 (root), 3 (user), 197 (total)
    11.   USERS     : 1 users logged in
    12.   BASH      : 5.0.18(1)-release
    13. [Disk Usage]
    14.   Mounted: /                                3.0G / 98G (4% Used)
    15.   [============================================================]
    16.   Mounted: /boot                            280M / 1014M (28% Used)
    17.   [============================================================]

    Kylin银河麒麟安全加固脚本文档地址: https://mp.weixin.qq.com/s/eBF_Q-WkiZHKGdEG1MODNQ

    Kylin银河麒麟安全加固实践视频

    91f3d21eb5ba8540d422346f58f2faa0.png
    weiyigeek.top-已加固的Kylin银河麒麟系统图

    温馨提示: Kubernetes 是支持 IPv4 + IPv6 双栈, 若要使用IPV6的目的是在公网进行访问,需要配置 IPV6 静态地址。若您没有IPV6环境,或者不想使用IPv6,不对主机进行配置IPv6地址即可,并不会不影响后续,不过集群依旧是支持IPv6的,为后期留有扩展可能性。

    3.安装环境说明

    描述: 此处作者使用VMware EXSI安装的四台 KylinOS V10 虚拟机机器进行部署高可用的K8S集群,以及从存储NAS服务器划分的19T的NFS共享磁盘,用于存取相关设备抓取的日志,目标当然是存储 180天 以及满足等保的要求。

    主机说明

    主机名称主机地址K8S角色K8S版本主机与内核版本
    weiyigeek-0210.10.10.2control-planev1.28.1Kylin V10 (Lance)-4.19.90-52.26.v2207.ky10.x86_64
    weiyigeek-0310.10.10.3control-planev1.28.1Kylin V10 (Lance)-4.19.90-52.26.v2207.ky10.x86_64
    weiyigeek-0410.10.10.4control-planev1.28.1Kylin V10 (Lance)-4.19.90-52.26.v2207.ky10.x86_64
    weiyigeek-0510.10.10.5workv1.28.1Kylin V10 (Lance)-4.19.90-52.26.v2207.ky10.x86_64

    存储说明

    共享类型共享目录挂载点容量
    NFS192.168.4.9:/volume1/storage//storage19T

    VIP 负载均衡说明

    主机名称主机地址负载端口
    sec-lb.k8s.weiyigeek.cn10.10.10.1016443

    K8S配置说明

    关键项配置项
    clusterName 集群名称kubernetes
    dnsDomain 集群根域cluster.sec
    serviceSubnet 服务子网段10.96.0.0/16
    podSubnet pod 服务子网段172.16.0.0/16

    高可用K8S架构说明

    1441df17b290d03a4905c935f970f720.png

    weiyigeek.top-高可用K8S架构说明图

    4.安装主机配置

    主机网络

    描述: 由于我是采用安全加固后的虚拟机模板克隆的其他三台主机,我们需要按照K8S官方文档主机网络要求进行排除和配置; 我们需要确保每个节点上 MAC 地址product_uuid 的唯一性,你可以使用命令 ip linkifconfig -a 来获取网络接口的 MAC 地址, 可使用 sudo cat /sys/class/dmi/id/product_uuid 命令对 product_uuid 校验

    一般来讲,硬件设备会拥有唯一的地址,但是有些虚拟机的地址可能会重复, Kubernetes 使用这些值来唯一确定集群中的节点; 如果这些值在每个节点上不唯一,可能会导致安装失败。

    1. # 注意!
    2. # 若虚拟机是进行克隆的那么网卡的UUID会重复的,而重复的UUID无法获取到IPV6地址,当然若没有IPV6的需求可略过此部分。
    3. # 若UUID重复需要重新生成新的UUID, 此时使用 nmcli 进行快速配置
    4. # 查看当前的网卡列表和 UUID:
    5. # nmcli con show
    6. # 删除要更改 UUID 的网络连接:
    7. # nmcli con delete uuid <原 UUID>
    8. # 重新生成 UUID:
    9. # nmcli con add type ethernet ifname <接口名称> con-name <新名称>
    10. # 重新启用网络连接:
    11. # nmcli con up <新名称>
    12. # 更改网卡的UUID&及IP地址(执行后无需通过控制台登录)
    13. # control-plane
    14. ssh -p 20211 root@weiyigeek-03 "nmcli con delete uuid 2394d226-1467-4118-b358-2d90cd02e65b;nmcli con add type ethernet ifname ens160 con-name ens160;nmcli con up ens160;nmcli con mod ens160 ipv4.addresses 10.10.10.3/24; nmcli con mod ens160 ipv4.gateway 10.10.10.1; nmcli con mod ens160 ipv4.method manual; nmcli con mod ens160 ipv4.dns "223.6.6.6"; nmcli con up ens160"
    15. ssh -p 20211 root@weiyigeek-04 "nmcli con delete uuid 2394d226-1467-4118-b358-2d90cd02e65b;nmcli con add type ethernet ifname ens160 con-name ens160;nmcli con up ens160;nmcli con mod ens160 ipv4.addresses 10.10.10.4/24; nmcli con mod ens160 ipv4.gateway 10.10.10.1; nmcli con mod ens160 ipv4.method manual; nmcli con mod ens160 ipv4.dns "223.6.6.6"; nmcli con up ens160"
    16. # work
    17. ssh -p 20211 root@weiyigeek-05 "nmcli con delete uuid 2394d226-1467-4118-b358-2d90cd02e65b;nmcli con add type ethernet ifname ens160 con-name ens160;nmcli con up ens160;nmcli con mod ens160 ipv4.addresses 10.10.10.5/24; nmcli con mod ens160 ipv4.gateway 10.10.10.1; nmcli con mod ens160 ipv4.method manual; nmcli con mod ens160 ipv4.dns "223.6.6.6"; nmcli con up ens160"

    使用 nmcli 命令单独配置主机的IPv4/6地址命令参考:

    1. # 进行静态IPv4地址配置
    2. ssh -p 20211 root@weiyigeek-05 "nmcli con mod ens160 ipv4.addresses 10.10.10.5/24; nmcli con mod ens160 ipv4.gateway 10.10.10.1; nmcli con mod ens160 ipv4.method manual; nmcli con mod ens160 ipv4.dns "223.6.6.6"; nmcli con up ens160"
    3. # 进行静态IPv6地址配置; 若没有IPv6选择不配置即可
    4. ssh -p 20211 root@weiyigeek-05 "nmcli con mod ens160 ipv6.addresses fc00:43f4:1eea:1::10; nmcli con mod ens160 ipv6.gateway fc00:43f4:1eea:1::1; nmcli con mod ens160 ipv6.method manual; nmcli con mod ens160 ipv6.dns "2400:3200::1"; nmcli con up ens160"

    让 "cali、tunl" 开头的接口不被 NetworkManager 所管理, 温馨提示KylinOS v10 适用于CentOS8的源,所以此处你应该明白我所说的吧。

    1. # 适用于 CentOS 系列发行版本 ,若你是Ubuntu请忽略。
    2.  
    3. # 方式一
    4. # systemctl disable --now NetworkManager
    5. # systemctl start network && systemctl enable network
    6.  
    7. # 方式二
    8. cat > /etc/NetworkManager/conf.d/calico.conf << EOF 
    9. [keyfile]
    10. unmanaged-devices=interface-name:cali*;interface-name:tunl*
    11. EOF
    12. systemctl restart NetworkManager
    13.  
    14. # 参数解释:
    15. # unmanaged-devices 参数用于指定不由 NetworkManager 管理的设备。
    16. interface-name:cali*
    17. # 表示以 "cali" 开头的接口名称被排除在 NetworkManager 管理之外。例如,"cali0", "cali1" 等接口不受 NetworkManager 管理。
    18. interface-name:tunl*
    19. # 表示以 "tunl" 开头的接口名称被排除在 NetworkManager 管理之外。例如,"tunl0", "tunl1" 等接口不受 NetworkManager 管理。
    20. # 通过使用这个参数,可以将特定的接口排除在 NetworkManager 的管理范围之外,以便其他工具或进程可以独立地管理和配置这些接口。

    主机名称

    描述: 此处作者建议使用ansible 自动化运维工具针对K8S节点所有Linux进行管理,它可以极大方便我们批量执行命令,而不是在各主机上分别去单独执行,所以此处我们需要先在weiyigeek-02机器上安装 ansible 工具,在后续高可用集群的安装中会大量的使用。

    若对ansible 自动化运维工具还不了解的朋友,可以参考作者的《Ansible-自动化运维大成之路》专栏文章进行基础扫盲。

    首先,手动将下述主机名与IP地址解析配置追加到 master 角色 weiyigeek-02 主机的 /etc/hosts 文件中。

    1. tee -a /etc/hosts <<'EOF'
    2. 10.10.10.2 weiyigeek-02
    3. 10.10.10.3 weiyigeek-03
    4. 10.10.10.4 weiyigeek-04
    5. 10.10.10.5 weiyigeek-05
    6. 10.10.10.10 sec-lb.k8s.weiyigeek.cn   # VIP
    7. EOF

    快速安装配置 ansible

    1. # 只在 weiyigeek-02 节点安装
    2. # 查看安装
    3. dnf update 
    4. dnf list ansible --showduplicates | sort -r
    5. dnf install ansible -y
    6. # 查看版本
    7. $ ansible --version
    8. ansible 2.8.8
    9.   config file = /etc/ansible/ansible.cfg
    10.   .........
    11.   python version = 3.7.9 (default, Aug 14 202315:59:31) [GCC 7.3.0]
    12. # 配置分组&组变量
    13. tee -a /etc/ansible/hosts <<'EOF'
    14. [master]
    15. weiyigeek-[02:04]
    16. [work]
    17. weiyigeek-05
    18. [k8s:children]
    19. master
    20. work
    21. [k8s:vars]
    22. ansible_port=20211
    23. ansible_user=root
    24. EOF

    在 weiyigeek-02 节点上生成主机公密钥认证的所需的公密钥,以及配置与其他三台主机互信

    1. ssh-keygen -t ed25519 -C "devops@weiyigeek"
    2. for i in $(seq 2 5);do ssh-copy-id -o StrictHostKeyChecking=no -p 20211 root@weiyigeek-0${i};done

    验证 Ansible 是否工作正常,若出现 SUCCESS => {"ping": "pong"} 表示各节点连接成功

    1. ansible k8s -m ping -o
    2.   weiyigeek-02 | SUCCESS => {"ping""pong"}
    3.   weiyigeek-03 | SUCCESS => {"ping""pong"}
    4.   weiyigeek-04 | SUCCESS => {"ping""pong"}
    5.   weiyigeek-05 | SUCCESS => {"ping""pong"}
    6.   
    7. ansible work -m ping -o
    8.   weiyigeek-05 | SUCCESS => {"ping""pong"}

    使用 ansible 批量添加本地 hosts 解析

    1. 方式1.blockinfile 模块
    2. ansible k8s -m blockinfile -a 'path=/etc/hosts block="10.10.10.2 weiyigeek-02\n10.10.10.3 weiyigeek-03\n10.10.10.4 weiyigeek-04\n10.10.10.5 weiyigeek-05\n10.10.10.10 sec-lb.k8s.weiyigeek.cn" marker="#{mark} K8S Master-work Hosts" '
    3. 方式2.lineinfile 模块(推荐), 若存在则不会插入
    4. ansible k8s -m lineinfile -a 'path=/etc/hosts line="10.10.10.2 weiyigeek-02" create=yes' -o
    5. ansible k8s -m lineinfile -a 'path=/etc/hosts line="10.10.10.3 weiyigeek-03" create=yes' -o
    6. ansible k8s -m lineinfile -a 'path=/etc/hosts line="10.10.10.4 weiyigeek-04" create=yes' -o
    7. ansible k8s -m lineinfile -a 'path=/etc/hosts line="10.10.10.5 weiyigeek-05" create=yes' -o
    8. ansible k8s -m lineinfile -a 'path=/etc/hosts line="10.10.10.10 sec-lb.k8s.weiyigeek.cn" create=yes' -o

    批量验证主机硬解析配置: ansible k8s -m shell -a "cat /etc/hosts"

    主机时间

    使用 ansible 批量修改主机时间时区

    1. # 自动同步时间以及主机时区设置
    2. ansible k8s -m shell -a "ntpdate ntp1.aliyun.com" -o
    3. ansible k8s -m shell -a "timedatectl set-timezone Asia/Shanghai && timedatectl set-local-rtc 0" -o 
    4. # 此处KylinOS安全加固模板是采用的chronyd同步而非ntpdate,而需将ntp.aliyun.com更改为ntp1.aliyun.com
    5. ansible k8s -m replace -a 'path=/etc/chrony.conf regexp="ntp.aliyun.com" replace="ntp1.aliyun.com"' -o

    批量验证主机时间时区(CST,+0800): ansible k8s -m shell -a "timedatectl"

    主机 swap 禁用

    使用 ansible 批量修改禁用主机的swap交换空间:

    1. # 临时生效
    2. ansible k8s -m shell -a "sysctl -w vm.swappiness=0"
    3. # 永久生效
    4. ansible k8s -m lineinfile -a 'path=/etc/sysctl.conf line="# 部署 Kubernetes 集群相关内核参数配置"' -o
    5. ansible k8s -m lineinfile -a 'path=/etc/sysctl.conf line="vm.swappiness = 0"' -o

    主机 SELINUX 禁用

    使用 ansible 批量修改主机 SELINUX

    1. # 临时生效
    2. ansible k8s -m shell -a "setenforce 0"
    3. # 永久生效
    4. ansible k8s -m replace -a 'path=/etc/selinux/config regexp="SELINUX=enforcing" replace="SELINUX=disabled"' -o
    5. ansible k8s -m shell -a "grep "SELINUX" /etc/selinux/config"

    主机内核参数调整

    使用 ansible 批量启用内核转发模块及网桥过滤:

    1. # 临时生效
    2. # ansible k8s -m shell -a "sudo modprobe overlay && sudo modprobe br_netfilter" -o 
    3. # 永久生效
    4. cat <
    5. # 转发 IPv4 并让 iptables 看到桥接流量
    6. overlay
    7. br_netfilter
    8. EOF
    9. ansible k8s -m copy -a "src=/etc/modules-load.d/k8s.conf dest=/etc/modules-load.d/k8s.conf force=yes" -o 
    10. # 设置所需的 sysctl 参数,参数在重新启动后保持不变
    11. cat <
    12. net.bridge.bridge-nf-call-iptables  = 1
    13. net.bridge.bridge-nf-call-ip6tables = 1
    14. net.ipv4.ip_forward                 = 1
    15. EOF
    16. ansible k8s -m copy -a "src=/etc/sysctl.d/k8s.conf dest=/etc/sysctl.d/k8s.conf force=yes" -o 
    17. # 应用 sysctl 参数而不重新启动
    18. ansible k8s -m shell -a "sudo sysctl --system"

    验证主机 br_netfilter 和 overlay 模块被加载:ansible k8s -m shell -a 'lsmod | grep -E "br_netfilter|overlay"'

    280c9b3b49d2a95f406a8f49111d73d0.png

    weiyigeek.top-br_netfilter 和 overlay 模块加载图

    使用 ansible 批量修改禁用主机的防火墙:

    ansible k8s -m shell -a "systemctl disable firewalld.service && systemctl stop firewalld.service"

    5.安装配置 ipvs 负载均衡模块

    使用 ansible 批量安装 ipvs 工具并配置自动加载 ipvs 相关参数到内核中。

    1. # 安装 ipvs 工具
    2. ansible k8s -m shell -a "dnf install ipset ipvsadm -y"
    3. # 重启主机后将自动加载 ipvs 相关模块到内核中
    4. tee /etc/modules-load.d/ipvs.conf <<'EOF'
    5. # 加载 ipvs 负载均衡相关模块到内核
    6. ip_vs
    7. ip_vs_rr
    8. ip_vs_wrr
    9. ip_vs_sh
    10. nf_conntrack
    11. EOF
    12. ansible k8s -m copy -a "src=/etc/modules-load.d/ipvs.conf dest=/etc/modules-load.d/ipvs.conf force=yes" -o 
    13. # 使用Shell脚本加载 overlay、br_netfilter、ipvs 模块
    14. ansible k8s -m file -a "path=/etc/modules.d/ state=directory mode=0644"
    15. tee /etc/modules.d/k8s.modules <<'EOF'
    16. #!/bin/bash
    17. # netfilter 模块 允许 iptables 检查桥接流量
    18. modprobe br_netfilter
    19. modprobe overlay
    20. # nf_conntrack
    21. modprobe nf_conntrack
    22. # ipvs
    23. modprobe ip_vs
    24. modprobe ip_vs_rr
    25. modprobe ip_vs_wrr
    26. modprobe ip_vs_sh
    27. EOF
    28. ansible k8s -m copy -a "src=/etc/modules.d/k8s.modules dest=/etc/modules.d/k8s.modules force=yes" -o 
    29. ansible k8s -m shell -a "bash /etc/modules.d/k8s.modules"

    验证主机nf_conntrack、ip_vs相关模块是否被加载:ansible k8s -m shell -a "lsmod | grep -e ip_vs -e nf_conntrack"

    cd188e6c8da7dfe50d30a818b783bf36.png

    weiyigeek.top-验证nf_conntrack、ip_vs相关模块加载图

    温馨提示: 上述配置参考了【基于 IPVS 的集群内部负载均衡 [https://kubernetes.io/zh-cn/blog/2018/07/09/ipvs-based-in-cluster-load-balancing-deep-dive/]】文章,想详细了解的配置可以进去看看。

    温馨提示: 在 kernel 4.19 版本及以上将使用 nf_conntrack 模块, 则在 4.18 版本以下则需使用nf_conntrack_ipv4 模块。

    6.安装配置 HAproxy & Keepalived

    描述: 此处需要在主机中安装haproxy(HAProxy Load Balancer)用于HA代理健康检测,以及安装keepalivedLVS and VRRP High Availability Monitor)用于虚拟路由协议-主从创建一个VIPS虚拟地址。

    快速安装配置 HAproxy & Keepalived查看主机 HAproxy & Keepalived 可用版本

    完整原文链接: 从零开始:新手快速在国产操作系统中搭建高可用K8S(V1.28)集群落地实践此文章主要讲解企业内部在国产化银河麒麟Linux服务器操作系统中安装K8S容器编排云平台,基于安全加固后的操作系统,带领新手使用ansible工具+手动的方式快速安装部署最新v1.28版本的高可用K8S集群,让云原生技术实实在在企业中落地。icon-default.png?t=N7T8https://mp.weixin.qq.com/s/L-qABhXkHPx9dlmwQA-jFQ

  • 相关阅读:
    C编程入门到精通 专辑目录
    [LeetCode周赛复盘] 第 326 场周赛20230101
    遭遇DDOS攻击忍气吞声?立刻报警!首都网警重拳出击,犯罪分子无所遁形
    Python之并发编程(协程)
    万圣节服装上亚马逊美国站CPC认证的注意事项
    浅谈react组件间通信方式
    基于IMDB评论数据集的情感分析
    css的属性选择器的妙用,来用它实现一个轻量的tips组件吧
    【毕业设计】 python flas疫情爬虫可视化
    经常喝可乐会得肾结石吗?
  • 原文地址:https://blog.csdn.net/u013072756/article/details/133191651