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

K8S 集群搭建——cri-dockerd版

目录

一、工作准备

1.配置主机名

2.配置hosts解析

3.配置免密登录(只需要在master上操作)

4.时间同步(每台节点都要做,必做,否则可能会因为时间不同步导致集群初始化失败) 

5.关闭系统防火墙

6.配置内核转发及网桥过滤

7.启用IPVS

8.关闭SWAP分区

二、容器工作时工具安装

1.安装Docker

2.安装cri-dockerd

三、安装 k8s

四、k8s集群初始化 (只在master节点上面操作)

1.创建初始化文件

2.修改初始化文件

3.初始化

4.根据系统提示创建具体文件

五、k8s 集群 node 节点加入(在node1和node2上操作)

​六、添加网络插件(在master上操作)

执行安装Calico:

七、查看、验证


一、工作准备

机器:3台机器【一台master(集群的控制平面,负责集群的决策/管理),两台node机器(集群的数据平面,负责为容器提供运行环境)】

参数:2核1线程,4G内存,20G硬盘

系统:OpenEuler

IP分配:

主机名IP地址节点
k8s-master192.168.8.154master
k8s-node-01192.168.8.157node1
k8s-node-02192.168.8.158node2

本实验除了备注只需在master操作外,其他的都需要在每个节点上面操作 

1.配置主机名

hostnamectl set-hostname k8s-master  /  k8s-node01  /  k8s-node02

2.配置hosts解析

 cat >> /etc/hosts <<END
 192.168.8.154 k8s-master
 192.168.8.157 k8s-node01
 192.168.8.158 k8s-node02
 END

3.配置免密登录(只需要在master上操作)

ssh-keygen -t rsa

ssh-copy-id k8s-node01、k8s-node02  #复制给node机器

4.时间同步(每台节点都要做,必做,否则可能会因为时间不同步导致集群初始化失败) 

yum install chrony -y    #同步到同一时钟服务器上

systemctl restart chronyd  #重启服务

chronyc  sources  #验证时间同步

5.关闭系统防火墙

systemctl stop firewalld

systemctl disable firewalld

sed -i 's/enforcing/disabled/' /etc/selinux/config

6.配置内核转发及网桥过滤

#修改配置文件

vim  /etc/sysctl.d/k8s.conf 

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

vm.swappiness = 0

#加载 br_netfilter 模块

modprobe  br_netfilter

#查看是否加载

lsmod | grep br_netfilter

#使新添加的配置文件生效

sysctl -p /etc/sysctl.d/k8s.conf 

7.启用IPVS

vim /etc/sysconfig/modules/ipvs.modules

#!/bin/bash
ipvs_modules="ip_vs ip_vs_wlc ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack"
for kernel_module in ${ipvs_modules}
do
  /usr/sbin/modinfo -F filename ${kernel_module} >/dev/null 2>&1
  if [ $? -eq 0 ]
  then
    /usr/sbin/modprobe ${kernel_module}
  fi
done
然后给该文件添加执行权限

chmod +x /etc/sysconfig/modules/ipvs.modules

bash /etc/sysconfig/modules/ipvs.modules

8.关闭SWAP分区

临时关闭:swapoff  -a 

永久关闭:sed -i 's/.*swap.*/#&/' /etc/fstab

二、容器工作时工具安装

1.安装Docker

wget  https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#openEuler 系统在跟换源后需要将/etc/yum.repos.d/kubernetes.repo 中的$release 跟换成 8

yum install docker-ce

#开启docker 服务

systemctl enable --now docker

#然后配置国内镜像加速器

vim /etc/docker/daemon.json
{

"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://docker.nju.edu.cn"
    ]
}

2.安装cri-dockerd

下载cri-dockerd 的rpm包  ==>  上传 ==>  yum  install ==> 开机自启动

然后修改里面的配置文件:

vim  /usr/lib/systemd/system/cri-docker-service

修改第11行:

 ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9
然后重载 ==> 开机自启 ==> 检查组件状态

systemctl daemon-reload && systemctl enable cri-docker.socket && systemctl status cri-docker.socket cri-docker docker

