尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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
RELATED

相关推荐

小白Obsidian入门教程,这一篇就够了

小白Obsidian入门教程,这一篇就够了

你有没有经历过这样的“笔记焦虑”? 刷到好文章,先放进微信收藏夹,然后再也没打开过; 报了课、看了书,认认真真在Word或备忘录里记了几千字,转头就忘在哪了; 更可怕的是,有些笔记软件…

📅 2026/11/9 9:38:17
TT-AMX:在Apple Silicon Mac上实现Tensor-Train模型高效推理的完整指南

TT-AMX:在Apple Silicon Mac上实现Tensor-Train模型高效推理的完整指南

如果你正在为如何在 Apple Silicon Mac 上高效运行大模型而烦恼,那么这篇文章就是为你准备的。传统的推理引擎在 Mac 上运行时,常常面临内存带宽瓶颈和 CPU 利用率不足的问题,导致推理速度远低于预期。开发者们要么忍受缓慢的本地推理&#x…

📅 2026/9/25 6:29:55
IBM |COS SDK for Go 源码审阅:从 570 个文件看对象存储 SDK 的工程边界与风险治理

IBM |COS SDK for Go 源码审阅:从 570 个文件看对象存储 SDK 的工程边界与风险治理

IBM |COS SDK for Go 源码审阅:从 570 个文件看对象存储 SDK 的工程边界与风险治理 重要说明: 本文未执行项目构建、测试、依赖安装或安全扫描。文中数量和结构均来自源码静态证据,不代表项目的性能、测试通过率或生产安全性。 评…

📅 2026/11/8 8:07:43
MORE NEWS

更多资讯

📰

网上的电工证是真假吗?工地太忙根本没时间复习考试怎么办

网上的电工证是真假吗?工地太忙根本没时间复习考试怎么办 工地太忙根本没时间复习考试,这几乎是每个特种作业人员的真实写照。尤其是电工证这种必须全国通用的证件,一旦出问题,直接影响到工作的开展和收入。最近不少人在问:**网上的电工证是真假吗?*…

📰

考证学习app电工证最新政策解读

电工证考不过是因为工地太忙?郑州报考避坑指南帮你省时间 工地太忙根本没时间复习考试,这几乎是每个电工从业者的真实写照。尤其是在郑州这样的建筑大市,工期紧、任务重,很多电工证报考者一边要赶工期,一边还要抽时间备考,压力可想而知。其实,现在有了…

📰

常州考电工证在哪里 在哪考学历不高也能报上名

常州考电工证在哪里 在哪考学历不高也能报上名 你是不是也在担心自己学历不高,报不了电工证?别急,今天我就带你搞清楚【常州考电工证在哪里】这个问题,还有在哪儿【在哪考】最靠谱,别再被培训机构坑了。 一、常州考电工证在哪里?别再被误导…

📰

新手适合考哪种电工证 2026河南最新政策全解析

新手适合考哪种电工证 2026河南最新政策全解析 你是不是觉得学历不高,报电工证都难?别急,2026河南最新政策对报考条件做了优化,学历门槛比你想象的低很多。如果你是许昌房建工程行业的从业者,想从零开始考电工证,这篇文章就是你的“通关秘籍”…

📰

井下电工证体检保姆级教程:实操考试心里没底怕挂科怎么办?

井下电工证体检保姆级教程:实操考试心里没底怕挂科怎么办? 你是不是也这样,一想到要参加井下电工证的实操考试,心里就发怵?担心自己准备不到位,考试时手忙脚乱,最后挂科?其实,很多人都有这种感受,尤其像你这样的濮阳应届工程类毕业生,第一次接触特…

📰

南充电工证培训哪家好在哪考不被坑的实战经验

南充电工证培训哪家好在哪考不被坑的实战经验 你是不是也这样,拿着手机刷了好久,就是找不到靠谱的【南充电工证培训哪家好】信息,生怕一不小心被中介骗了钱还拿不到证?别急,今天我就给你讲讲【在哪考】的那些事,还有我亲身经历的案例,让你少走弯路。…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