K8s(Kubernetes)简介及部署

发布时间:2026/10/24 17:18:50

K8s(Kubernetes)简介及部署 ​是容器编排管理平台用来批量管理 Docker 这类容器实现容器自动化部署、扩缩容、故障自愈管理大量容器化应用。原理把多台服务器组成集群划分两类角色Master 控制节点集群大脑接收用户指令调度容器管控集群状态kube‑apiserver集群入口所有请求必经etcd集群数据库保存全部集群配置数据kube‑scheduler调度器决定 Pod 跑在哪台机器kube‑controller‑manager控制器维持资源期望状态Worker 工作节点真正跑业务容器的机器kubelet节点代理接收 master 指令管理本机 Podkube‑proxy网络代理负责服务网络转发容器运行时docker/containerd真正运行容器常用名词Master集群控制节点每个集群需要至少一个master节点负责集群的管控Node工作负载节点由master分配容器到这些node工作节点上然后node节点上的Podkubernetes的最小控制单元容器都是运行在pod中的一个pod中可以有1个或者多个容器Controller控制器通过它来实现对pod的管理比如启动pod、停止pod、伸缩pod的数量等等Servicepod对外服务的统一入口下面可以维护者同一类的多个podLabel标签用于对pod进行分类同一类pod会拥有相同的标签NameSpace命名空间用来隔离pod的运行环境部署一.构建harbor镜像仓库1.部署docker本地仓库搭建本地 docker yum 源#httpdapache 网页服务用来对外提供本地 yum 源访问#![请添加图片描述](https://i-blog.csdnimg.cn/direct/6e0f6e7a9e73499bb1c96e7a8e082f7e.png)createrepo生成 yum 仓库元数据制作本地软件源[rootharbor ~]# dnf install httpd createrepo -y[rootharbor ~]# mkdir /var/www/html/docker/ -p[rootharbor ~]# vim /etc/httpd/conf/httpd.conf[rootharbor ~]# systemctl enable --now httpd​[rootharbor ~]# dnf install docker-ce --downloadonly --destdir /mnt/ -y[rootharbor ~]# mv /mnt/*.rpm /var/www/html/docker/[rootharbor ~]# createrepo -v /var/www/html/docker/​​[rootharbor ~]# dnf install docker-ce -y2.安装docker在harbor仓库节点[rootharbor ~]# dnf install docker-ce -y[rootharbor ~]# echo br_netfilter /etc/modules-load.d/docker_mod.conf[rootharbor ~]# modprobe -a br_netfilter[rootharbor ~]# vim /etc/sysctl.d/docker.confnet.bridge.bridge-nf-call-iptables1net.bridge.bridge-nf-call-ip6tables1net.ipv4.ip_forward1[rootharbor ~]# systemctl restart systemd-modules-load.service[rootharbor ~]# sysctl --system[rootharbor ~]# vim /lib/systemd/system/docker.serviceExecStart/usr/bin/dockerd-Hfd://--containerd/run/containerd/containerd.sock--iptablestrue[rootharbor ~]# systemctl daemon-reload​2.生成key3.编辑harbor配置文件![请添加图片描述](https://i-blog.csdnimg.cn/direct/992f6bcac23c4c829242b9bca2d529b2.png编写启动脚本4.启动并验证二.构建部署kubernetes所需主机关闭swap所有主机配置systemctl disable--nowswap.target systemctl mask swap.targetsed/swap/s/^/#/g-i/etc/fstab所有主机彼此建立解析cat /etc/hosts EOF 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.25.254.150 master 172.25.254.10 node1 172.25.254.20 node2 172.25.254.151 reg.bor.org EOF #所有主机不要忘了自己的解析所有主机配置kubernetes安装源vim /etc/yum.repos.d/kubernetes.repo [kubernetes] name kubernetes baseurl https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.35/rpm/ gpgcheck 0 #检测 dnf list kubelet以上操作完成后重启主机检测swap分区swapon-s没有任何输出表示ok安装软件这里利用ansible安装1.安装ansible并测试![请添加图片描述](https://i-blog.csdnimg.cn/direct/972740d34c644df6abf93c88056be370.png)配置文件并检测运行2.利用ansible剧本部署docker[devopsharbor ansible]$vimkubernetes-devops.yml - name: devops k8s from ansible hosts: all tasks: - name: setupdockerrepo yum_repository: name:dockerdescription:dockerbaseurl: http://172.25.254.151:4444/docker#harbor ipfile:dockergpgcheck: no - name:installdockerdnf: name: docker-ce state: present - name: setup docker.service replace: path: /lib/systemd/system/docker.service regexp:ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sockreplace:ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock --iptablestrue- name: setupdockerregistry copy: content:|{registry-mirrors:[https://reg.bor.org]}dest: /etc/docker/daemon.json - name: setupdockercerts file: path: /etc/docker/certs.d/reg.bor.org state: directory - name:cpcertsfilecopy: src:{{item.src}}dest:{{item.dest}}loop: - src: /etc/docker/certs.d/reg.bor.org/ca.crt dest: /etc/docker/certs.d/reg.bor.org/ca.crt - src: /etc/docker/certs.d/reg.bor.org/ca.crt dest: /etc/pki/ca-trust/source/anchors/ca.crt - name: load module copy: dest:{{item.dest}}content:{{item.value}}loop: - dest: /etc/modules-load.d/docker_mod.conf value: br_netfilter - dest: /etc/sysctl.d/docker.conf value:|net.bridge.bridge-nf-call-iptables1net.bridge.bridge-nf-call-ip6tables1net.ipv4.ip_forward1- name: update ca cert shell:update-ca-trust extract;sysctl --system- name: start services service: name:{{item}}state: restarted enabled:yesloop: -docker- systemd-modules-load.service[devopsharbor ansible]$ ansible-playbook kubernetes-devops.yml3.利用ansible安装cri-dockerd[devopsharbor ansible]$vimkubernetes-devops.yml - name: devops k8s from ansible hosts: all become:yestasks: - name: setupdockerrepo yum_repository: name:dockerdescription:dockerbaseurl: http://172.25.254.151:4444/docker#harbor ipfile:dockergpgcheck: no - name:installdockerdnf: name: docker-ce state: present - name: setup docker.service replace: path: /lib/systemd/system/docker.service regexp:ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sockreplace:ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock --iptablestrue- name: setupdockerregistry copy: content:|{registry-mirrors:[https://reg.bor.org]}dest: /etc/docker/daemon.json - name: setupdockercerts file: path: /etc/docker/certs.d/reg.bor.org state: directory - name:cpcertsfilecopy: src:{{item.src}}dest:{{item.dest}}loop: - src: /etc/docker/certs.d/reg.bor.org/ca.crt dest: /etc/docker/certs.d/reg.bor.org/ca.crt - src: /etc/docker/certs.d/reg.bor.org/ca.crt dest: /etc/pki/ca-trust/source/anchors/ca.crt########################################################- name: stup cri-dockerd copy: src:{{item.src}}dest:{{item.dest}}mode:0755loop: - src: ./cri-dockerd/cri-dockerd dest: /usr/bin/cri-dockerd - src:./cri-dockerd/cri-docker.servicedest:/lib/systemd/system/cri-docker.service- src:./cri-dockerd/cri-docker.socketdest:/lib/systemd/system/cri-docker.socket- name: update ca cert shell:update-ca-trust extract;sysctl --system;systemctl daemon-reload- name: start services service: name:{{item}}state: restarted enabled:yesloop: -docker- systemd-modules-load.service - cri-docker[devopsharbor ansible]$ ansible-playbook-iinventory kubernetes-devops.yml4.利用ansible部署k8s软件[devopsharbor ansible]$vimkubernetes-devops.yml - name:installkubernetes from ansible hosts: all tasks: - name: setup k8s repo yum_repository: name: kubernetes description: kubernetes baseurl: https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.35/rpm file: kubernetes gpgcheck: no - name:installsoftwareinmaster dnf: name:{{item}}state: present loop: - kubeadm-1.35.7-150500.1.1 - kubelet-1.35.7-150500.1.1 - kubectl-1.35.7-150500.1.1 when: inventory_hostname172.25.254.150- name:installsoftwareinworknodednf: name:{{item}}state: present loop: - kubeadm-1.35.7-150500.1.1 - kubelet-1.35.7-150500.1.1 when: inventory_hostname172.25.254.10or inventory_hostname172.25.254.20- name: setup kubectl kubeadm complication lineinfile: path: /root/.bashrc line:|source(kubectl completionbash)source(kubeadm completionbash)when: inventory_hostname172.25.254.150- name: start kubelet service: name: kubelet state: started enabled:yes[devopsharbor ansible]$ ansible-playbook kubernetes-devops.yml#让补齐功能生效[rootk8s-master mnt]# source ~/.bashrc三.下载kubernetes集群所需镜像四.在master中初始化kubernetes集群在master中完成集群初始化#每个人不一样其他主机加入本集群的凭证kubeadmjoin172.25.254.100:6443--tokentdwjoc.8d1yw3wl4r4tm6c4\--discovery-token-ca-cert-hash sha256:6b5950ef2cdba85d6dfdb564ee90d4187fa3d341767dc9852cbdd5c9dee4f927#如果忘记[rootmaster ~]# kubeadm token create --print-join-commandkubeadmjoin172.25.254.150:6443--tokenuvrr1z.03m17zret5c9gg2t\--discovery-token-ca-cert-hash sha256:9ffa91849f52ea4a831243853f57b068be438867fc4b2e2f2ae78c853ac309ac#如果初始化出问题[rootmaster ~]# kubeadm reset --cri-socketunix:///var/run/cri-dockerd.sock #可以重置集群设定添加kubernets环境变量到本机添加node节点到本集群#删除#kubeadm reset --force --cri-socket unix:///var/run/containerd/containerd.sockrm-rf/etc/kubernetes /var/lib/kubelet /etc/cni/net.d![请添加图片描述](https://i-blog.csdnimg.cn/direct/369a753a87764f639e68baa8cb2779bb.png)测试五.安装网络插件[rootmaster flannel]# vim kube-flannel.yml[rootk8s-master flannel]# grep -n image: kube-flannel.yml #要改内容所在行的位置148: image: flannel-io/flannel:v0.28.9175: image: flannel-io/flannel-cni-plugin:v1.9.1-flannel3186: image: flannel-io/flannel:v0.28.9
延伸阅读

