Ubuntu上安装部署k8s集群_ubuntu /etc/sysconfig/kubelet-程序员宅基地

技术标签: kubernetes  ubuntu  Cloud Native  docker  


  此处非常感谢 江城琉璃梦同学对我的帮助。

一、基础环境准备

(一)环境说明

ubutun 20.04 TLS
kubernetes: v1.25.0

  • kubectl v1.25.0
  • kubeadm v1.25.0
  • kubelet v1.25.0
    Docker:20.10.21

1.主机说明

#master
master-100 192.168.16.100

#worker
worker-200 192.168.16.200

(二)环境操作

Tips:所有主机都需要进行以下操作

1. 设置Master与工作节点的机器名称及配置

#IP地址和主机名称修改

hostname $hostname
sudo hostnamectl set-hostname master-100

2. 解析主机

sudo gedit /etc/hosts

3. 写入以下内容(注意IP地址和主机名换成自己的):

192.168.16.100 master-100
192.168.16.200 node-200

4. 虚拟内存swap分区关闭

sudo swapoff -a && sudo sed -i 's/^\/swap.img\(.*\)$/#\/swap.img \1/g' /etc/fstab && free

在这里插入图片描述

5. 开启防火墙的端口

很多教程是直接关闭防火墙,事实上,关闭防火墙会在kubeadm过程中出现超时现象。

sudo ufw enable
sudo ufw allow 6443
sudo ufw status

重启主机。。。重启后注意查看swap是否关闭。。。

6. 开启IPv4转发

sudo cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

modprobe overlay
modprobe br_netfilter

sudo cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

sudo sysctl --system

7. 设置时间同步

sudo apt install -y chrony
sudo systemctl restart chrony
sudo systemctl status chrony
chronyc sources

8. 在各个主机中安装 docker软件

(1)卸载旧版本

sudo apt-get remove docker docker-engine docker.io containerd runc

(2)更新apt包索引并安装包以允许apt在HTTPS上使用存储库

sudo apt-get install -y \
  apt-transport-https \
  ca-certificates \
curl \
  gnupg-agent \
  software-properties-common

(3)添加Docker官方GPG密钥 # -fsSL

curl https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

(4)设置稳定存储库

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
  stable"

(5)安装特定版本的Docker引擎,请在repo中列出可用的版本

apt-cache madison docker-ce
 docker-ce | 5:20.10.21~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.20~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.19~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.18~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.17~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.16~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.15~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.14~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.13~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.12~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.11~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.10~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.9~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.8~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.7~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.6~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.5~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.4~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.3~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.2~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.1~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.0~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.15~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.14~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.13~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.12~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.11~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.10~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.9~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages

然后

sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io

(6)修改docker启动项

mkdir -vp /etc/docker/
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://reg-mirror.qiniu.com",
"https://registry.docker-cn.com"
],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

(7)保存退出,更新设置

sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker

(8)查看docker版本和状态

sudo docker version
sudo systemctl status docker

在这里插入图片描述

9. 安装 cri-dockerd 组件

一般来说下载最新的就行:
进入以下网址(https://github.com/Mirantis/cri-dockerd/releases),下载cri组件(版本看自己选择),这里选择0.26。
找到想要的版本,点进去,找到对印的安装包下载,Ubuntu应该下载deb包,CentOS是rpm包。
在这里插入图片描述同时,还要注意版本代号,Ubuntu18.04代号是Bionic,22.04.1是jammy。
注意包名!! 一般输入到cri三个字母以后使用TAB键补全即可。

sudo dpkg -i cri-dockerd_0.2.6.3-0.ubuntu-jammy_amd64.deb 

(1)调整启动参数,注意此处,后续报错可能会回来改

sudo sed -i -e 's#ExecStart=.*#ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7#g' /lib/systemd/system/cri-docker.service

(2)设置开机自启动

sudo systemctl daemon-reload
sudo systemctl enable cri-docker

(3)查看cri-docker状态

sudo systemctl status cri-docker

10. 安装Kubernetes

(1)安装依赖

sudo apt-get install -y apt-transport-https ca-certificates curl

(2)安装GPG密匙

sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg  https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg

sudo echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] http://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

(3)更新软件源

sudo apt-get update

(4)查看Kubernetes可用版本

apt-cache madison kubeadm

