K8s安装部署(v1.28)--超详细(cri-docker作为运行时)

news2024/11/14 9:12:15

1、准备环境

ip角色系统主机名cpumem
192.168.40.129mastercentos7.9k8smaster48
192.168.40.130node1centos7.9k8snode148
192.168.40.131node2centos7.9k8snode248
192.168.40.132node3centos7.9k8snode348

2、系统配置(所有节点)

重要:首先将各主机ip配置为静态、主机名修改、时间同步 等

2.1 修改仓库源

#修改仓库源、安装必要工具
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git

2.2 关闭防火墙 

#关闭firewalld配置iptabes
systemctl stop firewalld && systemctl disable firewalld
yum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && iptables-save > /etc/sysconfig/iptables

2.3 关闭swap 和selinux

#关闭swap:
swapoff -a && sed -ri 's/.*swap.*/#&/' /etc/fstab
#关闭selinux:
setenforce 0 && sed -i 's/enforcing/disabled/' /etc/selinux/config

2.4 配置节点hosts 

cat >> /etc/hosts <<EOF
192.168.40.129 k8smaster
192.168.40.130 k8snode1
192.168.40.131 k8snode2
192.168.40.132 k8snode3
EOF
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.40.129 k8smaster
192.168.40.130 k8snode1
192.168.40.131 k8snode2
192.168.40.132 k8snode3

2.5 设置系统时区为 中国/上海 

timedatectl set-timezone Asia/Shanghai
#将当前的 UTC 时间写入硬件时钟
timedatectl set-local-rtc 0
#重启依赖于系统时间的服务
systemctl restart rsyslog
systemctl restart crond

2.6 关闭postfix 

#关闭postfix
systemctl stop postfix && systemctl disable postfix

 3、安装docker(所有节点)

3.1 安装docker

参考:《【CentOS7】Linux安装Docker教程(保姆篇)_linux centos7 安装docker-CSDN博客》

3.2 daemon.json配置

cat > /etc/docker/daemon.json <<EOF
{
  #设置驱动
  "exec-opts": ["native.cgroupdriver=systemd"],
  #设置阿里云镜像服务器地址(启用了https)
  "registry-mirrors": ["https://exsnkv91.mirror.aliyuncs.com"],
  #设置是有镜像服务器地址(未启用https)
  "insecure-registries":["192.168.40.129:5000"]
}
EOF
systemctl daemon-reload
systemctl restart docker

 

4、配置cri-docker(所有节点)

配置cri-docker使kubernetes以docker作为运行时 自 1.24 版起,Dockershim 已从 Kubernetes 项目中移除。因为历史问题docker却不支持kubernetes主推的CRI(容器运行时接口)标准,所以docker不能再作为kubernetes的容器运行时了,即从kubernetesv1.24开始不再使用docker了。 但是如果想继续使用docker的话,可以在kubelet和docker之间加上一个中间层cri-docker。cri-docker是一个支持CRI标准的shim(垫片)。一头通过CRI跟kubelet交互,另一头跟docker api交互,从而间接的实现了kubernetes以docker作为容器运行时。

4.1 下载cri-docker

到下面的链接下载最新版cri-docker

https://github.com/Mirantis/cri-dockerd/tags 

4.2 解压安装

tar zxf cri-dockerd-0.2.1.amd64.tgz 
cp cri-dockerd/cri-dockerd /usr/bin/

解压后,将文件复制到每个节点对应的目录 

scp /usr/bin/cri-dockerd 192.168.40.130:/usr/bin/
scp /usr/bin/cri-dockerd 192.168.40.131:/usr/bin/
scp /usr/bin/cri-dockerd 192.168.40.132:/usr/bin/

 4.3 配置启动文件

创建cri-docker启动文件 启动文件从下面链接找到。

https://github.com/Mirantis/cri-dockerd/tree/master/packaging/systemd

这里/usr/bin/cri-dockerd一定要加上参数 ,如下