更多相关文章

2026/10/24 14:57:59

如何使用 MMD Tools:从 PMX 导入到 VMD 导出的完整指南

如何使用 MMD Tools:从 PMX 导入到 VMD 导出的完整指南 【免费下载链接】blender_mmd_tools MMD Tools is a Blender addon for importing/exporting Models and Motions of MikuMikuDance. 项目地址: https://gitcode.com/gh_mirrors/bl/blender_mmd_tools …

2026/10/25 13:03:07

专项攻克-springcloud及其组件在一次请求中的作用

文章目录 一、初识springcloud二、在一个请求中,springcloud各组件的作用,各组件的常见平替中间件有哪些API网关(Gateway/Zuul)注册中心(Nacos/Zookeeper)动态配置中心(Spring Cloud Config / N…

2026/10/25 12:59:29

分布外泛化(OOD)全解析:从ERM失效到领域泛化与不变性学习

简介:这份资源是清华大学崔鹏团队等学者撰写的《Towards Out-Of-Distribution Generalization: A Survey》综述论文PDF,面向深度学习研究者、算法工程师及高年级学生,系统回应现实场景中训练与测试数据分布不一致、经典i.i.d.假设失效导致模型…

2026/10/25 12:59:29

DeepSeek R1 实测指南:7种接入路径、4个关键参数与3类翻车修复

简介:本资源是一份面向AI开发者、数据科学家与内容创作者的DeepSeek R1实战指南,系统梳理模型获取路径、部署方式与高阶应用技巧,解决用户在模型调用、本地适配及创意落地中的核心痛点。PDF文档共1个文件,大小567KB,轻…

2026/10/25 12:59:29

生成式引擎优化(GEO):品牌知识如何成为AI答案的可信源

1. 这不是又一个“AI搜索”概念炒作,而是品牌流量获取逻辑的底层重写 最近在给三家不同行业的客户做数字营销复盘时,我反复听到同一句话:“我们内容没少发,SEO也一直做,但新用户从搜索进来的比例,连续八个…

2026/10/25 12:59:29

WorkBuddy Space-Bunny:语义级匿名化引擎解析

1. WorkBuddy 与 Space-Bunny 的真实关系:不是“独家接入”,而是能力层融合最近在多个技术社区和开发者群聊里,频繁刷到一条标题:“腾讯 WorkBuddy 独家接入匿名模型 Space-Bunny,限时折扣至 10 月 7 日”。初看容易误…

2026/10/25 12:59:29

深度强化学习解决三维装箱问题的算法与实践

1. 项目概述:当深度强化学习遇上三维装箱难题三维在线装箱问题(3D Online Bin Packing)是物流、仓储和资源调度领域的经典NP难问题。想象一下你正在玩一个没有暂停按钮的俄罗斯方块游戏——箱子源源不断地从传送带上运来,你必须立…

2026/10/25 12:54:29

大模型知识库问答:RAG全链路与工程实践解析

简介:基于大语言模型与RAG(检索增强生成)的知识库问答系统,专门面向需要为企业构建私有知识库问答能力的开发者与运维人员,重点解决大模型在实际应用中常见的幻觉问题,以及私有文档难以直接用于模型训练与推…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