Docker + Containerd + Flannel 安装部署K8S

在这里插入图片描述

在这里插入图片描述

系统环境准备

# 1. 设置主机名
hostnamectl set-hostname k8s-n1 && bash# hostnamectl set-hostname k8s-n2 && bash
# hostnamectl set-hostname k8s-n3 && bash
# 2. 删除系统自带的容器软件(可选,最小化安装的系统这一步可省略)
dnf remove podman container* -y# 3. 关闭防火墙
systemctl --now disable firewalld# 4. 关闭 Selinux
setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config && getenforce# 5. 关闭虚拟内存
swapoff -a && sed -ri 's/.*swap.*/#&/' /etc/fstab && free -m# 6. 设置地址解析
cat << 'EOF' >> /etc/hosts
192.168.110.144  k8s-n1
192.168.110.145  k8s-n2
192.168.110.146  k8s-n3
EOF# 7. 加载桥接过滤内核模块
modprobe br_netfilter
modprobe overlay# 永久生效(重启后仍自动加载)
tee /etc/modules-load.d/k8s.conf <<EOF
br_netfilter
overlay
EOF# 8. 设置所需的 sysctl 参数,参数在重新启动后保持不变
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
EOF# 应用 sysctl 参数而不重新启动
sudo sysctl --system# 使用以下命令验证 `net.ipv4.ip_forward` 是否设置为 1
sysctl net.ipv4.ip_forward

安装Docker

安装 docker-ce 时会自动安装 containerd.io 、Runc 和 docker-compose 等软件依赖

curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo && dnf install docker-ce -y && docker -v && systemctl enable --now docker

安装 cri-dockerd(用于适配 K8S )

cri-dockerd 仓库地址
libcgroup 仓库地址
libcgroup 的 rpm 包下载地址:cri-dockerd 依赖 libcgroup,Rocky Linux 系统默认源不提供软件包安装,需要单独下载

wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.18/cri-dockerd-0.3.18-3.fc36.x86_64.rpm https://pkgs.sysadmins.ws/el9/base/x86_64/libcgroup-3.0-1.el9.0.1.x86_64.rpm && dnf install libcgroup-3.0-1.el9.0.1.x86_64.rpm cri-dockerd-0.3.18-3.fc36.x86_64.rpm -y && systemctl --now enable cri-docker.service

Docker 配置修改

如果当前网络能够访问 k8s (registry.k8s.io)和 Docker Hub(registry-1.docker.io)的镜像仓库这一步可以跳过

Pause 镜像≈ Pod 的“隐形操作系统内核”,用来管理 Pod 的 Namespace 和生命周期。(每个 Pod 的容器列表中会有一个隐藏的 pause 容器,通常不直接显示在 kubectl get pods 输出中)

# 1. 修改容器运行时(如 containerd、Docker)配置,使用可访问的镜像源。调整 Kubernetes 拉取 pause 镜像的专用参数,只有一个——pause(infra)镜像
sudo sed -i 's|^ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd://|ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.10|' /usr/lib/systemd/system/cri-docker.service# 2. 创建目录
sudo mkdir -p /etc/docker# 3. 写入配置文件(使用国内源)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.1panel.live/","https://docker.1ms.run","https://docker.xuanyuan.me","https://lispy.org","https://docker.xiaogenban1993.com","https://docker-0.unsee.tech","https://666860.xyz","https://hub.rat.dev","https://docker.m.daocloud.io","https://dockerproxy.net","https://demo.52013120.xyz","https://proxy.vvvv.ee","https://registry.cyou","https://dockerpull.org","http://cjie.eu.org","https://dockerhub.icu","https://hub.rat.dev","http://docker.wanpeng.top","https://doublezonline.cloud","https://atomhub.openatom.cn","https://docker.fxxk.dedyn.io"]
}
EOF# 4. 重启 docker 服务
systemctl daemon-reload && sudo systemctl restart docker

部署 k8s

添加仓库源

# 此操作会覆盖 /etc/yum.repos.d/kubernetes.repo 中现存的所有配置
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.33/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.33/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF

安装 kubelet、kubeadm 和 kubectl

