当前位置: 首页 > news >正文

最新版kubeadm搭建k8s(已成功搭建)

kubeadm搭建k8s(已成功搭建)

环境配置

主节点 k8s-master:4核8G、40GB硬盘、CentOS7.9(内网IP:10.16.64.67)
从节点 k8s-node1: 4核8G、40GB硬盘、CentOS7.9(内网IP:10.16.64.68)
从节点 k8s-node2: 4核8G、40GB硬盘、CentOS7.9(内网IP:10.16.64.69)

# 查看配置
cat /etc/*release

在这里插入图片描述

1 初始化配置

关闭selinux、swap

三台机器都需要执行

# 关闭 Selinux:防止服务可能无法启动(企业中基本上都会选择关闭)
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0# 关闭 Swap:防止 kubelet 组件无法启动
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab 

在这里插入图片描述

设置主机名

# 主服务器(bash显示主机名)
hostnamectl set-hostname k8s-master
bash# 从服务器1(bash显示主机名)
hostnamectl set-hostname k8s-node1
bash# 从服务器2(bash显示主机名)
hostnamectl set-hostname k8s-node2
bash

启动内核参数iptables

# 访问网络插件丢包
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF# 生效配置
sysctl --system

在这里插入图片描述

2 安装docker&配置加速

三台服务器都执行

安装docker

# 1 配置阿里云镜像源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo# 2 yum安装docker
yum -y install docker-ce

在这里插入图片描述

配置docker加速

# 启动docker
systemctl enable docker && systemctl start docker#  配置docker镜像加速
# 配置加速器
cat > /etc/docker/daemon.json << EOF{"registry-mirrors": ["https://8er86g8v.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"]}
EOF# 重启 Docker
systemctl restart docker

安装cri-dockerd(docker与k8s通信的中间程序:翻译官)

因为k8s的容器运行时默认不再使用docker,因此如果要通过docker作为k8s的容器运行时需要安装对应组件,让其作为中间人来让k8s与docker通信。

# 安装cri-dockerd(docker与k8s通信的中间程序)
# 下载
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd-0.3.2-3.el7.x86_64.rpm# 安装
rpm -ivh cri-dockerd-0.3.2-3.el7.x86_64.rpm

修改cri-docker镜像地址

#  修改cri-docker依赖的镜像地址
# 修改配置
vim /usr/lib/systemd/system/cri-docker.service
# 将 ExecStart 配置改成下述这样:
ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9

在这里插入图片描述

重新加载cri-docker

systemctl daemon-reload
systemctl enable cri-docker && systemctl start cri-docker

3 部署k8s

安装kubeadm&kubelet&kubectl

  • kubeadm:集群的初始化部署和升级
  • kubectl:命令行工具,用于向APIServer发送指令,创建pod、Deployment等。
  • kubelet :是在每个节点上运行的代理,它负责接受主节点上的 API Server下放的指令,它还负责监控 Pod 的状态,并向 API Server 报告状态更新。此外,kubelet 与容器运行时(如 Docker 或 containerd)交互,以启动和管理容器。

用户通过kubectl向API Server发送指令,API Server接受到指令后交给kubelet去执行对应操作,同时kubelet定期上报信息给API Server。

### 三台机器上都执行
# 1 添加yum源仓库
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 https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF# 2 安装kubeadm、kubelet、kubectl
# 安装工具
yum install -y kubelet-1.28.0 kubeadm-1.28.0 kubectl-1.28.0# 设置开机自启
systemctl enable kubelet

master节点执行kubeadm init初始化集群

# apiserver-advertise-address 设置为主机内网ip地址
# --apiserver-advertise-address=10.16.64.67 配置k8s apiserver地址,用于监听、响应其他节点请求
# --service-cidr=10.96.0.0/12 配置k8s Service的IP范围
#  --pod-network-cidr=10.244.0.0/16 配置k8s pod的IP范围
kubeadm init \--apiserver-advertise-address=10.16.64.67 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.28.0 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16 \--cri-socket=unix:///var/run/cri-dockerd.sock

出现下述输出,说明安装完成:
在这里插入图片描述
按照控制台输出提示,在 Master 节点中执行上述图片中的命令:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

从节点执行kubeadm join加入k8s集群

接下来,将控制台中第二条命令在其他 Worker 节点中执行(并且指定一下socket):

# 尾部记得指定 socket,不要直接CV控制台!
# 如果不小心把 kubeadm join 命令清屏了,使用:kubeadm token create --print-join-command 重新生成
kubeadm join 10.16.64.67:6443 --token cxoc4h.fq38t2ftoppoedos --discovery-token-ca-cert-hash sha256:e82ccf4df53c534ab78c2aa19b1c644dc72ceb60a23ad7691c59a31170a21128 --cri-socket=unix:///var/run/cri-dockerd.sock

在这里插入图片描述

下面我们可以按照提示在Master节点执行kubectl get nodes 查看集群节点信息。可以看到虽然其他节点加入了k8s集群,但状态是NotReady不正常的,这是因为没有下载网络插件进行通信:
在这里插入图片描述

安装Calico网络插件,让node间通信

下面我们可以按照提示在Master节点执行kubectl get nodes 查看集群节点信息。可以看到虽然其他节点加入了k8s集群,但状态是NotReady不正常的,这是因为没有下载网络插件进行通信:
在这里插入图片描述
此时需要 Master 节点安装 Calico 网络插件,通过下述命令进行下载 calico.yaml 文件:

# 下载 calico.yaml 文件
cd ~
wget https://xuzhibin-bucket.oss-cn-beijing.aliyuncs.com/k8s/calico.yaml

下载完毕后,修改 calico.yaml 文件中的 CALICO_IPV4POOL_CIDR 配置,修改成上面 pod-network-cidr 的值:10.244.0.0/16(初始化k8s集群时,在master节点上执行的那个kubeadm init命令),如下所示:

# 通过calico来完成node间的通信
vim calico.yaml

在这里插入图片描述
修改完毕后,Master 应用配置文件:

kubectl apply -f calico.yaml

在这里插入图片描述
等待3分钟后,查看 Pod 运行状态,发现 pods 全部状态为 Running 成功,这样就说明 k8s 集群部署完毕了!

kubectl get pods -A -o wide

在这里插入图片描述
在这里插入图片描述
参考:https://blog.csdn.net/weixin_46594796/article/details/139649056

相关文章:

最新版kubeadm搭建k8s(已成功搭建)

kubeadm搭建k8s&#xff08;已成功搭建&#xff09; 环境配置 主节点 k8s-master&#xff1a;4核8G、40GB硬盘、CentOS7.9&#xff08;内网IP&#xff1a;10.16.64.67&#xff09; 从节点 k8s-node1&#xff1a; 4核8G、40GB硬盘、CentOS7.9&#xff08;内网IP&#xff1a;10…...

C++学习笔记-友元函数的定义与使用

一、引言 在C中&#xff0c;友元函数&#xff08;Friend Function&#xff09;是一个独特而强大的特性&#xff0c;它打破了类的封装性&#xff0c;允许一个或多个非成员函数访问类的私有&#xff08;private&#xff09;和保护&#xff08;protected&#xff09;成员。尽管这…...

熵、交叉熵、KL散度

这里写目录标题 熵KL散度引入交叉熵。交叉熵的二分类公式&#xff1a; 再次理解SoftMax函数结束 熵 熵&#xff0c;是一个物理上的概念&#xff0c;表示一个系统的不确定性程度&#xff0c;或者表示一个系统的混乱程序。 下边是信息熵的演示&#xff1a; 信息熵的公式如下&…...

THS配置keepalive(yjm)

启动完THS管理控制台和THS后&#xff0c;登录控制台&#xff0c;进入实例管理》节点管理&#xff0c;可以分别使用界面配置和编辑配置设置长连接。 1、界面配置 点击界面配置》集群设置&#xff0c;启用长连接&#xff0c;设置长连接数、最大请求数和超时时间。 2、编辑配置 …...

新加坡裸机云多IP服务器特性

新加坡裸机云多IP服务器是一种高性能、稳定性强&#xff0c;且具备多IP地址特性的服务器。它主要适用于需要高度计算性能、网络连接稳定和高安全性的业务场景&#xff0c;如跨境外贸等。下面将详细探讨该类型服务器的特性&#xff0c;rak部落为您整理发布新加坡裸机云多IP服务器…...

深入理解ADB:Android调试桥详解与使用指南

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Android ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 1. 什么是ADB&#xff1f; ADB的基本原理&#xff1a; 2. ADB的安装与配置 安装ADB工具集&#xff1a; 配置ADB环境变量&am…...

PACS-医学影像信息管理系统,全影像科室PACS源码,内置包括MPR、CMPR、VR等三维处理功能

PACS系统可以覆盖医院现有放射、CT、MR、核医学、超声、内镜、病理、心电等绝大部分DICOM和非DICOM检查设备&#xff0c;支持从科室级、全院机、集团医院级乃至到区域PACS的平滑扩展&#xff0c;能够与医院HIS、集成平台的有效集成和融合&#xff0c;帮助医院实现了全院医学影像…...

无人机搭载无人机反制设备可行性分析

一、引言 随着无人机技术的飞速发展&#xff0c;无人机在各个领域的应用越来越广泛。然而&#xff0c;无人机的不当使用也可能带来安全隐患和隐私问题。因此&#xff0c;无人机反制设备应运而生&#xff0c;用于对非法或危险无人机进行干扰和控制。本文将对无人机搭载无人机反…...

MATLAB绘制方波、锯齿波、三角波、正弦波和余弦波、

一、引言 MATLAB是一种具有很强的数值计算和数据可视化软件&#xff0c;提供了许多内置函数来简化数学运算和图形的快速生成。在MATLAB中&#xff0c;你可以使用多种方法来快速绘制正弦波、方波和三角波。以下是一些基本的示例&#xff0c;展示了如何使用MATLAB的命令来实现正弦…...

【通信协议-RTCM】MSM语句(2) - RINEXMSM7语句总结(重要!自动化开发计算卫星状态常用)

注释&#xff1a; 在工作中主要负责的是RTCM-MSM7语句相关开发工作&#xff0c;所以主要介绍的就是MSM7语句相关内容 1. 相位校准参考信号 2. MSM1、MSM2、MSM3、MSM4、MSM5、MSM6和MSM7的消息头内容 DATA FIELDDF NUMBERDATA TYPENO. OF BITSNOTES Message Number - 消息编…...

ios CCUIFont.m

// // CCUIFont.h // CCFC // //#import <Foundation/Foundation.h>// 创建字体对象 #define CREATE_FONT(fontSize) [UIFont systemFontOfSize:(fontSize)]interface UIFont(cc) (void)logAllFonts;end // // CCUIFont.m // CCFC // //#import "CCUIFont.h&…...

调度子系统在特定时间执行

时序逻辑调度器设计模式允许您安排Simulink子系统在指定时间执行。以下模型说明了这种设计模式。 时序逻辑调度器图表包含以下逻辑&#xff1a; 时序逻辑调度器的关键行为 时序逻辑调度器图表包含两个状态&#xff0c;它们以不同的速率调度函数调用子系统A1、A2和A3的执行&…...

【QAC】Dashboard服务端如何配置

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决Dashboard服务端如何配置的问题。 2、 问题场景 客户想使用Dashboard&#xff0c;Dashboard服务端如何配置。 3、软硬件环境 1、软件版本&#xff1a;HelixQAC23.04 2、机器环境&#xff1a;Windows 64bit 3…...

深入理解Linux网络(四):TCP接收阻塞

TCP socket 接收函数 recv 发出 recvfrom 系统调用。 进⼊系统调⽤后&#xff0c;⽤户进程就进⼊到了内核态&#xff0c;通过执⾏⼀系列的内核协议层函数&#xff0c;然后到 socket 对象的接收队列中查看是否有数据&#xff0c;没有的话就把⾃⼰添加到 socket 对应的等待队列⾥…...

【iOS】内存五大分区

目录 堆&#xff08;Heap&#xff09;是什么五大分区栈区堆区全局/静态区常量区&#xff08;即.rodata&#xff09;代码区&#xff08;.text&#xff09; 函数栈堆和栈的区别和联系图解 OC语言是C语言的超集&#xff0c;所以先了解C语言的内存模型的内存管理会有很大帮助。C语言…...

Jupyter Notebook: 是一个强大的交互式计算

文章目录 引言Jupyter Notebook的原理基础使用安装与启动单元格&#xff08;Cell&#xff09;操作快捷键 高级使用魔术命令Markdown支持可视化版本控制 优缺点优点缺点 官网链接结论 引言 Jupyter Notebook是一个强大的交互式计算环境&#xff0c;特别适用于数据科学、机器学习…...

【C#学习笔记】变量、变量类型

在C#中&#xff0c;变量是存储数据的容器&#xff0c;每个变量都有其特定的数据类型&#xff0c;这决定了变量可以存储的数据类型和大小。以下是关于C#中变量的由浅入深的详细解释&#xff0c;并附带代码示例和解释&#xff1a; 基础概念 定义&#xff1a; 变量是存储数据的容…...

题解:T480718 eating

eating 题目背景 从前有个荣光的王国&#xff0c;小 A 是里面的国王&#xff0c;今天他要赐予他的子民以仓廪。 题目描述 在一条街上有 n n n 个饭店。小 A 站在这条街的最左端。 第 i i i 个饭店离这条街最左端的距离是 a i a_i ai​&#xff0c;它所售卖的菜品的美味…...

MATLAB中matfile用法

目录 语法 说明 示例 创建 MAT 文件对象 启用对 MAT 文件的写访问权限 加载整个变量 将整个变量保存至现有 MAT 文件 加载和保存部分变量 确定变量大小 参数说明 局限性 提示 matfile的功能是访问和更改 MAT 文件中的变量&#xff0c;而不必将文件加载到内存中。 …...

Spring之Spring Bean的生命周期

Spring Bean的生命周期 通过BeanDefinition获取bean的定义信息调用构造函数实例化beanBean的依赖注入处理Aware接口&#xff08;BeanNameAware、BeanFactoryAware、ApplicationContextAware&#xff09;Bean的后置处理器BeanPostProcessor-前置初始化方法&#xff08;Initiali…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...