注意:如果Ubuntu使用不同的软件源,对软件版本的命名会有所不同,aliyun的源在结尾会有 -00下载对应版本的kubernetes组件,这里下载1.25.0-00, 有需要可以更换其他版本

sudo apt-get install -y kubelet=1.25.0-00 kubeadm=1.25.0-00 kubectl=1.25.0-00

(5)标记软件包,防止自动更新

sudo apt-mark hold kubelet kubeadm kubectl

(6)配置kubelet

mkdir /etc/sysconfig
sudo gedit /etc/sysconfig/kubelet

复制以下内容,保存退出

KUBELET_KUBEADM_ARGS="--container-runtime=remote --container-runtime-endpoint=/run/cri-dockerd.sock

(7)启动kubelet

systemctl enable --now kubelet 

以上内容是所有节点都要执行的,下面的操作步骤会分master节点和Node节点

二、单实例K8s集群部署

(一)Master节点初始化

1. 查看初始化需要的镜像

sudo kubeadm config images list --image-repository registry.aliyuncs.com/google_containers

2. 拉取镜像

sudo kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers --cri-socket unix:///run/cri-dockerd.sock

3. 初始化节点

注意这里的ip地址要换成你的master节点的ip地址,k8s的版本也要换成你下载的版本(此处不要加-00,尽管你下载的包名带-00)。切换到root模式再执行:

sudo su
sudo kubeadm init --control-plane-endpoint=192.168.16.100 --kubernetes-version=v1.25.0 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --token-ttl=0 --cri-socket unix:///run/cri-dockerd.sock --upload-certs --image-repository registry.aliyuncs.com/google_containers

此时出现如下界面就配置好了:
在这里插入图片描述
记住kubeadm join那条指令,后续用于node节点加入集群。

4. 配置环境变量

还是在su环境下:

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

5. 切换普通模式

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

(二)安装网络插件flannel

wget https://github.com/flannel-io/flannel/releases/download/v0.20.1/flanneld-amd64
sudo mkdir /opt/bin
sudo cp flanneld-amd64 /opt/bin/flanneld
sudo chmod +x /opt/bin/flanneld

继续执行:

sudo kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

等待一会,查看状态(root模式执行)结果应该会变成ready

kubectl get nodes

(三)Node节点,加入集群

wget https://github.com/flannel-io/flannel/releases/download/v0.20.1/flanneld-amd64
mkdir /opt/bin
cp flanneld-amd64 /opt/bin/flanneld
chmod +x /opt/bin/flanneld