disableexcludes=kubernetes` 就是告诉 dnf:“别管 kubernetes 仓库里的 exclude 规则,我就是要装!”(如果存在这样的 exclude 规则,默认会阻止系统默认更新或安装这些包)

dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes && systemctl enable --now kubelet

初始化集群

  1. 默认 criSocket: unix:///var/run/containerd/containerd.sock,直接使用的是containerd.sock,如果是用 docker 则修改为: --cri-socket=unix:///var/run/cri-dockerd.sock

  2. 默认 apiserver-advertise-address:非多网卡的情况下可以不指定IP地址,会自动选择默认的网络接口的 IP 地址作为 API 服务器的通告地址

  3. service-cidr:可以通过 kubeadm config print init-defaults | grep serviceSubnet 命令查看默认为 10.96.0.0/12 网段

  4. pod-network-cidr:参数用于指定 Pod 网络的 IP 地址范围(CIDR)。如不指定该参数,kubeadm 则不会自动分配 Pod 网络 CIDR,而是由后续安装的 CNI(Container Network Interface)插件决定默认值。安装 CNI 插件(如 Calico、Flannel、WeaveNet 等)时,插件会使用自己的默认 CIDR:
    - Calico:默认 `192.168.0.0/16
    - Flannel:默认 10.244.0.0/16
    - WeaveNet:默认 10.32.0.0/12

  5. –image-repository:用于指定拉取Kubernetes 官方组件镜像(如 kube-apiserver、kube-controller-manager、kube-proxy 等),可通过 kubeadm config print init-defaults | grep imageRepository 查看默认拉取镜像的地址为:registry.k8s.io

kubeadm init --apiserver-advertise-address=192.168.110.144 --image-repository registry.aliyuncs.com/google_containers --cri-socket=unix:///var/run/cri-dockerd.sock

复制 admin.conf 到 $HOME/.kube/config

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

worker 节点加入集群

kubeadm join 192.168.110.144:6443 --token 4y2hkh.79cm5x0suufkp43v \--discovery-token-ca-cert-hash sha256:32cc83b7f2a270fad6db95e15139db41ab20d9b44818279c2b79458c589c1eee \--cri-socket=unix:///var/run/cri-dockerd.sock

安装 calico 网络插件

wget https://docs.projectcalico.org/manifests/calico.yaml && kubectl apply -f calico.yaml

验证安装