三、安装 k8s

更换kubernets的软件源  vim  /etc/yum.repo.d/kubernets.repo

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/repodata/repomd.xml.key

yum clean all && yum makecache

#下载,重启

  1. yum install  kubeadm-1.27.2 kubelet-1.27.2 kubectl-1.27.2 -y

  2. systemctl enable kubelet && systemctl start kubelet

四、k8s集群初始化 (只在master节点上面操作)

1.创建初始化文件

[root@k8s-master ~]#kubeadm  config  print  init-defaultsb > kubeadm-init.yaml

2.修改初始化文件

[root@k8s-master ~]# vim kubeadm-init.yaml

12行:advertiseAddress: 192.168.8.154    #master的ip地址

15行:criSocket: unix:///var/run/cri-dockerd.sock

17行:name: k8s-master    #master的主机名

30行:imageRepository: registry.aliyuncs.com/google_containers #改成阿里云镜像代理地址

3.初始化

[root@k8s-master ~]# systemctl restart containerd
[root@k8s-master ~]# systemctl restart kubelet

[root@k8s-master ~]# kubeadm init --config=kubeadm-init.yaml --upload-certs --v=6

4.根据系统提示创建具体文件

然后根据初始化给的提示复制上面第一个到 node1 和 node2 节点上

五、k8s 集群 node 节点加入(在node1和node2上操作)

执行 kubeadm join 命令将节点加入集群:


六、添加网络插件(在master上操作)

执行安装Calico:

kubernetes支持多种网络插件,比如flannel、calico、canal等,任选一种即可

在Master节点上获取calico配置文件(可能会失败,如果失败,请下载到本地,然后安装)

kubectl create -f 
https://raw.githubusercontent.com/projectcalico/calico/v3.25.1/manifests/calico.yaml

1、比如我将下载好的配置文件上传到master节点上:

2、然后再进行安装:kubectl create -f  calico.yaml  

3、查看pod状态,如果是Running 状态就代表成功了,如果不是就代表有问题

七、查看、验证

[root@k8s-master ~]# kubectl get no -o wide
[root@k8s-master ~]# kubectl get pod -n kube-system

[root@k8s-master ~]# kubectl get cs

到这里一个一主两从的k8s集群已经搭建好了。

相关文章:

K8S 集群搭建——cri-dockerd版

目录 一、工作准备 1.配置主机名 2.配置hosts解析 3.配置免密登录&#xff08;只需要在master上操作&#xff09; 4.时间同步&#xff08;每台节点都要做&#xff0c;必做&#xff0c;否则可能会因为时间不同步导致集群初始化失败&#xff09; 5.关闭系统防火墙 6.配置…...

基于Python的电商销售数据分析与可视化系统实

一、系统架构设计 1.1系统流程图 #mermaid-svg-Pdo9oZWrVHNuOoTT {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Pdo9oZWrVHNuOoTT .error-icon{fill:#552222;}#mermaid-svg-Pdo9oZWrVHNuOoTT .error-text{fill:#5…...

学习笔记:Python网络编程初探之基本概念(一)

一、网络目的 让你设备上的数据和其他设备上进行共享&#xff0c;使用网络能够把多方链接在一起&#xff0c;然后可以进行数据传递。 网络编程就是&#xff0c;让在不同的电脑上的软件能够进行数据传递&#xff0c;即进程之间的通信。 二、IP地址的作用 用来标记唯一一台电脑…...

高效处理 List<T> 集合:更新、查找与优化技巧

引言 在日常开发中,List<T> 是我们最常用的数据结构之一。无论是批量更新数据、查找特定项还是进行复杂的集合操作,掌握 List<T> 的高级用法可以显著提高代码的效率和可读性。本文将详细介绍如何使用 List<T> 进行批量更新、查找匹配项以及优化性能的方法…...

HTML5(Web前端开发笔记第一期)