加入节点,利用刚才保存的命令:(末尾加上–cri-socket unix:///run/cri-dockerd.sock)

kubeadm join 192.168.16.100:6443 --token hkzgsi.omynmdnk9vy0wkxt \
	--discovery-token-ca-cert-hash sha256:aee605c8ac29e7b8ea678020ca410833715a8d01a262f506b6dc6a53fb24be5d \
	--cri-socket unix:///run/cri-dockerd.sock

kubeadm join 192.168.16.100:6443 --token hkzgsi.omynmdnk9vy0wkxt \
	--discovery-token-ca-cert-hash sha256:aee605c8ac29e7b8ea678020ca410833715a8d01a262f506b6dc6a53fb24be5d \
	--control-plane --certificate-key e5d40240c1d77691602358bfface8dc44dd98fe2c8d75c513f484c4ceafd7584

不出问题的话,主节点在root下执行

kubectl get nodes
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41422448/article/details/127801206

智能推荐

php将浮点型转换成整型,php怎样将浮点数转为整数-程序员宅基地

文章浏览阅读183次。php将浮点数转为整数的方法:可以利用php内置函数intval()来实现。intval()函数用于获取变量的整数值,成功时返回interger值,失败时返回0。intval()函数不能用于object。php中的内置函数intval()用于获取变量的整数值。成功时返回var的integer值,失败时返回0。空的array返回0,非空的array返回1。(推荐教程:php视频教程)intval()..._php 浮点型改成整形

九九乘法表(python)_99乘法表循环编辑-程序员宅基地

文章浏览阅读418次。使用while循环写九九乘法表。使用for循环写九九乘法表。_99乘法表循环编辑

浅谈对Spring的理解_介绍下你对spring的理解-程序员宅基地

文章浏览阅读624次。Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring是一个十分庞大的体系,具体可以访问它的官网https://spring.io/projects进行详细了解。Spring体系里的常用到的项目:1.SpringFramework2.SpringData3.SpringSecurity4.SpringBoot5.SpringCloud..._介绍下你对spring的理解

mysql5.7 geometry算法_MySQL-程序员宅基地

文章浏览阅读290次。19.2.1.Geometry类的层次几何类定义了下述层次:·Geometry(非实例化)oPoint(可实例化的)oCurve(非实例化)§LineString(可实例化的)·Line·LinearRingoSurface(非实例化)§Polygon(可实例化的)oGeometryCollection(可实例化的)§MultiPoint(可实例化的)§MultiCurve(非实例化)·Mult..._mysql5.7中定义geometry字段时指定srid参考系

SLAM前端 ---------特征提取之ORB(ORB与SIFT与SURF)_orb 轮廓定位-程序员宅基地

文章浏览阅读3.6k次,点赞3次,收藏11次。1.ORB特征简介ORB是Oriented FAST and Rotated BRIEF(oFAST and rBRIEF)的简称,ORB的名字已经说明了其来源,其实ORB特征是采用FAST方法来检测提取特征,但FAST特征本身是不具有方向性的,所以在ORB特征中添加对特征方向的计算;另外,ORB采用BRIEF方法计算特征描述子,BRIEF的优点在于速度,但是缺点也很明显:不具备旋转不变性,对噪..._orb 轮廓定位

Mysql断流_彻底解决ROS网页断流问题-程序员宅基地

文章浏览阅读210次。首先,检查你的ROS,确定他本身没有任何问题。然后,打开你的WINBOX登陆进去,打开防火墙规则,IP-FIREWALL-CONNECTIONS-TRACKING好了。打开TRACKING后,将里面的时间设置稍微大点。具体多大,没有确切数字,不过一定要大。最少也得30秒以上。你按照里面的默认,成倍数增加,慢慢试。下面是我自己的设置。已经没有问题了,具体什么原因,慢慢去体会。这个设置不是固定的。因为..._ros wan口断流

随便推点

Linux文件传输(项目)_linux文件传输开源项目-程序员宅基地

文章浏览阅读1.9k次。在两台计算机之间(客户机与服务器),能进行文件的传递,客户端连接到服务器之后,要能完成三件事客户端要能查看服务器下的某个文件,删除文件,新建文件 客户端下载文件到本地 上传文件到服务器这些事不是客户端完成的,而是客户端给服务器发送命令,服务器收到命令后自己进行相应的操作..._linux文件传输开源项目

Neo4j图数据库:Not all return nodes are being displayed due to Initial Node Display setting. Only 300...-程序员宅基地

文章浏览阅读1.6k次。问题Not all return nodes are being displayed due to Initial Node Display setting. Only 300 of 300 nodes are being displayed解决办法在设置里修改一下Graph Visualization就可以啦_not all return nodes are being displayed due to initial node display setting

从关系数据库中选择非重复值_navicat16怎么设置字段值不能重复-程序员宅基地

文章浏览阅读507次。在这篇文章中,我们学习了如何使用 SQL DISTINCT 子句,它从 SELECT 语句的结果集中删除重复项,只留下唯一值。正如我们所见,它可以处理一个或多个列以及 NULL 值。但是,如果你需要在一个或多个列上应用聚合函数,就应该改用 GROUP BY 子句。_navicat16怎么设置字段值不能重复

python使用imblearn进行采样时报错No module named sklearn.neighbors._base_no module named 'sklearn.neighbors.base-程序员宅基地

文章浏览阅读3.7k次。“No module named 'sklearn.neighbors._base”。这个问题很坑,查了好久都没有发现解决方法,最后终于找到了。其实就是需要将环境重启一下就可以了。_no module named 'sklearn.neighbors.base

APDU SW应答码处理,错误应答码解释_apdu sw 6108-程序员宅基地

文章浏览阅读3k次。摘自: 中国金融集成电路(IC)卡规范第 1 部分:电子钱包电子存折 应用卡片规范 表 A.1 指令状态字列表1SW1SW2_apdu sw 6108

CentOS-消除未被及时释放的TIME_WAIT状态的TCP连接_centos连接不释放-程序员宅基地

文章浏览阅读6.8k次。CentOS_消除未被及时释放的TIME_WAIT状态的TCP连接如发现系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决,vim /etc/sysctl.conf编辑文件,加入以下内容:net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_fin_..._centos连接不释放

推荐文章

热门文章

相关标签