kubeadm安装K8s集群之高可用组件keepalived+nginx及kubeadm部署

系列文章目录
1.kubeadm安装K8s集群之基础环境配置
2.kubeadm安装K8s集群之高可用组件keepalived+nginx及kubeadm部署
3.kubeadm安装K8s集群之master节点加入
4.kubeadm安装K8s集群之worker1节点加入

kubeadm安装K8s集群之高可用组件keepalived+nginx及kubeadm部署

    • 1.安装kubeadm、kubectl、kubelet
    • 2.安装高可用组件nginx
    • 3.安装高可用组件keepalived

1.安装kubeadm、kubectl、kubelet

kubeadm:是用于初始化和管理kubernetes集群的工具,简化集群的创建维护;
kubelet:是每个节点的代理,负责容器的生命周期和节点级别的任务管理;
kubectl:是作为用户的命令行界面,用来与kubernetes集群进行交换,便于管理和操作集群资源;

  • 添加kubernetes yum源;
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
enabled=1
EOF
  • 安装软件包,我这里是安装指定版本kubelet-1.20.8-0;
yum install -y kubelet-1.20.8-0.x86_64 kubeadm-1.20.8-0.x86_64 kubectl--1.20.8-0.x86_64
  • 配置kubelet镜像仓库

默认配置的pause镜像使用 gcr.io 仓库,国内可能无法访问,所以这里配置 Kubelet 使用阿里云的 pause 镜像;

首先获取 Docker cgroups 驱动程序信息

DOCKER_CGROUPS=$(docker info --format '{{.CgroupDriver}}')
echo $DOCKER_CGROUPS

注意:获取Docker cgroups驱动程序信息是为了保证docker和kubelet的cgroup-driver保持一致,如果不一致,在初始化集群时会报错:[kubelet-check] The HTTP call equal to 'curl -sSL http://xxxxxxx:xxx connect: connection refused.

编辑Kubelet配置文件

cat >/etc/sysconfig/kubelet <<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=${DOCKER_CGROUPS} --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1"
EOF

在这里插入图片描述

加载配置并将kubelet设置为开机自启;

#加载system系统配置管理文件
systemctl daemon-reload
#设置开机自启并启动,启动肯定是报错,因为kubelet还没有在master进行初始化启动
systemctl enable kubelet && systemctl restart kubelet

2.安装高可用组件nginx

所有master节点都需要安装nginx和keepalived,普通节点无需安装

  • 启用EPEL仓库后安装 Nginx
yum install -y epel-release
yum install -y nginx
  • 加载nginx stream模块

因为需要用到nginx的stream模块,yum安装的nginx默认是没有这个模块的,所以需要手动安装所有mod;

yum -y install nginx-all-modules.noarch

安装成功后/usr/lib64/nginx/modules/目录中会增加以下文件;

ll /usr/lib64/nginx/modules/

在这里插入图片描述

  • 配置nginx配置文件

首先备份一下默认的nginx.conf文件

cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak

修改配置文件中的内容执行命令,将以下内容覆盖重定向到配置文件中;

提示:以下内容请根据文件中的注释调整对应的实际情况的内容;

cat >/etc/nginx/nginx.conf <<EOF
#手动将上面安装的nginx stream模块加载进来;
load_module /usr/lib64/nginx/modules/ngx_stream_module.so;
events {
    worker_connections  1024;
}

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.0.105:6443;   # master1 apiserver的ip和端口,请根据实际情况替换该内容;
       server 192.168.0.106:6443;   # master2 apiserver的ip和端口,请根据实际情况替换该内容;
    }
    server {
       listen 16443;  # 因nginx与master节点复用,这个监听端口不能是6443,否则会冲突
       proxy_pass k8s-apiserver;
    }
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
EOF

将nginx设置为开机自启

systemctl enable nginx && systemctl start nginx && systemctl status nginx

3.安装高可用组件keepalived

通过模拟虚拟路由器的来保证,主服务器出现故障时自动将流量切换到备用服务器,从而保证服务的持续可用,确保服务的连续性和可靠性;

  • 安装 Keepalived
yum install -y keepalived
  • 修改配置keepalived配置文件

首先备份默认的配置文件

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

修改配置文件中的内容执行命令,将以下内容覆盖重定向到配置文件中;

提示:以下内容请根据文件中的注释调整对应的实际情况的内容;

cat > /etc/keepalived/keepalived.conf << EOF
! 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 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script check_nginx { #配置健康检查脚本相关内容
     script "/etc/keepalived/check_nginx.sh" #配置健康检查脚本路径
     interval 2
     weight -20  #健康检查脚本返回的状态码为1,就权重下降20,实现VIP飘移;
   }