p.s.这是萌新自己自学总结的笔记&#xff0c;如果想学习得更透彻的话还是请去看大佬的讲解 目录 三件套标签标题标签段落标签文本格式化标签图像标签超链接标签锚点链接默认链接地址 音频标签视频标签 HTML基本骨架综合案例->个人简介列表表格表单input标签单选框radio上传…...

Windows控制台函数:标准输入输出流交互函数GetStdHandle()

目录 什么是 GetStdHandle&#xff1f; 它长什么样&#xff1f; 怎么用它&#xff1f; 它跟 std::cout 有什么不一样&#xff1f; GetStdHandle 是一个 Windows API 函数&#xff0c;用于获取标准输入、标准输出或标准错误设备的句柄。它定义在 Windows 的核心头文件 <…...

Vue3 中 Computed 用法

Computed 又被称作计算属性&#xff0c;用于动态的根据某个值或某些值的变化&#xff0c;来产生对应的变化&#xff0c;computed 具有缓存性&#xff0c;当无关值变化时&#xff0c;不会引起 computed 声明值的变化。 产生一个新的变量并挂载到 vue 实例上去。 vue3 中 的 com…...

常见的三种锁

一、互斥锁 互斥锁 Mutex 保证在任意时刻只有一个线程能够进入被保护的临界区。当一个线程获取到互斥锁后&#xff0c;其他线程若要进入临界区就会被阻塞&#xff0c;直到该线程释放锁。 互斥锁是一种阻塞锁&#xff0c;当线程无法获取到锁时&#xff0c;会进入阻塞状态。 应…...

离线文本转语音库pyttsx3(目前接触到的声音效果最好的,基本上拿来就能用)

在现代应用程序中&#xff0c;文本转语音&#xff08;Text-to-Speech, TTS&#xff09;技术越来越受到重视。无论是为视力障碍人士提供帮助&#xff0c;还是为教育和娱乐应用增添趣味&#xff0c;TTS 都能发挥重要作用。今天&#xff0c;我们将介绍一个简单易用的 Python 库——…...

LeetCode Hot100刷题——反转链表(迭代+递归)

206.反转链表 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1]示例 3&#…...

JJJ:linux sysfs相关

文章目录 1.sysfs&#xff08;属性&#xff09;文件的创建、读、写1.1 创建流程1.2 open流程1.3 read流程 2.补充2.1 sysfs下常见目录介绍2.2 属性相关2.2.1 简介2.2.2 attribute文件的创建 2.3 sysfs目录如何创建的 1.sysfs&#xff08;属性&#xff09;文件的创建、读、写 1…...

Leetcode 刷题记录 06 —— 矩阵

本系列为笔者的 Leetcode 刷题记录&#xff0c;顺序为 Hot 100 题官方顺序&#xff0c;根据标签命名&#xff0c;记录笔者总结的做题思路&#xff0c;附部分代码解释和疑问解答。 目录 01 矩阵置零 方法一&#xff1a;标记数组 方法二&#xff1a;两个标记变量 02 螺旋矩阵…...

什么样的物联网框架适合开展共享自助KTV唱歌项目?

现在物联网的广泛应用&#xff0c;也让更多用户们看到了它的实力&#xff0c;也使得共享经济遍地开花。其中共享自助唱歌设备也备受欢迎&#xff0c;那么适合开展共享自助KTV唱歌项目的物联网框架都应具备哪些特点呢&#xff1f; 智能化与自动化管理 物联网技术在共享KTV中的应…...

【Academy】HTTP Host 标头攻击 ------ HTTP Host header attacks

HTTP Host 标头攻击 ------ HTTP Host header attacks 1. 什么是 HTTP Host 标头&#xff1f;2. 什么是 HTTP Host 标头攻击&#xff1f;3. HTTP Host 标头漏洞是如何产生的&#xff1f;4. 如何测试 HTTP Host 标头漏洞4.1 提供任意 Host 标头4.2 检查有缺陷的验证4.3 发送不明…...

Web基础:HTML快速入门