vi /usr/lib/systemd/system/cri-docker.service
[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target
Requires=cri-docker.socket
 
[Service]
Type=notify
ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
 
StartLimitBurst=3
 
StartLimitInterval=60s
 
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
 
TasksMax=infinity
Delegate=yes
KillMode=process
 
[Install]
WantedBy=multi-user.target

创建启动文件 文件内容

 /usr/lib/systemd/system/cri-docker.socket 

vi /usr/lib/systemd/system/cri-docker.socket
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service
 
[Socket]
ListenStream=%t/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
 
[Install]
WantedBy=sockets.target

 同步到每个节点

scp /usr/lib/systemd/system/cri-docker.service /usr/lib/systemd/system/cri-docker.socket root@192.168.40.130:/usr/lib/systemd/system/
 
scp /usr/lib/systemd/system/cri-docker.service /usr/lib/systemd/system/cri-docker.socket root@192.168.40.131:/usr/lib/systemd/system/

scp /usr/lib/systemd/system/cri-docker.service /usr/lib/systemd/system/cri-docker.socket root@192.168.40.132:/usr/lib/systemd/system/
scp /usr/lib/systemd/system/cri-docker.socket/usr/lib/systemd/system/cri-docker.socket root@192.168.40.130:/usr/lib/systemd/system/
 
scp /usr/lib/systemd/system/cri-docker.socket/usr/lib/systemd/system/cri-docker.socket root@192.168.40.131:/usr/lib/systemd/system/

scp /usr/lib/systemd/system/cri-docker.socket/usr/lib/systemd/system/cri-docker.socket root@192.168.40.132:/usr/lib/systemd/system/

启动cri-docker并设置开机自动启动

systemctl daemon-reload ; systemctl enable cri-docker --now
#查看状态
systemctl is-active cri-docker

5、安装kubeadm(所有节点)

5.1 配置k8s阿里云源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

5.2 安装kubeadm kubelet kubectl指定版本  

#查看可安装的k8s版本
yum list kubeadm --showduplicates | sort -r
#安装1.28版本的k8s 
yum install -y kubelet-1.28.2-0 kubeadm-1.28.2-0 kubectl-1.28.2-0

5.3 设置kubelet开机自启

systemctl enable --now kubelet.service

6、初始化(master节点)

kubeadm init --image-repository registry.aliyuncs.com/google_containers --apiserver-advertise-address=192.168.40.129 --kubernetes-version=v1.28.2 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 --upload-certs --cri-socket /var/run/cri-dockerd.sock

注意:其中 --apiserver-advertise-address=192.168.40.129 是根据你自己的master节点定。

 

按照提示创建kubeconfig文件 

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

 7、安装网络插件(master节点)

下载flannel的yml文件并创建,这里flannel.yml文件里镜像拉取地址为外网地址,构建pod时会拉取超时,这里单独下载了镜像上传到了阿里云ACR上,需要修改yml文件里的image地址。

wget https://github.com/flannel-io/flannel/releases/download/v0.24.3/kube-flannel.yml
sed -i '/ image:/s#docker.io/flannel#registry.cn-hangzhou.aliyuncs.com/luoyuxin#' kube-flannel.yml

构建flannel

kubectl create -f kube-flannel.yml
kubectl get pod -n kube-flannel

8、加入集群(各子节点)

可根据提示加入其他node,在node节点上执行下面语句,注意后面加上 --cri-socket /var/run/cri-dockerd.sock 参数

 kubeadm join 192.168.40.129:6443  --cri-socket /var/run/cri-dockerd.sock --token pr06h4.9uqcgg6aoej4uq4k \
         --discovery-token-ca-cert-hash sha256:2b4b622220812a7230b96c600ba595640eee991f47e64c5c11e20e71fe195f6e 

检查子节点是否已加入

kubectl get nodes

这种是命令刚执行,节点加入还在执行中,等30秒钟再看

 kubectl get nodes -o wide

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么更换自己的ip地址?多种方法可实现

在当今的数字化时代&#xff0c;IP地址作为我们在网络世界中的“身份证”&#xff0c;扮演着举足轻重的角色。然而&#xff0c;有时候出于隐私保护、网络安全或是访问特定服务等需求&#xff0c;我们可能需要更换自己的IP地址。那么&#xff0c;如何实现这一目标呢&#xff1f;…

2024年10月2-4日(星期三-星期五)骑行(石林-老圭山)

2024年10月2-4日 (星期六&#xff09;骑行&#xff08;石林-大草坪---长坪---石头寨---海邑镇---老圭山&#xff09;&#xff0c;早8:30到9:00&#xff0c;新螺蛳湾客运站正门&#xff0c;地铁二号线南部客运站站出口集合&#xff0c;9:30装车&#xff0c;10:00出发。偶遇地点:…

网络安全前景大好,转行这些职位成了“香饽饽”

网络安全就业前景 大数据、人工智能、云计算、物联网、5G等新兴技术的高速发展&#xff0c;蒸蒸日上。但是随之也出现了许多问题&#xff0c;比如&#xff1a;政府单位、企业、个人信息泄露&#xff0c;网络安全问题日益严峻&#xff0c;网络空间安全建设刻不容缓。 网络安全…

【unity进阶知识3】封装一个事件管理系统

前言 框架的事件系统主要负责高效的方法调用与数据传递&#xff0c;实现各功能之间的解耦&#xff0c;通常在调用某个实例的方法时&#xff0c;必须先获得这个实例的引用或者新实例化一个对象&#xff0c;低耦合度的框架结构希望程序本身不去关注被调用的方法所依托的实例对象…

亲测好用,吐血整理 ChatGPT 3.5/4.0新手使用手册~

都知道ChatGPT很强大&#xff0c;聊聊天、写论文、搞翻译、写代码、写文案、审合同等等&#xff0c;无所不能~ 那么到底怎么使用呢&#xff1f;其实很简单了&#xff0c;国内AI产品发展也很快&#xff0c;很多都很好用了~ 我一直在用&#xff0c;建议收藏下来~ 有最先进、最…

古代的“契丹人”在今天属于哪个民族

在中国古代&#xff0c;自从我国历史上的夏朝建立以来&#xff0c;一共出现了二十多个朝代。随着朝代的不断更替&#xff0c;社会也在不断前进。如今&#xff0c;封建社会已经成为过去&#xff0c;朝代和政权已不再是同一个概念。例如&#xff0c;在三国时期&#xff0c;魏、蜀…

可视掏耳勺鸡肋吗?高清可视掏耳勺牌子推荐!

很多人习惯在洗漱完顺手拿一根棉签掏耳朵&#xff0c;但是棉签的表面直径大且粗糙&#xff0c;不易将耳朵深处的耳垢挖出&#xff0c;耳垢堆积在耳道深处长时间不清理会导致堵塞耳道&#xff0c;引起耳鸣甚至感染。而可视掏耳勺作为一种新型的挖耳工具&#xff0c;它的安全性也…

羽毛球场馆预约系统,便捷管理预约

全国羽毛球运动的热度不断上升&#xff0c;在健身行业中掀起了一股羽毛球热潮。同时羽毛球运动的风靡&#xff0c;也吸引了不少人入局&#xff0c;各种大大小小的羽毛球馆不断出现&#xff0c;为大众的羽毛球喜好提供了场地。 随着互联网的发展&#xff0c;羽毛球馆也开始向线…

程序员转型攻略:数据分析师、AI大模型工程师、产品经理、云计算工程师,哪个更适合你?

先给结论再说理由&#xff1a;数据分析师、AI大模型工程师、产品经理和云计算工程师。 这些领域不仅因应了当前技术发展的趋势&#xff0c;也为程序员提供了转型的广阔舞台和职业发展的新机遇。 一起来看看吧&#xff01; 数据分析师&#xff1a;数据驱动决策的关键 程序员…

开源大模型技术路线及趋势

1. 三个维度 大模型研发力量 学术机构 大模型创业公司 科技大厂 旗舰开源模型的形态/模态 基础大模型 -> instruct大模型 -> 多模态&#xff08;VL大模型 -> 类gpt-4o大模型&#xff09; 时间线 23年上半年 23年下半年 24年 25年 2. 核心观察 学术机构及…

帮助中心:如何搭建有效解决客户问题的内容

在竞争激烈的市场环境中&#xff0c;优质的客户服务是企业脱颖而出的关键之一。而搭建一个高效、全面的帮助中心&#xff0c;提供有效解决客户问题的内容&#xff0c;则是提升客户满意度和忠诚度的重要途径。本文将探讨如何搭建这样一个帮助中心&#xff0c;以确保客户在遇到问…

机器学习_神经网络_深度学习

【神经网络——最易懂最清晰的一篇文章 - CSDN App】https://blog.csdn.net/illikang/article/details/82019945?type=blog&rId=82019945&refer=APP&source=weixin_45387165 参考以上资料,可对神经网络有初步了解。接下来可参考书籍等投身实际项目中使用。 书…

7大网络安全机构真实测评:零基础转行网安这么选就对了~

最近有不少零基础的朋友想学网络安全&#xff0c;但网络一搜索&#xff0c;各大品牌的课程都跳出来&#xff0c;让人看得眼花缭乱&#xff0c;真不知道怎么选。 今天就比较几家主流的7大网络安全机构课程&#xff0c;综合对了对比测评。不知道怎么选的朋友们&#xff0c;千万别…

稳定日入100,分享一个适合练手的AI绘画副业赛道

现在的AI玩法真的太多了&#xff0c;以前搞副业的人坚定的贯彻了把AI当作工具的思想&#xff0c;开发出各种各样有意思的AI副业玩法。 比如最近这种用AI做的女生的漫画Vlog视频就特别的火 更多实操教程和AI绘画工具,可以扫描下方,免费获取 1.爆款分析 这类账号为什么比较容易…

为什么现在很多人对网络空间安全专业持劝退态度?

知乎上有网友提问&#xff1a; 为什么现在很多人对网络空间安全专业持劝退态度&#xff1f; 来自某中部985网安大三本科的自述&#xff1a; 当初报志愿的时候第一志愿计科&#xff0c;第二志愿网安&#xff0c;结果就录到网安了。 但其实这两年感受下来&#xff0c;网安和计科…

GESP等级考试C++二级-do...while语句

与《GESP等级考试C二级-while语句》中提到的while语句类似&#xff0c;do...while语句也是用于循环执行某些语句。 1 do...while语句的格式 do...while语句的格式如图1所示。 图1 do...while语句的格式 该语句首先执行do中的“若干操作”&#xff0c;之后判断while语句中的“…

nginx+keepalived健康检查案例详解(解决nginx出现故障却不能快速切换到备份服务器的问题)

文章目录 简介配置过程前置环境请看创建健康检查脚本结果测试 简介 在我们通过nginxkeepalived实现高可用后&#xff0c;会发现nginx出现故障的时候keepalived并不会将虚拟ip切换到备份服务器上其原理就是nginx和keepalived是两个独立的服务&#xff0c;Nginx的故障状态不会触…

中国留学人员联谊会东南亚和南亚分会新会员入会仪式暨座谈会举行

中国留学人员联谊会东南亚和南亚分会新会员入会颁证仪式 暨学习贯彻党的二十届三中全会精神座谈会在京举行 2024月9月22日下午&#xff0c;欧美同学会&#xff08;中国留学人员联谊会&#xff09;东南亚和南亚分会新会员入会颁证仪式暨留学人员学习贯彻党的二十届三中全会精神…

AI做毛绒萌宠,1个爆款猛涨1.5万粉(内附教程)

用AI做自媒体博主&#xff0c;涨粉真是轻而易举呀~ 通过AI萌宠视频快速吸引粉丝&#xff0c;今天给大家深入解析一个成功案例——通过可爱萌宠视频&#xff0c;迅速积累3.2W粉丝&#xff0c;获赞与收藏14.1万&#xff0c;单条视频最高点赞更是高达4.7万&#xff0c;基本每条视…

吐血整理 ChatGPT 3.5/4.0 新手使用手册~ 【亲测好用】

以前我也是通过官网使用&#xff0c;但是经常被封号&#xff0c;就非常不方便&#xff0c;后来有朋友推荐国内工具&#xff0c;用了一阵之后&#xff0c;发现&#xff1a;稳定方便&#xff0c;用着也挺好的。 最新的 GPT-4o、4o mini&#xff0c;可搭配使用~ 1、 最新模型科普&…