[root@k8s-n1 ~]# kubectl get pods -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS       AGE
kube-system   calico-kube-controllers-7498b9bb4c-s9r6n   1/1     Running   0              136m
kube-system   calico-node-65l2j                          1/1     Running   0              136m
kube-system   calico-node-jxxnf                          1/1     Running   0              136m
kube-system   calico-node-m8f9p                          1/1     Running   0              136m
kube-system   coredns-757cc6c8f8-bqztg                   1/1     Running   0              151m
kube-system   coredns-757cc6c8f8-d4r4x                   1/1     Running   0              151m
kube-system   etcd-k8s-n1                                1/1     Running   1 (137m ago)   151m
kube-system   kube-apiserver-k8s-n1                      1/1     Running   1 (137m ago)   151m
kube-system   kube-controller-manager-k8s-n1             1/1     Running   1 (138m ago)   151m
kube-system   kube-proxy-c67s9                           1/1     Running   1 (136m ago)   145m
kube-system   kube-proxy-ck2fc                           1/1     Running   1 (138m ago)   151m
kube-system   kube-proxy-qlzqs                           1/1     Running   1 (136m ago)   145m
kube-system   kube-scheduler-k8s-n1                      1/1     Running   1 (138m ago)   151m[root@k8s-n1 ~]# kubectl get nodes
NAME     STATUS   ROLES           AGE    VERSION
k8s-n1   Ready    control-plane   151m   v1.33.3
k8s-n2   Ready    <none>          145m   v1.33.3
k8s-n3   Ready    <none>          145m   v1.33.3[root@k8s-n1 ~]# docker images
REPOSITORY                                                        TAG        IMAGE ID       CREATED         SIZE
registry.aliyuncs.com/google_containers/kube-apiserver            v1.33.3    a92b4b92a991   2 weeks ago     102MB
registry.aliyuncs.com/google_containers/kube-controller-manager   v1.33.3    bf97fadcef43   2 weeks ago     94.6MB
registry.aliyuncs.com/google_containers/kube-scheduler            v1.33.3    41376797d512   2 weeks ago     73.4MB
registry.aliyuncs.com/google_containers/kube-proxy                v1.33.3    af855adae796   2 weeks ago     97.9MB
registry.aliyuncs.com/google_containers/etcd                      3.5.21-0   499038711c08   4 months ago    153MB
registry.aliyuncs.com/google_containers/coredns                   v1.12.0    1cf5f116067c   8 months ago    70.1MB
registry.aliyuncs.com/google_containers/pause                     3.10       873ed7510279   14 months ago   736kB
calico/kube-controllers                                           v3.25.0    5e785d005ccc   2 years ago     71.6MB
calico/cni                                                        v3.25.0    d70a5947d57e   2 years ago     198MB
calico/node                                                       v3.25.0    08616d26b8e7   2 years ago     245MB[root@k8s-n1 ~]# docker ps
CONTAINER ID   IMAGE                                                COMMAND                   CREATED       STATUS       PORTS     NAMES
d12b62b15869   calico/kube-controllers                              "/usr/bin/kube-contr…"   3 hours ago   Up 3 hours             k8s_calico-kube-controllers_calico-kube-controllers-7498b9bb4c-s9r6n_kube-system_f44345be-9733-4533-8a5c-bfc412558411_0
558ea4826f18   1cf5f116067c                                         "/coredns -conf /etc…"   3 hours ago   Up 3 hours             k8s_coredns_coredns-757cc6c8f8-d4r4x_kube-system_e45c0ce6-f00e-46b1-b934-04735f3594ce_0
a398f003d09b   1cf5f116067c                                         "/coredns -conf /etc…"   3 hours ago   Up 3 hours             k8s_coredns_coredns-757cc6c8f8-bqztg_kube-system_c3147e5a-55d6-405a-a155-4ace28874e63_0
b2cbf6d8d63a   registry.aliyuncs.com/google_containers/pause:3.10   "/pause"                  3 hours ago   Up 3 hours             k8s_POD_coredns-757cc6c8f8-bqztg_kube-system_c3147e5a-55d6-405a-a155-4ace28874e63_2
d7e53937b112   registry.aliyuncs.com/google_containers/pause:3.10   "/pause"                  3 hours ago   Up 3 hours             k8s_POD_coredns-757cc6c8f8-d4r4x_kube-system_e45c0ce6-f00e-46b1-b934-04735f3594ce_2
d121eafeac5f   registry.aliyuncs.com/google_containers/pause:3.10   "/pause"                  3 hours ago   Up 3 hours             k8s_POD_calico-kube-controllers-7498b9bb4c-s9r6n_kube-system_f44345be-9733-4533-8a5c-bfc412558411_3
9e0493628085   08616d26b8e7                                         "start_runit"             3 hours ago   Up 3 hours             k8s_calico-node_calico-node-65l2j_kube-system_ea3ebed7-986b-47b3-9e50-7a2b11e6adfe_0
1da1ced65603   registry.aliyuncs.com/google_containers/pause:3.10   "/pause"                  3 hours ago   Up 3 hours             k8s_POD_calico-node-65l2j_kube-system_ea3ebed7-986b-47b3-9e50-7a2b11e6adfe_0
9b52c1709536   41376797d512                                         "kube-scheduler --au…"   3 hours ago   Up 3 hours             k8s_kube-scheduler_kube-scheduler-k8s-n1_kube-system_8002c56a1a9e4cbda46304d0353a1cf0_1
0fe4352fd8ef   499038711c08                                         "etcd --advertise-cl…"   3 hours ago   Up 3 hours             k8s_etcd_etcd-k8s-n1_kube-system_86e38a1b0b52714d200360b69ca8a141_1
df71f0502ff8   a92b4b92a991                                         "kube-apiserver --ad…"   3 hours ago   Up 3 hours             k8s_kube-apiserver_kube-apiserver-k8s-n1_kube-system_ac629295faa78072f27d01c8b7ec40cd_1
868191fec8c9   registry.aliyuncs.com/google_containers/pause:3.10   "/pause"                  3 hours ago   Up 3 hours             k8s_POD_etcd-k8s-n1_kube-system_86e38a1b0b52714d200360b69ca8a141_1
425ccbc47628   registry.aliyuncs.com/google_containers/pause:3.10   "/pause"                  3 hours ago   Up 3 hours             k8s_POD_kube-apiserver-k8s-n1_kube-system_ac629295faa78072f27d01c8b7ec40cd_1
f1c3160f39c4   registry.aliyuncs.com/google_containers/pause:3.10   "/pause"                  3 hours ago   Up 3 hours             k8s_POD_kube-scheduler-k8s-n1_kube-system_8002c56a1a9e4cbda46304d0353a1cf0_1
9f67b206adf2   af855adae796                                         "/usr/local/bin/kube…"   3 hours ago   Up 3 hours             k8s_kube-proxy_kube-proxy-ck2fc_kube-system_f387171a-8cde-44c9-8472-10fb901c775c_1
669d57eb7739   bf97fadcef43                                         "kube-controller-man…"   3 hours ago   Up 3 hours             k8s_kube-controller-manager_kube-controller-manager-k8s-n1_kube-system_4fe303f337b51aa756c9e5b7c9d1a43b_1
6799ce918856   registry.aliyuncs.com/google_containers/pause:3.10   "/pause"                  3 hours ago   Up 3 hours             k8s_POD_kube-proxy-ck2fc_kube-system_f387171a-8cde-44c9-8472-10fb901c775c_1
6b53a72e664f   registry.aliyuncs.com/google_containers/pause:3.10   "/pause"                  3 hours ago   Up 3 hours             k8s_POD_kube-controller-manager-k8s-n1_kube-system_4fe303f337b51aa756c9e5b7c9d1a43b_1

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新华三H3CNE网络工程师认证—等价路由

