手动搭建高可用的 kubernetes 集群(v1.31)

手动搭建高可用的 kubernetes 集群(v1.31)

目录
  • 1、环境准备
    • 1.1 集群规划(节约资源,可按需配置)
    • 1.2 安装依赖包(双节点执行)
    • 1.3 配置映射(双节点执行)
    • 1.4 免密登录(master节点执行)
    • 1.5 环境准备(双节点执行)
  • 2、安装containerd(双节点执行)
  • 3、安装Kubernetes
    • 3.1 安装Kubernetes组件(双节点执行)
    • 3.2 初始化Kubernetes集群(Master节点执行)
    • 3.3 加入Kubernetes集群(Worker节点执行)
  • 4、安装网络插件(双节点执行)

1、环境准备

1.1 集群规划(节约资源,可按需配置)

主机名称物理IP说明
master172.16.20.10Master节点
worker172.16.20.11Node节点

1.2 安装依赖包(双节点执行)

[root@master ~]# yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git socat

1.3 配置映射(双节点执行)

[root@master ~]# cat >> /etc/hosts <<EOF
172.16.20.10 master
172.16.20.11 worker
EOF

1.4 免密登录(master节点执行)

[root@master ~]# ssh-keygen 
[root@master ~]# ssh-copy-id root@master
[root@master ~]# ssh-copy-id root@worker

1.5 环境准备(双节点执行)

