Centos kubeadm 部署 kubernetes 1.24.0 (单节点)(containerd cri-docker 做 container runtime)

发布时间:2026/10/23 4:03:51

Centos kubeadm 部署 kubernetes 1.24.0 (单节点)(containerd  cri-docker 做 container runtime) 设置hostnamehostnamectl set-hostname k8s-master#编辑hosts文件添加hostsvim/etc/hosts172.21.16.7 k8s-master关闭防火墙systemctl stop firewalld systemctl disable firewalld关闭selinuxsetenforce0sed-is/SELINUXenforcing/SELINUXdisabled/g/etc/selinux/config关闭swapoff分区swapoff-ased-ris/.*swap.*/#//etc/fstab安装ipvsadmyuminstallipvsadm ipset sysstat conntrack libseccomp-ycat/etc/modules-load.d/ipvs.confEOF ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack ip_tables ip_set xt_set ipt_set ipt_rpfilter ipt_REJECT ipip EOFsystemctl restart systemd-modules-load.service配置前置需求#配置前置需求catEOF|sudotee/etc/modules-load.d/k8s.confoverlay br_netfilter EOFsudomodprobe overlaysudomodprobe br_netfilter systemctl restart systemd-modules-load.service# sysctl params required by setup, params persist across rebootscatEOF|sudotee/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-iptables 1 net.bridge.bridge-nf-call-ip6tables 1 net.ipv4.ip_forward 1 EOF# Apply sysctl params without rebootsudosysctl--system##保险执行一下命令sysctl-wnet.ipv4.ip_forward1安装 container runtimecontainerdsudodnfinstall-ydnf-plugins-coresudodnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudodnfinstallcontainerd.io#初始化默认配置containerd config default|tee/etc/containerd/config.toml#修改containerd配置更改cgroup, #修改镜像源sudosed-i-Es#^([[:space:]]*sandbox[[:space:]]*).*#\1registry.aliyuncs.com/google_containers/pause:3.10.2#/etc/containerd/config.tomlsudosed-is/SystemdCgroup false/SystemdCgroup true//etc/containerd/config.toml#安装cni ,docker 源安装 containerd 需要手动安装cniwgethttps://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgzmkdir-p/opt/cni/bintarCxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.1.1.tgz systemctl daemon-reload systemctlenable--nowcontainerd#安装crictlVERSIONv1.24.1wgethttps://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gzsudotarzxvf crictl-$VERSION-linux-amd64.tar.gz-C/usr/local/binrm-fcrictl-$VERSION-linux-amd64.tar.gz#配置crictlcatEOF|tee/etc/crictl.yamlruntime-endpoint: unix:///run/containerd/containerd.sock image-endpoint: unix:///run/containerd/containerd.sock timeout: 10 debug: false pull-image-on-create: false disable-pull-on-run: false EOFsystemctl restart containerd crictl infocri-docker#安装配置dockersudodnf removedockerdocker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-enginesudodnfinstall-yyum-utils device-mapper-persistent-data lvm2sudodnf-yinstalldnf-plugins-coresudodnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudodnfinstalldocker-ce docker-ce-cli containerd.iosudomkdir-p/etc/dockersudotee/etc/docker/daemon.json-EOF { exec-opts: [native.cgroupdriversystemd], log-driver: json-file, log-opts: { max-size: 100m }, experimental: false, debug: false, max-concurrent-downloads: 10, registry-mirrors: [https://a7h8080e.mirror.aliyuncs.com] } EOFsudosystemctl daemon-reloadsudosystemctlenabledockersudosystemctl restartdocker#安装 golangdnfinstallgolang#安装 gitdnfinstallgit#安装 cri-dockergitclone https://github.com/Mirantis/cri-dockerd.gitcdcri-dockerdmkdirbin go build-obin/cri-dockerdmkdir-p/usr/local/bininstall-oroot-groot-m0755 bin/cri-dockerd /usr/local/bin/cri-dockerd#更改 packaging/systemd 目录下 cri-docker.service 和 cri-docker.socket 文件ExecStart/usr/bin/cri-dockerd --container-runtime-endpoint fd:// 改为ExecStart/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --network-plugincni --pod-infra-container-imageregistry.aliyuncs.com/google_containers/pause:3.8 ListenStream 的值 改为ListenStream/var/run/cri-dockerd.sockcp-apackaging/systemd/* /etc/systemd/systemsed-i-es,/usr/bin/cri-dockerd,/usr/local/bin/cri-dockerd,/etc/systemd/system/cri-docker.service systemctl daemon-reload systemctlenablecri-docker.service systemctl restart cri-docker.socket crictl config runtime-endpoint unix:///run/cri-dockerd.sock crictl config image-endpoint unix:///run/cri-dockerd.sock#或者编辑 vim /etc/crictl.yaml安装kubeadm ,kubectl ,kubelet# 添加kubernetes yum软件源cat/etc/yum.repos.d/kubernetes.repoEOF [kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled1 gpgcheck0 repo_gpgcheck0 gpgkeyhttps://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOFsudoyuminstall-ykubelet kubeadm kubectl--disableexcludeskubernetessudosystemctlenable--nowkubelet# 命令补全yuminstall-ybash-completionsource(crictl completionbash)crictl completionbash/etc/bash_completion.d/crictlsource(kubectl completionbash)kubectl completionbash/etc/bash_completion.d/kubectlsource/usr/share/bash-completion/bash_completion配置kubeadmkubeadm config print init-defaultskubeadm.yamlapiVersion:kubeadm.k8s.io/v1beta3bootstrapTokens:-groups:-system:bootstrappers:kubeadm:default-node-tokentoken:abcdef.0123456789abcdefttl:24h0m0susages:-signing-authenticationkind:InitConfigurationlocalAPIEndpoint:advertiseAddress:172.21.16.7bindPort:6443nodeRegistration:# 如果用cri-docker#criSocket: unix:///var/run/cri-dockerd.sockcriSocket:unix:///var/run/containerd/containerd.sockimagePullPolicy:IfNotPresentname:k8s-mastertaints:null---apiServer:timeoutForControlPlane:4m0sapiVersion:kubeadm.k8s.io/v1beta3certificatesDir:/etc/kubernetes/pkiclusterName:kubernetescontrollerManager:{}dns:{}etcd:local:dataDir:/var/lib/etcdimageRepository:registry.aliyuncs.com/google_containerskind:ClusterConfigurationkubernetesVersion:1.24.0networking:dnsDomain:cluster.localserviceSubnet:10.96.0.0/12podSubnet:10.244.0.0/16scheduler:{}---apiVersion:kubeproxy.config.k8s.io/v1alpha1kind:KubeProxyConfigurationmode:ipvs---apiVersion:kubelet.config.k8s.io/v1beta1kind:KubeletConfigurationcgroupDriver:systemd创建集群kubeadm init--configkubeadm.yamlmkdir-p$HOME/.kube\cp-i/etc/kubernetes/admin.conf$HOME/.kube/config\chown$(id-u):$(id-g)$HOME/.kube/config# 下载calico 网络配置curl-Ohttps://docs.projectcalico.org/manifests/calico.yaml#初始化网络配置kubectl apply-fcalico.yaml#设置端口范围 vim /etc/kubernetes/manifests/kube-apiserver.yaml 添加- --service-node-port-range1-65535单节点去除master节点的污点kubectl taintnodek8s-master node-role.kubernetes.io/control-plane-补充k8s 1.24.0版本基于nfs-client-provisioner的StorageClass PVC一直 pending无法创建旧版本的k8s 解决方案是更改/etc/kubernetes/manifests/kube-apiserver.yaml,添加- --feature-gatesRemoveSelfLinkfalse新版本后(1.24)更改此配置导致kubelet无法启动使用新版本的nfs-client-provisioner 即可解决此问题#添加repohelm repoaddnfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/#拉去资源helm pull nfs-subdir-external-provisioner/nfs-subdir-external-provisioner更改配置# 由于国内网络拉取不到谷歌仓库这里在docker hub上找的资源image:repository:docker.io/willdockerhub/nfs-subdir-external-provisioner...nfs:server:xx.xx.xx.xxxpath:xx...Tip1: kubernetes 1.24之后创建serviceaccount不会创建secrets了所以需要service-account-token来做bearer token得情况应该使用TokenRequest的方式来获取token1. 创建一个serviceaccount kubectl create sa admin2. 给sa绑定一个clusterrole kubectl create clusterrolebinding admin--clusterrolecluster-admin--serviceaccounttest:admin3. 从sa创建个token kubectl create token admin
延伸阅读