等价路由就是“去同一个地方有多条路&#xff0c;时间一样近&#xff0c;快递站聪明地分拨送货”的技术&#xff01;&#xff08;网络不堵车&#xff0c;速度翻倍爽&#xff01;&#xff09;路由表中存在等价路由之后&#xff0c;前往该目的网段的IP报文路由器辉通过所有有效的…

DBLens 业界首创AI表结构变更审查,智能评估影响,助力开发效率跃升。

智能守护每一次变更&#xff1a;dblens AI 审查流程详解 在快速迭代的软件开发过程中&#xff0c;数据库结构变更是常见却高风险的操作。一次不经意的字段调整&#xff0c;可能引发线上故障、数据不一致甚至业务中断。为应对这一挑战&#xff0c;dblens 率先引入AI驱动的表结构…

窗口看门狗(WWDG)

窗口看门狗&#xff08;WWDG&#xff09;1. WWDG 简介作用&#xff1a;在应用跑飞、死循环、长时间被中断占用等异常时&#xff0c;强制复位 MCU&#xff0c;提高系统可靠性。时钟来源&#xff1a;来自 APB1 时钟 (PCLK1) 的分频&#xff08;与 IWDG 的 LSI 独立时钟不同&#…

PyTorch API 6

文章目录torch.onnx概述基于 TorchDynamo 的 ONNX 导出器基于TorchScript的ONNX导出器贡献与开发torch.optim如何使用优化器构建优化器每个参数的选项执行优化步骤optimizer.step()optimizer.step(closure)基类算法如何调整学习率如何利用命名参数加载优化器状态字典权重平均法…

2025年09月计算机二级MySQL选择题每日一练——第二期

计算机二级中选择题是非常重要的&#xff0c;所以开始写一个每日一题的专栏。 答案及解析将在末尾公布&#xff01; 今日主题&#xff1a;SQL 交互操作基础 1、有如下创建表的语句&#xff1a; CREATE TABLE tb_gs( gno CHAR(10) NOT NULL, sno CHAR(10) NOT NULL, gjob CH…

MySQL诊断系列(5/6):表结构与元数据查询——快速掌握数据库“DNA”

&#x1f517; 接上一篇《MySQL性能瓶颈定位》&#xff0c;今天我们来学习如何像查字典一样&#xff0c;快速、精准地了解任何数据库的内部结构。 当你接手一个新项目&#xff0c;或者需要排查一个不熟悉的模块时&#xff0c;你最需要的是什么&#xff1f; 不是代码&#xff0…

精准评估新纪元:AI得贤招聘官AI面试智能体6.3,重新定义AI面试

随着生成式AI技术爆发式发展&#xff0c;人力资源管理正经历从“信息化”到“智能化”的跃迁。据Gartner预测&#xff0c;2025年60%的企业将使用AI完成HR基础事务性工作。在这场变革中&#xff0c;AI得贤招聘官以其卓越的技术实力和产品能力&#xff0c;已成为行业智能化转型的…

MinerU:重新定义PDF智能提取的开源利器

MinerU&#xff1a;重新定义PDF智能提取的开源利器 ——告别传统工具的“鸡肋”体验&#xff0c;让文档处理真正高效智能 在数字化时代&#xff0c;PDF、Word等文档已成为信息传递的主要载体&#xff0c;但如何从这些格式中精准提取数据&#xff0c;却成了困扰无数人的难题。…

电脑芯片其实更偏向MPU不是CPU,GPU CPU NPU MPU MCU的区别

现代电脑的处理器&#xff08;如 Intel i5&#xff09;本质上是 MPU&#xff0c;因为它集成了 CPU 核心、缓存、定时器等&#xff0c;但我们日常仍习惯称其为 “CPU”电脑里的芯片&#xff08;如 Intel i5、AMD Ryzen&#xff09;通常被通俗地称为 “CPU”&#xff0c;但严格来…