HTML基础语法 HTML&#xff08;超文本标记语言&#xff09; 是用于创建网页内容的 标记语言&#xff0c;通过定义页面的 结构和内容 来告诉浏览器如何呈现网页。 超文本&#xff08;Hypertext&#xff09; 是一种通过 链接&#xff08;Hyperlinks&#xff09; 将不同文本、图像…...

技术领域,有许多优秀的博客和网站

在技术领域&#xff0c;有许多优秀的博客和网站为开发者、工程师和技术爱好者提供了丰富的学习资源和行业动态。以下是一些常用的技术博客和网站&#xff0c;涵盖了编程、软件开发、数据科学、人工智能、网络安全等多个领域&#xff1a; 1. 综合技术博客 1.1 Medium 网址: ht…...

k8s概念及k8s集群部署(Centos7)

Centos7部署k8s集群 部署之前&#xff0c;先简单说下k8s是个啥&#xff1a; 一、k8s简介&#xff1a; k8s&#xff0c;全称&#xff1a;kubernetes&#xff0c;它可以看作是一个分布式系统支撑平台。k8s的作用&#xff1a; 1、故障自愈&#xff1a; k8s这个玩意可以监控容器…...

《DeepSeek-V3:动态温度调节算法,开启推理新境界!》

在人工智能领域不断探索的征程中&#xff0c;DeepSeek-V3以其卓越的创新技术&#xff0c;尤其是动态温度调节算法&#xff0c;成为了备受瞩目的焦点。这项算法犹如一把神奇的钥匙&#xff0c;巧妙地开启了推理速度与精度动态平衡的大门&#xff0c;为大语言模型的发展开辟了新的…...

Python从入门到精通1:FastAPI

引言 在现代 Web 开发中&#xff0c;API 是前后端分离架构的核心。FastAPI 凭借其高性能、简洁的语法和自动文档生成功能&#xff0c;成为 Python 开发者的首选框架。本文将从零开始&#xff0c;详细讲解 FastAPI 的核心概念、安装配置、路由设计、请求处理以及实际应用案例&a…...

fastapi+angular停车管理系统可跨域

说明&#xff1a; 我计划用fastapiangular做一款停车管理系统&#xff0c;支持跨域 1.设计mysql数据库表&#xff0c; 2.建表&#xff0c;添加测试数据&#xff0c;多表查询&#xff0c; 3.在fastapi写接口查询数据&#xff0c; 4.用postman测试&#xff0c; 5.在angular前端展…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址&#xff1a;LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂&#xff0c;正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...

篇章二 论坛系统——系统设计

目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...

Windows 下端口占用排查与释放全攻略

Windows 下端口占用排查与释放全攻略​ 在开发和运维过程中&#xff0c;经常会遇到端口被占用的问题&#xff08;如 8080、3306 等常用端口&#xff09;。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口&#xff0c;帮助你高效解决此类问题。​ 一、准…...

中科院1区顶刊|IF14+:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点

中科院1区顶刊|IF14&#xff1a;多组学MR联合单细胞时空分析&#xff0c;锁定心血管代谢疾病的免疫治疗新靶点 当下&#xff0c;免疫与代谢性疾病的关联研究已成为生命科学领域的前沿热点。随着研究的深入&#xff0c;我们愈发清晰地认识到免疫系统与代谢系统之间存在着极为复…...

第21节 Node.js 多进程

Node.js本身是以单线程的模式运行的&#xff0c;但它使用的是事件驱动来处理并发&#xff0c;这样有助于我们在多核 cpu 的系统上创建多个子进程&#xff0c;从而提高性能。 每个子进程总是带有三个流对象&#xff1a;child.stdin, child.stdout和child.stderr。他们可能会共享…...

TI德州仪器TPS3103K33DBVR低功耗电压监控器IC电源管理芯片详细解析

1. 基本介绍 TPS3103K33DBVR 是 德州仪器&#xff08;Texas Instruments, TI&#xff09; 推出的一款 低功耗电压监控器&#xff08;Supervisor IC&#xff09;&#xff0c;属于 电源管理芯片&#xff08;PMIC&#xff09; 类别&#xff0c;主要用于 系统复位和电压监测。 2. …...