更多相关文章

2026/10/23 4:03:50

linux软连接和硬链接

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 3:58:50

LangGraph+MCP实战:构建AI-SPC智能根因分析系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 3:58:50

AI老照片修复全流程:51AI插件实现修复、上色与清晰化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 5:08:58

老显卡UEFI黑屏怎么办?GOPUpd v1.9.6.5注入GOP驱动教程

简介:面向DIY装机与电脑维修人员的AMD/NVIDIA显卡GOP更新工具GOPUpd 1.9.6.5压缩包,用于升级显卡图形输出协议组件;GOP是连接图形硬件与UEFI固件的重要接口,老旧显卡或主板常因GOP版本过旧导致开机黑屏、无法识别新显卡&#xff0…

2026/10/23 5:08:58

全国计算机等级考试一级选择题题库:25套真题考点与刷题技巧

简介:《2022年计算机等级考试一级试题及答案》是为全国计算机等级考试一级考生整理的练习文档,覆盖计算机基础核心知识点,适合考前刷题、查漏补缺。内容以选择题为主,包含多套试题及解析,涉及计算机发展历史、第四代计…

2026/10/23 5:08:58

老显卡UEFI黑屏怎么办?GOP模块更新实战指南

简介:一套面向AMD与NVIDIA显卡用户的UEFI GOP固件升级工具包,可解决老显卡在UEFI模式下启动黑屏、兼容性不足等问题,也能通过更新显卡BIOS提升稳定性和性能。包内共38个文件,压缩包约6.63MB,核心包含多个.efirom格式GO…

