当前位置: 首页 > 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前端展…...

前端题目类型

HTMLCSS常见面试题 HTML标签有哪些行内元素 img、picture、span、input、textarea、select、label 说说你对元素语义化的理解 元素语义化就是用正确的元素做正确的事情。虽然理论上所有html元素都可通过css样式实现相同效果&#xff0c;但这样会使事情复杂化&#xff0c;所以需…...

openwrt路由系统------lua、uci的关系

1. Luci 的核心组成 (1) Lua 简介:Luci 的界面和逻辑几乎完全使用 Lua 脚本语言编写。Lua 是一种轻量级、高效的嵌入式脚本语言,适合在资源受限的路由器环境中运行。作用: 生成动态 Web 页面(与后端交互渲染 HTML)。处理用户提交的表单数据(如修改 Wi-Fi 密码)。调用系…...

Elastic:AI 会开始取代网络安全工作吗?

作者&#xff1a;来自 Elastic Joe DeFever 不会&#xff0c;但它正在从根本上改变这些工作。 生成式 AI (GenAI) 正迅速成为日常安全工作流程中的一个重要组成部分。那么&#xff0c;它是合作伙伴还是竞争对手&#xff1f; GenAI 技术在安全堆栈几乎每个方面的广泛应用&#…...

Linux安装升级docker

Linux 安装升级docker Linux 安装升级docker背景升级停止docker服务备份原docker数据目录移除旧版本docker安装docker ce恢复数据目录启动docker参考 安装找到docker官网找到docker文档删除旧版本docker配置docker yum源参考官网继续安装docker设置开机自启配置加速测试 Linux …...

【经验分享】Ubuntu20.04编译RK3568 AI模型报错问题(已解决)

【经验分享】Ubuntu20.04编译RK3568 AI模型报错问题&#xff08;已解决&#xff09; 前言问题现象问题分析解决方案总结 前言 这里使用的是Rockchip提供的rknn_model_zoo&#xff0c;https://github.com/airockchip/rknn_model_zoo/tree/main 此解决方案适用于Rockchip芯片在U…...

国产算力助力工业智能新范式

随着人工智能、智能制造以及边缘计算等技术趋势的发展&#xff0c;算力设备正逐渐从中心云向边缘机房乃至边缘现场下沉。在此背景下&#xff0c;以工控机为例的部署于各类边缘现场的算力设备市场&#xff0c;也正面临着新的变革。 根据IDC 2024研究报告显示&#xff1a;在能源制…...

学习笔记:利用OpenAI实现阅卷智能体

https://zhuanlan.zhihu.com/p/18047953492 ### 学习笔记&#xff1a;利用OpenAI实现阅卷智能体 #### 一、背景与需求 在各类考试中&#xff0c;选择题、判断题、填空题的阅卷相对简单&#xff0c;只需对比答案与作答是否一致。然而&#xff0c;简答题的阅卷较为复杂&#xff…...

第6届传智杯复赛第一场

A小红劈字符串 题目链接 题目链接&#xff1a;A-小红劈字符串&#xff08;B组&#xff09;_第6届传智杯复赛第一场&#xff08;补题&#xff09; (nowcoder.com) 题目描述 小红拿到了一个仅由小写字母组成的字符串&#xff0c;她希望将其分割成两个非空子串&#xff0c;使得第…...

CSDN博客:Markdown编辑语法教程总结教程(中)

❤个人主页&#xff1a;折枝寄北的博客 Markdown编辑语法教程总结 前言1. 列表1.1 无序列表1.2 有序列表1.3 待办事项列表1.4 自定义列表 2. 图片2.1 直接插入图片2.2 插入带尺寸的图片2.3 插入宽度确定&#xff0c;高度等比例的图片2.4 插入高度确定宽度等比例的图片2.5 插入居…...

Codeforces Round 258 (Div. 2) E. Devu and Flowers 生成函数

题目链接 题目大意 有 n n n ( 1 ≤ n ≤ 20 ) (1\leq n \leq 20) (1≤n≤20) 个花瓶&#xff0c;第 i i i 个花瓶里有 f i f_i fi​ ( 1 ≤ f i ≤ 1 0 12 ) (1\leq f_i \leq 10^{12}) (1≤fi​≤1012) 朵花。现在要选择 s s s ( 1 ≤ s ≤ 1 0 14 ) (1\leq s \leq 1…...