vrrp_instance VI_1 {
    state MASTER
    interface ens32 #ens32:网络接口名称,需要调整为实际对应的名称,可以执行ifconfig查看对应名字;
    mcast_src_ip 192.168.0.105  #主机ip,不同master该ip需要调整为对应的;
    virtual_router_id 51
    priority 100 #调度的优先级,各个master的优先级最好是不要相同;
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111 #可以理解为设置认证的密码,这里可根据情况调整;
    }
    virtual_ipaddress {
        192.168.200.18/24 #vip设置一组虚拟IP地址,可根据实际情况的需要调整,
    }
    track_script {
      check_nginx #设置健康检查
    }
}
EOF

编写健康检查脚本check_nginx.sh,这里为了演示随便写的个简单脚本,实际使用环境中不应如此粗糙;

cat > /etc/keepalived/check_nginx.sh << 'EOF'
#!/bin/bash
#这里随便写了一个简单的健康检查脚本,计算nginx的16443端口的数量,如果数量是0就判定为服务不正常;
#16443是上文nginx配置的监听端口,如果上面不是设置的16443这里需要调整为对应的;

count=$(ss -antp |grep 16443 |egrep -cv "grep|$$")
if [ "$count" -eq 0 ];then
    exit 1
else
    exit 0
fi
EOF
  • 启动 Keepalived

将keepalived为开机自启动,并开启服务

systemctl enable keepalived && systemctl start keepalived

如图,启动好keepalived的服务后可以输入命令会把vip显示出来,ip addr show

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/936931.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

细说STM32F407单片机SPI基础知识

目录 一、 SPI接口和通信协议 1、 SPI硬件接口 &#xff08;1&#xff09;MOSI(Master Output Slave Input) &#xff08;2&#xff09;MISO(Master Input Slave Output) &#xff08;3&#xff09;SCK 2、SPI传输协议 &#xff08;1&#xff09;CPHA0时的数据传输时序 …

【图像处理】利用numpy、opencv、python实现车牌检测

| 利用opencv实现车牌检测 整体流程涉及5个部分 图像通道转换对比度增强边缘连接二值化边界区域裁剪 图像通道转换 将RGB图像转换为HSV图像&#xff0c;仅保留V通道。V通道表示颜色的明暗&#xff0c;常用于图像对比度拉伸、直方图均衡化等流程。 原图像&#xff1a; V通…

结构变量的占用多少个字节

1、在linux中&#xff0c;这种写法比较清晰 struct gpio_led_data { u8 can_sleep; //如果定义了结构变量&#xff0c;则该成员占用1个字节 u8 blinking; //如果定义了结构变量&#xff0c;则该成员占用1个字节 }; struct gpio_leds_priv { int num_leds; //如…

[COLM 2024] V-STaR: Training Verifiers for Self-Taught Reasoners

本文是对 STaR 的改进方法&#xff0c;COLM 是 Conference On Language Models&#xff0c;大模型领域新出的会议&#xff0c;在国际上很知名&#xff0c;不过目前还没有被列入 ccf list&#xff08;新会议一般不会列入&#xff09;&#xff1b;作者来自高校、微软研究院和 Goo…

uni-app Android平台上架要求的隐私政策提示配置方法【跨端开发系列】

文章目录 前言&#x1f4d6;一、前言二、DCloud 数据采集说明三、配置方式3.1 HBuilderX3.2.1及以上版本配置方式3.2 HBuilderX3.2.0及以下版本配置方法3.3 模板提示框3.4 无提示框 四、离线打包配置方式五、模板提示框六、二次确认提示框七、国际化八、隐私协议内容需要注意的…

Xcode

info.plist Appearance Light 关闭黑暗模式 Bundle display name 设置app名称&#xff0c;默认为工程名 Location When In Use Usage Description 定位权限一共有3个key 1.Privacy - Location When In Use Usage Description 2.Privacy - Location Always and When In U…

auto-gptq安装以及不适配软硬件环境可能出现的问题及解决方式

目录 1、auto-gptq是什么&#xff1f;2、auto-gptq安装3、auto-gptq不正确安装可能会出现的问题&#xff08;1&#xff09;爆出&#xff1a;CUDA extension not installed.&#xff08;2&#xff09;没有报错但是推理速度超级慢 1、auto-gptq是什么&#xff1f; Auto-GPTQ 是一…

惠普Laser Jet MFP M437nda复印机成像装置严重不足及更换传输卷故障解决方法

惠普Laser Jet MFP M437nda复印机成像装置严重不足及更换传输卷故障解决方法,记录维修那点事儿,普通维修工的日常维修点滴; 惠普Laser Jet MFP M437nda复印机成像装置严重不足维修方法 如果复印及打印的效果没有问题的情况下我们也可以不更换套鼓及显影剂,那么不更换套鼓及…

【2025最新版】Stable diffusion汉化版安装教程(附SD安装包),一键激活,永久免费!