2026/10/23 5:08:58

数学建模电工杯:AI学习影响评价题的降维与综合评价拿分技巧

简介:这份资料是一份针对数学建模电工杯赛题的完整论文方案,围绕“人工智能对大学生学习影响的评价”展开,面向参赛学生与指导教师,既提供赛题解题流程,也可作为数据分析与综合评价类建模项目的参考样例。文档基于调查…

2026/10/23 5:08:58

VMware虚拟机安装Ubuntu零基础教程:小白也能安全上手

简介:本资源是一份面向Linux初学者与开发环境搭建需求者的VMware虚拟机安装Ubuntu系统实操指南,解决在Windows主机上零基础部署Ubuntu开发环境的核心问题。文档以图文并茂方式完整覆盖虚拟机选型对比、VMware安装配置、Ubuntu镜像下载选择、虚拟机创建、…

2026/10/23 5:03:58

9、Python基础之IO编程

前言IO就是Input/Output,输入输出。程序和外部数据交换都属于IO操作:读取文件、写入文件、网络传输等。IO操作有一个核心特点:速度远慢于CPU计算。 Python内置了丰富的IO支持,本篇包含:文件读写、StringIO/BytesIO、文…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/23 0:02:26

Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战

说实话,这几年接触了不少想入门FPGA的朋友,如果你问哪个项目能一口气把Verilog的核心基本功串起来,我通常会推荐电子密码锁。这个项目看着不起眼,却把矩阵键盘扫描、按键消抖、状态机设计、动态显示刷新、外设控制这些数字逻辑里的…

2026/10/23 0:02:26

数据服务监控运维实战:从指标体系到告警治理与故障排查

周末凌晨两点,手机震了。第一反应是“数据服务挂了”。打开电脑看了下,果然,某张核心报表的数据产出时间已经超过SLA两小时,下游三个业务方连着发来问询。这种场景,做过大数据运维的人都不会陌生。数据服务的监控与运维…

2026/10/23 0:02:26

FreeRTOS任务通知实战详解:内核原理、API与避坑指南

裸机编程切到RTOS之后,任务之间的通信和同步永远是躲不开的坎。前面聊过队列、信号量、互斥锁、事件组,这次把FreeRTOS任务通知(Task Notification)单独拎出来讲透。原因很简单:任务通知是FreeRTOS里最容易用错、也最容…

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

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

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