Python爬虫XPath实战:电商商品ID的精准抓取策略

1. 引言 在电商数据爬取过程中&#xff0c;商品ID&#xff08;Product ID&#xff09;是最关键的字段之一&#xff0c;它通常用于唯一标识商品&#xff0c;并可用于构建商品详情页URL、价格监控、库存查询等场景。然而&#xff0c;不同电商网站的HTML结构差异较大&#xff0c;…

Web3:重构互联网秩序的下一代范式革命

Web3&#xff08;即 Web 3.0&#xff09;作为互联网发展的第三代形态&#xff0c;并非简单的技术迭代&#xff0c;而是一场围绕 “数据主权” 与 “价值分配” 的底层逻辑重构。它以区块链为核心骨架&#xff0c;融合分布式存储、密码学、人工智能等技术&#xff0c;旨在打破 W…

DeepSeek R2难产:近期 DeepSeek-V3.1 发布,迈向 Agent 时代的第一步

DeepSeek R2难产&#xff1a;近期 DeepSeek-V3.1 发布&#xff0c;迈向 Agent 时代的第一步 要说 AI 模型的江湖&#xff0c;这一年简直就是 「大模型修罗场」。 前脚 R2 传出难产的风声&#xff0c;后脚 DeepSeek 就甩出了一张大招牌&#xff1a;DeepSeek-V3.1。 这波操作不…

element-plus:el-tree ref初始化异常记录

文章目录描述问题解决记录一个tsx 下el-tree的小问题描述 <Dialog v-model"showEdit" :title"t(button.edit)" width"900" :maxHeight"650"><el-form :model"nowdata" class"dialog"><el-form-ite…

Linux软件安装(JDK,Mysql,Nginx)

安装方式介绍一、安装JDKtar -zxvf jdk-17.0.10_linux-x64_bin.tar.gz -C /usr/localexport JAVA_HOME/usr/local/jdk-17.0.10export PATH$JAVA_HOME/bin:$PATHsource /etc/profile1、操作步骤二、mysql黑马视频已经安装好了我们只需开放指定端口就可以在navicat中连接了&#…

公有地址和私有地址

在计算机网络中&#xff0c;私有地址和公有地址是IP地址的两大重要分类&#xff0c;二者在网络通信中承担着不同角色。下面从定义、联系、区别和应用四个维度进行详细说明&#xff1a; 一、定义 1. 公有地址&#xff08;Public IP Address&#xff09; 公有地址是全球唯一且可在…

分治思想在系统分流削峰中的实践与Golang前沿实现

分治思想在系统分流削峰中的实践与Golang前沿实现 1. 分治思想概述 分治(Divide and Conquer)是计算机科学中一种重要的算法设计思想&#xff0c;其核心在于"分而治之"——将复杂问题分解为若干个规模较小的相同或相似子问题&#xff0c;递归地解决这些子问题&#x…

移动端视口终极解决方案:使用 Visual Viewport封装一个优雅的 React Hook

前言 在移动端开发中&#xff0c;视口高度一直是一个令人头疼的问题。尤其是在 iOS Safari 浏览器中&#xff0c;还有三星手机的导航遮挡&#xff0c;当虚拟键盘弹出时&#xff0c;视口高度的变化会导致固定定位元素错位、全屏布局异常等问题。本文将深入分析这个问题的本质&a…

react中key的作用

在 React 中&#xff0c;key 是一个特殊的属性&#xff08;prop&#xff09;&#xff0c;它的主要作用是帮助 React 识别哪些元素发生了变化、被添加或被移除&#xff0c;从而高效地更新和重新渲染列表中的元素。以下是 key 的具体作用和注意事项&#xff1a;1. 高效更新虚拟 D…

Lua学习记录 - 自定义模块管理器

为人所知的是lua自带的require函数加载脚本只会加载一次(就像unity里面的资源管理和AB包管理)&#xff0c;而主播调试习惯是用Odin插件的Button在unity编辑器模式里调试而非进入播放模式后调试&#xff0c;今天主播在做热更新相关的时候企图多次调用脚本打印以调试功能&#xf…

MongoDB 分片集群复制数据库副本

文章目录一、登录MongoDB查询数据库及集合分片情况二、登录MongoDB先创建副本数据库并设置数据库及集合分片功能三、登录MongoDB查询emop_slinkmain数据库main_repetition集合和四、使用mongodump压缩备份emop_slinkmain数据库中的main_repetition集合和shard_repetition 集合五…