# 关闭防火墙
[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld# 禁用SELinux
[root@master ~]# sed -i 's/SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config# 禁用交换分区
[root@master ~]# swapoff -a
[root@master ~]# sed -i 's/.*swap.*/#&/' /etc/fstab# 设置时区
[root@master ~]# timedatectl set-timezone Asia/Shanghai# 同步时间
[root@master ~]# ntpdate time.windows.com
# 配置内核转发
[root@master ~]# cat >> /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF# 配置生效
[root@master ~]# sysctl --system# 加载系统模块
[root@master ~]# modprobe br_netfilter
[root@master ~]# lsmod | grep br_netfilter
br_netfilter           22256  0 
bridge                155432  1 br_netfilter

2、安装containerd(双节点执行)

# 下载源
[root@master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@master ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 替换成阿里云的镜像
[root@master ~]# sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo# 安装 containerd
[root@master ~]# yum install -y containerd
# 重建containerd配置文件
[root@master ~]# cp /etc/containerd/config.toml{,bak}
[root@master ~]# containerd config default > /etc/containerd/config.toml# 配置 systemd cgroup 驱动
[root@master ~]# vim /etc/containerd/config.toml
[root@master ~]# sed -n "63p;127p" /etc/containerd/config.toml# 替换成阿里源sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.8"# 开启CgroupSystemdCgroup = true
# 启动containerd并设置开机启动
[root@master ~]# systemctl enable --now containerd

3、安装Kubernetes

3.1 安装Kubernetes组件(双节点执行)

# 添加Kubernetes源
[root@master ~]# cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.31/rpm/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.31/rpm/repodata/repomd.xml.key
EOF# 安装kubeadm、kubelet和kubectl
[root@master ~]# yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes# 启动kubelet并设置开机启动
[root@master ~]# systemctl enable --now kubelet

3.2 初始化Kubernetes集群(Master节点执行)

# 使用kubeadm初始化集群(请根据您的实际情况替换<your-control-plane-endpoint>)
[root@master ~]# kubeadm init \--apiserver-advertise-address=172.16.20.10 \--image-repository=registry.k8s.io \--kubernetes-version=v1.31.0 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16# 配置kubectl以访问集群
[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

3.3 加入Kubernetes集群(Worker节点执行)

在Master节点上执行kubeadm token create --print-join-command获取加入集群的命令,然后在每个Worker节点上执行该命令。[root@worker ~]# kubeadm join 172.16.20.10:6443 --token cddh3x.lc2xhd19l1d134le \--discovery-token-ca-cert-hash sha256:fdf02257ce01071cd1e61bde518e417fae2e86e3a7650d81eabbb75e74d1ff51

4、安装网络插件(双节点执行)

选择 Calico 还是 Flannel 主要取决于你的具体需求:

  • 如果运行一个大型集群,需要精细的网络策略控制,并且愿意接受更复杂的配置过程,那么 Calico 可能是一个更好的选择。
  • 如果集群规模较小,对网络性能要求不是特别高,而且希望有一个易于管理和配置的网络解决方案,那么 Flannel 可能更适合你。
# 应用YAML文件以部署Flannel(网络模式二选一)
[root@master ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml# 应用YAML文件以部署Calico(网络模式二选一)
[root@master ~]# kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
# 验证集群状态
[root@master ~]# kubectl get nodes
NAME     STATUS   ROLES           AGE     VERSION
master   Ready    control-plane   5m11s   v1.31.1
worker   Ready    <none>          3m7s    v1.31.1# 查看集群信息
[root@master ~]# kubectl cluster-info
Kubernetes control plane is running at https://172.16.20.10:6443
CoreDNS is running at https://172.16.20.10:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy# 检查集群的组件状态
[root@master ~]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE   ERROR
controller-manager   Healthy   ok        
scheduler            Healthy   ok        
etcd-0               Healthy   ok

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

crypto-js解密报错malformed utf-8 data

在进行加解密处理时出现这个问题。 但是当在一个完整程序运行环境内加密字符串&#xff0c;解密字符串是没问题的。 当把加密的字符存储到txt文件&#xff0c;在读取解密时出现错误无法解密。 最后&#xff0c;使用res.replace(/\s/g,‘’)正则过滤掉txt文件内的空格就成功了。…

爆火!大模型算法岗 100 道面试题全解析,赶紧收藏!

大模型应该是目前当之无愧的最有影响力的AI技术&#xff0c;它正在革新各个行业&#xff0c;包括自然语言处理、机器翻译、内容创作和客户服务等等&#xff0c;正在成为未来商业环境的重要组成部分。 截至目前大模型已经超过200个&#xff0c;在大模型纵横的时代&#xff0c;不…

【Kubernetes】常见面试题汇总(四十四)

目录 100.什么是容器资源监视&#xff1f; 101.副本集和复制控制器之间有什么区别&#xff1f; 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#xff09;” 。 题目 69-113 …

mov视频怎么转换成mp4?这几种转换方法值得收藏起来!

mov视频怎么转换成mp4&#xff1f;MOV格式&#xff0c;作为苹果专属的产物&#xff0c;它在非苹果体系下的兼容性常常受限&#xff0c;导致用户可能在非苹果软件平台上遭遇播放难题&#xff0c;甚至无法顺利加载视频内容&#xff0c;而且&#xff0c;MOV格式以其独特的压缩技术…

干货 | 2024制造业数字化现状调查白皮书(免费下载)

导读&#xff1a;在这本白皮书中&#xff0c;我们询问了制造商有关数字化转型的工作情况、2024 年的优先事项和可持续性。研究结果清楚地表明&#xff0c;在数字化方面处于领先地位的制造商转型项目比那些没有规划或刚刚起步的项目实现的价值要大得多。 加入知识星球或关注下方…

青动CRM-E售后V2.0.4

CRM售后管理系统&#xff0c;旨在助力企业销售售后全流程精细化、数字化管理&#xff0c;主要功能&#xff1a;客户、合同、工单、任务、报价、产品、库存、出纳、收费&#xff0c;适用于&#xff1a;服装鞋帽、化妆品、机械机电、家具装潢、建材行业、快销品、母婴用品、办公用…

只需要两步制作GIF动态图,方便快捷,制作动态表情包的利器!

推荐阅读&#xff1a;Python制作进度条&#xff0c;18种方式全网最全&#xff01;&#xff08;不全去你家扫厕所&#xff01;&#xff09; 在日常生活中肯定会接触到gif&#xff0c;例如在写文章的时候&#xff0c;有时需要将自己的代码的运行结果展示出来&#xff0c;如果放一…

05-成神之路_ambari_Ambari实战-013-代码生命周期-metainfo-configFiles详解

1.Redis 集群 metainfo.xml 示例 <?xml version"1.0"?> <metainfo><schemaVersion>2.0</schemaVersion><services><service><!-- Redis 集群服务的基本信息 --><name>REDIS</name><displayName>Redi…

VulnHub-SickOs1.1靶机笔记

SickOs1.1靶机笔记 概述 Vulnhub的靶机sickos1.1 主要练习从互联网上搜取信息的能力&#xff0c;还考察了对代理使用&#xff0c;目录爆破的能力&#xff0c;很不错的靶机 靶机地址&#xff1a; 链接: https://pan.baidu.com/s/1JOTvKbfT-IpcgypcxaCEyQ?pwdytad 提取码: yt…

Kali Linux上安装远程桌面服务VNC

在Kali Linux上安装远程桌面服务VNC&#xff0c;可以按照以下步骤进行&#xff1a; 一、安装VNC Server 更新软件包列表&#xff1a; 在终端中运行以下命令&#xff0c;以确保你的软件包列表是最新的。 sudo apt update在执行更新之前会先验证当前账号密码&#xff0c;输入密码…

一种路径敏感的数据依赖分析算法

Falcon 1.方法1.1.Basic Rule1.2.改进算法1.3.跨函数分析 2.Evaluation2.1.设置2.2.value-flow分析2.3.Thin Slicing2.4.Bug Detection 参考文献 这篇工作发表于PLDI 24&#xff0c;提出了一种context- 以semi-path-sensitive的数据依赖分析算法&#xff0c;解决path-sensitive…

大数据毕业设计选题推荐-广东旅游数据分析系统-Hive-Hadoop-Spark

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、PHP、.NET、Node.js、GO、微信小程序、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇…

【牛Y】3DMAX快速构建低多边形城市建筑和道路插件CityBlocks教程

3DMAX快速构建低多边形城市建筑和道路插件CityBlocks&#xff0c;该插件功能主要分为两部分&#xff1a;一键城市建筑生成和一键城市道路生成。可用于城市配景建模、地图三维建模等使用。内置多种建筑组合方式&#xff0c;可使生成的建筑配景更加丰富、富于变换&#xff01; 【…

C++友元和运算符重载

目录 一. 友元 friend 1.1 概念 1.2 友元函数 1.3 友元类 1.4 友元成员函数 二. 运算符重载 2.1 概念 2.2成员函数运算符重载 2.3 成员函数运算符重载 2.4 特殊运算符重载 2.4.1 赋值运算符重载 2.4.2 类型转换运算符重载 2.5 注意事项 三、std::string 字符串类…

sentinel原理源码分析系列(一)-总述

背景 微服务是目前java主流开发架构&#xff0c;微服务架构技术栈有&#xff0c;服务注册中心&#xff0c;网关&#xff0c;熔断限流&#xff0c;服务同学&#xff0c;配置中心等组件&#xff0c;其中&#xff0c;熔断限流主要3个功能特性&#xff0c;限流&#xff0c;熔断&…

基于单片机语音智能导盲仪仿真设计

文章目录 前言资料获取设计介绍设计程序具体实现截图设计获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们…

计算机毕业设计Python+Spark知识图谱微博舆情预测 微博推荐系统 微博可视化 微博数据分析 微博大数据 微博爬虫 Hadoop 大数据毕业设计

《PythonSpark知识图谱微博舆情预测》开题报告 一、课题背景与意义 随着互联网技术的飞速发展&#xff0c;社交媒体平台如微博已成为人们表达观点、交流信息的重要渠道。微博每天产生海量的数据&#xff0c;这些数据中蕴含着丰富的社会情绪、事件动态等信息&#xff0c;对于政…

AI周报(9.22-9.28)

AI应用-Siipet宠物沟通师 Siipet是一款由SiiPet公司推出的创新宠物行为分析相机&#xff0c;旨在通过尖端技术加深宠物与主人之间的情感联系。这款相机利用先进的AI算法&#xff0c;能够自动识别和分析家中宠物的行为&#xff0c;并提供定制化的护理建议。 SiiPet相机的核心功…

影院管理革新:小徐的Spring Boot应用

第二章开发技术介绍 2.1相关技术 小徐影城管理系统是在Java MySQL开发环境的基础上开发的。Java是一种服务器端脚本语言&#xff0c;易于学习&#xff0c;实用且面向用户。全球超过35&#xff05;的Java驱动的互联网站点使用Java。MySQL是一个数据库管理系统&#xff0c;因为它…

进程间通信(一)【管道通信(下)】

目录 3. 编码通信3.1 管道的四种情况3.2 管道的大小3.3 总结管道的五个特征 4. 管道的应用场景4.1 命令行中的管道4.2 进程池中的管道 3. 编码通信 // 创建管道文件的系统调用 // pipefd&#xff1a;输出型参数&#xff0c;将以读写方式分别打开的文件的文件描述符带出&#x…