如何安装并学习使用Stable Diffusion呢&#xff1f; 其实&#xff0c;安装SD的过程并不复杂&#xff0c;只需按照简单的步骤操作&#xff0c;几分钟内就能完成安装&#xff0c;不论是Windows系统还是Mac系统&#xff0c;都能轻松应对。

【Python网络爬虫笔记】11- Xpath精准定位元素

目录 一、Xpath 在 Python 网络爬虫中的作用&#xff08;一&#xff09;精准定位元素&#xff08;二&#xff09;应对动态网页&#xff08;三&#xff09;数据结构化提取 二、Xpath 的常用方法&#xff08;一&#xff09;节点选取&#xff08;二&#xff09;谓词筛选&#xff0…

RabbitMQ个人理解与基本使用

目录 一. 作用&#xff1a; 二. RabbitMQ的5中队列模式&#xff1a; 1. 简单模式 2. Work模式 3. 发布/订阅模式 4. 路由模式 5. 主题模式 三. 消息持久化&#xff1a; 消息过期时间 ACK应答 四. 同步接收和异步接收&#xff1a; 应用场景 五. 基本使用 &#xff…

网络工程师常用软件之配置对比软件

老王说网络&#xff1a;网络资源共享汇总 https://docs.qq.com/sheet/DWXZiSGxiaVhxYU1F ☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝ 我们经常在项目或者运维中对设备的config进行变更&am…

嵌入式驱动开发详解15(电容触摸屏gt9147)

文章目录 前言电容触摸屏特点MT触摸消息电容触摸屏协议电容屏触摸时序Type A 触摸点信息上报时序Type B 触摸点信息上报时序 多点触摸所使用到的API函数 驱动部分驱动框图设备树节点修改设备树引脚配置设备节点配置 具体驱动开发I2C驱动框架I2C框架内部实现 参考文献 前言 随着…

antdv-<a-button>中属性的使用

UI组件库&#xff08;User Interface Component Library&#xff09;是一种预先构建好的、可重用的用户界面元素集合&#xff0c;旨在帮助开发者更快速、更简便地构建用户界面。这些组件通常包括按钮、表单、导航栏、模态框等&#xff0c;能够提供一致的外观和交互风格&#xf…

win服务器的架设、windows server 2012 R2 系统的下载与安装使用

文章目录 windows server 2012 R2 系统的下载与安装使用1 windows server 2012 的下载2 打开 VMware 虚拟机软件&#xff08;1&#xff09;新建虚拟机&#xff08;2&#xff09;设置虚拟机&#xff08;3&#xff09;打开虚拟机 windows server 2012&#xff08;4&#xff09;进…

【ArcGIS微课1000例】0135:自动生成标识码(长度不变,前面自动加0)

文章目录 一、加载实验数据二、BSM计算方法一、加载实验数据 加载专栏《ArcGIS微课实验1000例(附数据)》配套数据中0135.rar中的建筑物数据,如下图所示: 打开属性表,BSM为数据库中要求的字段:以TD_T 1066-2021《不动产登记数据库标准》为例: 计算出来的BSM如下图: 二、B…

康谋方案 | 多源相机数据采集与算法集成测试方案

目录 一、相机组成 二、多源相机采集与测试方案 三、应用案例分享 四、结语 在智能化技术快速发展当下&#xff0c;图像数据的采集与处理逐渐成为自动驾驶、工业等领域的一项关键技术。高质量的图像数据采集与算法集成测试都是确保系统性能和可靠性的关键。随着技术的不断进…

陪玩系统小程序源码/游戏陪玩APP系统用户端有哪些功能?游戏陪玩小程序APP源码开发

多客陪玩系统-游戏陪玩线下预约上门服务等陪玩圈子陪玩社区系统源码 陪玩系统源码&#xff0c;高质量的陪玩系统源码&#xff0c;游戏陪玩APP源码开发&#xff0c;语音陪玩源码搭建: 线上陪玩活动组局与线下家政服务系统的部署需要综合考虑技术选型、开发流程、部署流程、功能实…

运维实战:K8s 上的 Doris 高可用集群最佳实践

今天我们将深入探讨&#xff1a;&#xff1a;如何在 K8s 集群上部署 Compute storage coupled&#xff08;存算耦合&#xff09; 模式的 Doris 高可用集群&#xff1f; 本文&#xff0c;我将为您提供一份全面的实战指南&#xff0c;逐步引导您完成以下关键任务&#xff1a; 配…

从零用java实现 小红书 springboot vue uniapp (2)主页优化

前言 移动端演示 http://8.146.211.120:8081/#/ 前面的文章我们基本完成了主页的布局 今天我们具体的去进行实现 并且分享我开发时遇到的问题 首先先看效果 java仿小红书主页 实现效果为 1.顶端全屏切换 2.上划加载更多 3.下拉当前页整体刷新 顶端全屏切换我们选择 gui-switch…