ubuntu22安装k8s-1.24.17

Ubuntu22.04部署K8s集群 K8s集群 —— Win11 + VM Ware17.0 + Ubuntu 22.04 + K8s 1.27 + docker 24.0 + cri-docker 0.3.4.3 + flannel 阅读详情
AI摘要

本文介绍在Ubuntu 22上安装Kubernetes 1.24.17集群的完整步骤,重点涵盖Docker与Containerd环境配置、Master节点初始化、Flannel网络插件部署及Pod管理。由于K8s 1.24已弃用Dockershim,推荐直接使用Containerd作为容器运行时。

安装k8s集群

1 IP地址分配

⚠️ 注意:此处的集群环境

序号IP地址主机名称节点备注
1192.168.2.160mastermaster管理节点
2192.168.2.161node1worker工作节点、可升级为管理节点
3192.168.2.162node2worker工作节点、可升级为管理节点
4192.168.2.163node3worker数据节点、可升级为管理节点

⚠️ 注意:docker版本:20.10.24,为了兼容k8s版本,此版本自带docker compose

2 安装docker

2.1 配置基础环境

# (1)更新安装包
sudo apt update
 
# (2)配置内存
# 临时关闭虚拟内存
sudo swapoff -a
 
# 永久关闭虚拟内存
sudo vim /etc/fstab
# 注释掉下面一行即可
# /swap.img                                 none            swap    sw              0       0
 
# (3)关闭防火墙
# 查看防火墙状态
systemctl status ufw
# 关闭防火墙
systemctl stop ufw
# 禁用防火墙
sudo ufw disable

# (4)下面是开通root账号
# 设置root用户密码,密码是:123456
sudo passwd root

# 启用root用户
sudo passwd -u root

# (5) 配置SSH
# 启用root用户
sudo passwd -u root

# 更改配置文件
sudo vim /etc/ssh/sshd_config

# 将sshd_config的33行,允许以root身份登录,修改如下
PermitRootLogin yes

# 重启ssh服务
sudo service ssh restart

2.2 安装docker

# 更新安装包
sudo apt update

# 添加Docker官方GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
 
# 添加docker源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

# 查看docker稳定版列表,可省略
apt-cache madison docker-ce

# 安装docker,可以不指定版本号,默认安装最新版本
sudo apt-get install docker-ce=5:20.10.24~3-0~ubuntu-jammy docker-ce-cli=5:20.10.24~3-0~ubuntu-jammy

# 设置开机启动
systemctl enable docker

安装docker-compose

#  注意docker和docker-cmopose有版本对应关系
# 我用的是v2.12.2
https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64

# 下载完成后,安装到系统中
# 将文件docker-compose-Linux-x86_64移动到/usr/local/bin/目录下,并重命名为docker-compose
sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

# 设置执行权限
sudo chmod +x /usr/local/bin/docker-compose

阿里云镜像加速

# 创建目录
sudo mkdir -p /etc/docker

# 创建文件
sudo touch daemon.json

# 编辑文件
sudo vim daemon.json

# 向文件中添加内容
{
  "registry-mirrors": ["https://wh5ewvnk.mirror.aliyuncs.com"]
}


# 生效配置
sudo systemctl daemon-reload

# 重启docker
sudo systemctl restart docker

其他镜像加速(阿里云加速太慢了,可以使用下面的代理)
创建或修改 /etc/docker/daemon.json:

# 创建目录
sudo mkdir -p /etc/docker

# 添加配置
sudo tee /etc/docker/daemon.json <<EOF
{
    "registry-mirrors": [
        "https://docker.m.ixdev.cn",
        "https://docker.1ms.run"
    ]
}
EOF

# 重新加载参数和重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

3 安装k8s

⚠️ k8s版本选择:1.24.17-00

⚠️ 选择高版本,Kubernetes 1.24 版本前,k8s使用Dockershim组件实现K8s与Docker运行时( Docker Runtime Interface ,DRI)通信。随着 Dockershim 的弃用,Kubernetes推荐使用Containerd容器运行时,不使用Docker上层,直接管理容器的生命周期底层功能,包括容器的创建、启动、停止和删除等。

3.1 安装基础环境(全部节点)

# 配置安装环境
sudo apt-get update && sudo apt-get install -y apt-transport-https
 
# 添加安装密钥
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
 
# 添加k8s镜像源
# 进入/etc/apt/sources.list.d目录下
cd /etc/apt/sources.list.d

# 创建kubernetes.list文件
sudo touch kubernetes.list

# 编辑kubernetes.list
sudo vim kubernetes.list

# 在kubernetes.list文件中添加地址如下
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
 
# 更新安装包
sudo apt-get update

3.2 安装containerd(全部节点)

安装基础

# 安装依赖
sudo apt-get install -y apt-transport-https ca-certificates curl

# 安装containerd
sudo apt-get -y install containerd
sudo systemctl enable containerd
sudo systemctl start containerd

# 查看状态
systemctl status containerd

创建配置

# 创建目录和配置文件,默认存在,可以不执行
sudo mkdir /etc/containerd
sudo touch /etc/containerd/config.toml

# 生成配置文件
sudo containerd config default > config.toml

# 将文件复制到/etc/containerd,覆盖原有config.toml的文件
sudo mv config.toml /etc/containerd/

# 修改配置config.toml,内容参见下文
sudo vim /etc/containerd/config.toml

# 重启containerd
sudo systemctl restart containerd

配置的内容

# 1 修改SystemdCgroup参数为true,默认为false,在文件的137行
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
	……
	# 修改的参数
	SystemdCgroup = true


# 2 修改sandbox_image参数,值一定要与下文“kubeadm config images list --kubernetes-version=v1.24.17 --image-repository=registry.aliyuncs.com/google_containers”命令输出的pause版本和tag保持一致,否则Node节点的Pod一直 CrashLoopBackOff,并且查询 kubectl logs 时也没有任何错误,此处我的版本为阿里云3.7

# 默认参数
# sandbox_image = "registry.k8s.io/pause:3.8"
# 修改的参数
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.7"

3.3 安装k8s(全部节点)

安装基础依赖

# 查看k8s版本号
apt-cache madison kubelet

# 安装k8s
sudo apt-get install kubelet=1.24.17-00 kubeadm=1.24.17-00 kubectl=1.24.17-00
 
# 设置开机启动
systemctl enable kubelet
 
# 查看k8s版本
kubectl version --short
 
# 查看kubelet状态
# Active: active (running)是启动状态
systemctl status kubelet
 
# 停止kubelet
systemctl stop kubelet
 
# 启动kubelet
systemctl start kubelet

配置容器的endpoint

# 使运行时生效
sudo crictl config runtime-endpoint unix:///run/containerd/containerd.sock
sudo crictl config image-endpoint unix:///run/containerd/containerd.sock
# 重启服务
sudo systemctl restart containerd

3.4 初始化master节点

查看镜像列表

# 查看需要的镜像
kubeadm config images list --kubernetes-version=v1.24.17 --image-repository=registry.aliyuncs.com/google_containers

初始化master节点

⚠️ 注意IP地址变化

# 注意,如果用虚拟机,内核数量必须要2个及以上。
# --image-repository				镜像加速,指定初始化下载的镜像。
# --apiserver-advertise-address		直接使用当前master主机地址
# --kubernetes-version				k8s版本,可以不指定,缺省情况会用最新的
# --service-cidr					service网络地址(建议使用10.96.0.0/12,也可以不设置),不可与主机,pod网络地址重复
# --pod-network-cidr 				pod网络地址(建议使用10.244.0.0/16),不可与主机,service网络地址重复,与后面的flannel相关
# --v								日志等级,5级以上会打印更详细的日志,--v=6开启详细日志打印
 
sudo kubeadm init \
--image-repository=registry.aliyuncs.com/google_containers \
--apiserver-advertise-address=192.168.2.160 \
--kubernetes-version=v1.24.17 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--v=6

初始化成功

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.2.160:6443 --token s5gumt.fsd9clxhin5odbhn \
        --discovery-token-ca-cert-hash sha256:0de06dce3e0792c8025a05bccef5f52b8dea3768f8eecf21dc483edfc4e67788

配置master节点

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

配置node节点

# 将节点添加到集群中
sudo kubeadm join 192.168.108.160:6443 --token s5gumt.fsd9clxhin5odbhn \
        --discovery-token-ca-cert-hash sha256:0de06dce3e0792c8025a05bccef5f52b8dea3768f8eecf21dc483edfc4e67788 

管理token

# 查看token
kubeadm token list
 
# 创建token
kubeadm token create
 
# 查看discovery-token-ca-cert-hash
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

3.5 安装flannel(master节点)

⚠️ 注意:在安装flannel前“kube-system coredns”是“Pending”状态。

在线安装很难成功,根据需要使用别的办法。

# 下载配置文件,可以用最新版本
wget https://github.com/flannel-io/flannel/releases/download/v0.25.5/kube-flannel.yml

# 查看flannel中的镜像
cat kube-flannel.yml |grep image|uniq

# 安装flannel
kubectl apply -f kube-flannel.yml

3.6 管理节点

# 设置节点角色
kubectl label node node1 kubernetes.io/role=worker
kubectl label node node2 kubernetes.io/role=worker
kubectl label node node3 kubernetes.io/role=worker

# 在master节点上查看集群结点
kubectl get nodes

# 删除节点
# 删除节点后,需要在相应的子节点
sudo kubectl delete nodes node1
 
# 重置主机点,慎重操作!!
# 手动删除配置文件
sudo rm -rf  /etc/kubernetes/pki/ca.crt
sudo rm -rf  /etc/kubernetes/kubelet.conf
sudo rm -rf  $HOME/.kube
 
# 重置子节点
sudo kubeadm reset
# 重新加载配置文件
systemctl daemon-reload
 
# 重置子节点,使用以下命令即可
sudo kubeadm reset

3.7 简单管理pod

# 查看Pod
# -A: 显示所有Pod
kubectl get pod
# 查看全部空间下的pod
kubectl get pod --all-namespaces -o wide
 
# 查看Pod的更多概要信息
# -o json: 表示以json方式查看Pod详细信息
# -o yaml: 表示以yaml方式查看Pod详细信息
kubectl get pod -o wide

4 问题

⚠️ 生产环境操作,一定要慎重!!!

# 查看最后100行日志
journalctl -u kubelet.service -n 100

问题1:err="unable to load client CA file /etc/kubernetes/pki/ca.crt: open /etc/kubernetes/pki/ca.crt: no such file or directory"
# 进入目录
cd /etc/kubernetes/pki/
# 生成ca.crt
openssl req -x509 -new -nodes -key ca.key -subj "/CN=ca" -days 10000 -out ca.crt

问题2:err="failed to run Kubelet: unable to load bootstrap kubeconfig: stat /etc/kubernetes/bootstrap-kubelet.conf: no such file or directory"
更新证书时会出现问题2,例如:下面命令也会出现问题2
# # 更新证书
# 不用执行下面命令
# kubeadm certs renew all

# 解决方法
# 创建备份目录
mkdir -p /home/backup/{kubernetes,kubernetes/pki}

# 备份pki数据
cd /etc/kubernetes/pki
mv {apiserver.crt,apiserver.key,apiserver-etcd-client.crt,apiserver-etcd-client.key,apiserver-kubelet-client.crt,apiserver-kubelet-client.key,front-proxy-ca.crt,front-proxy-ca.key,front-proxy-client.crt,front-proxy-client.key} /home/backup/kubernetes/
# 重新初始化
kubeadm init phase certs all

# 备份config
cd /etc/kubernetes/
mv {admin.conf,controller-manager.conf,scheduler.conf} /home/backup/kubernetes/
# 重新初始化
kubeadm init phase kubeconfig all

# 复制admin.conf到用户目录下
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

# 注意:如果问题解决,需要重新删除和添加节点

ubuntu22.04安装kubernetes1.26 k8s1.26 (使用containerd) 本篇来讲解如何在ubuntu20.4下使用kubeadm安装部署k8s 1.26集群,并使用containerd。 阅读详情

相关推荐

国内环境下ubuntu22.04+kubeadm搭建v1.27.2多节点k8s集群

ubuntu 22.04 上使用最新版本的kubeadm 搭建最新版本v1.27.2的k8s集群环境。

6968

Ubuntu22 k8s 1.27.1 安装及集群搭建教学(2023.5.16 k8s 最新版本教学,只看这一篇就够了哦!保姆级教程!不行你来找我!)

温馨提示请仔细阅读:❤️❤️❤️❤️❤️❤️❤️❤️此教程为k8s当前官方最新版1.27.1集群搭建教程,一切基于k8s官方文档进行搭建,若遇到教程以外问题请仔细参考官方文档,全网资料少,此教程亲测可用!

缘昔的博客 5601

基于Ubuntu24.04部署Kubernetes1.31

Kubernetes 也称为 K8s,是一种用于自动部署、扩展和管理容器化应用程序的开源系统。生产级 Kubernetes 集群需要规划和准备。如果您的 Kubernetes 集群要运行关键工作负载,则必须将其配置为具有弹性。Master Node:负责处理 Kubernetes 集群的 pod、复制控制器、服务、节点和其他组件的控制 API 调用。Worker Node:为容器提供运行时环境。一组容器 pod 可以跨越多个节点。在您的主节点/工作节点中。

点九先生 2142

Ubuntu22安装K8S实战

现在k8s基本上是每一个后端开发人员必学的技术了,为了能够花费最小的成本学习k8s技术,我用自己的电脑跑了三个虚拟机节点,并希望在这三个节点上安装k8s 1.26版本,部署成一个master两个node的架构来满足最基本的学习;下面我们就来逐步讲解整个安装过程。

codemaster1024的博客 2454

Ubuntu 22.04.5 + kubeadm:Kubernetes v1.28.2集群部署企业实战

本文详细介绍了使用Ubuntu 22.04和kubeadm部署Kubernetes v1.28.2集群的完整流程,包括环境准备、容器运行时安装、K8S集群部署、网络插件配置等关键步骤,是企业实战中的宝贵指南。

超哥的博客 1752

Ubuntu K8S完全安装指南2025最新版!(小白也能学会,超详细)

k8s安装比较不易,本文适用于Ubuntu22.04~Ubuntu24.04版本,本文使用Ubuntu24.04演示。其它版本可以作为参考使用

yeyanxin24的博客 2884

【Kubernetes k8s】(两万字超详细)Ubuntu-22.04搭建 k8s-1.30.1集群,开启Dashboard-2.7.0、部署ingress-nginx-1.10.1

k8s集群的搭建

m0_53928179的博客 2万+

ubuntu20.4 安装 kubeadm k8s 1.22

ubuntu20.4 安装 kubeadm k8s 1.22

weixin_39873598的博客 1953

k8s学习笔记1-搭建k8s环境(k8s版本1.24.3,ubuntu版本22.04)

k8s的版本在1.24版本开始,Kubernetes正式移除对Dockershim的支持,Kubernetes1.24之后,如还想继续在k8s中使用docker,需要自行安装cri-dockerd组件或者containerd组件,下面的步骤,经过反复测试很多次,步骤应该很稳。之前我写的一篇关于k8s安装的博客,那个主要是针对k8s版本为1.23.6的,对于1.24及其以上的版本,那个安装博客,不适用。...

weixin_43501172的博客 5895

Kubernetes源码编译安装实战:Ubuntu 24.04下k8s编译安装最佳实践

Kubernetes源码编译是深入理解容器编排系统底层机制的核心路径,其本质是掌握Go语言构建体系、cgroup v2运行时约束与组件级定制能力的技术过程。原理上需打通从git checkout、CGO交叉编译、Bazel/Make构建到二进制签名验证的全链路;技术价值在于实现可控部署(如FIPS合规)、可溯调试(精准定位PR变更)与可嵌入扩展(自定义API端点);典型应用场景覆盖信创国产化适配(鲲鹏/飞腾平台)、金融级等保加固及CKS认证深度备考。本文聚焦Ubuntu 24.04这一关键发行版,直面cgr

weixin_34203832的博客 403

《Kubernetes部署篇:Ubuntu20.04基于外部etcd+部署kubernetes1.24.17集群(多主多从)》

《Kubernetes部署篇:Ubuntu20.04基于外部etcd+部署kubernetes1.24.16集群(多主多从)》

东城绝神 1412

【复刻版】ubuntu22.04安装kubernetes1.25 k8s1.25

仅供参考学习

csdn_tom_168的博客 1734

在Ubuntu 24.04 LTS (Noble Numbat)上搭建Kubernetes1.30集群

准备工作 系统准备 主机和IP地址准备 ​编辑安装步骤 安装前准备 关闭防火墙 设置服务器时区 关闭 swap 分区 关闭SELinux 配置hosts配置文件 转发 IPv4 并让 iptables 看到桥接流量 每台机器设置hostname 安装容器运行时 安装Kubernetes 配置并安装apt包 初始化集群 ​编辑验证kubernetes是否安装成功 安装calico网络插件 部署应用

拥抱具身智能,昇腾Ascend C 2979

ubuntu24.04安装k8s1.33.1和containerd1.7.27和calico3.30

从github上复制containerd下载链接 https://github.com/containerd/containerd/releases/tag/v1.7.27。官网下载https://docs.tigera.io/calico/latest/getting-started/kubernetes/quickstart。–image-repository registry.aliyuncs.com/google_containers 使用国内镜像不然国外镜像拉不下来。配置内核转发及网桥过滤。

qq_41638904的博客 2703

Windows安装ros2(Jazzy版本+win10/win11)-1.配置windows终端

更高版本的terminal可能设置里更加丰富, 有默认以管理员身份启动的选项等,可自行配置。打开微软应用商店, 在其中搜索并下载 Terminal 即可(注意别挂梯子)下载并安装, 安装的位置自行替换,建议别放到系统盘中。点击任务栏中的搜索, 输入store。

weixin_48398592的博客 1454

3dMax效率翻倍!用Octopus章鱼插件打造你的专属快捷菜单(附MaxScript入门指南)

本文详细介绍了如何利用Octopus插件和MaxScript脚本在3dMax中打造高效快捷菜单,显著提升三维建模与动画制作的工作效率。通过饼状菜单系统、自动化宏录制和脚本控制,用户可实现个性化工作流,节省大量操作时间。文章还提供了MaxScript入门指南,帮助开发者快速掌握这一强大工具。

weixin_30920853的博客 152

v1.24.17-ubuntu-binary-instal

kubernetes二进制安装1.24.17,以containerd作为node节点的runtime本文档以1.24.17为例。

qq_52280271的博客 1679

零基础使用Manim画傅里叶变换

0x01 准备工作 确保你的电脑中安装的有:Python(3.6以上版本,推荐3.8)、FFmpeg(在PATH环境变量中)、LaTex发行版,如果这些都有了,就可以跳过这步。 下面是安装指南: Python:Win10用户直接在微软商店搜索Python3.8安装,也可以自行百度安装方法,在开始菜单右键打开PowerShell,或者Win+R输入PowerShell打开,输入Pyhton --version,显示3.8以上。 FFmpeg:可以直接百度下载,或者用我打包好的(下载链接)。下载好后,将ff

TagBug的博客 3191

Ubuntu 22.04 部署 Kubernetes v1.30

Ubuntu 22.04 部署 Kubernetes v1.30

田记赛码的博客 1820

Android Camera性能优化概述

做camera性能优化方面的工作有几年了,想写一篇文章简单介绍一下其中涉及到的具体技术,这篇文章会大概介绍一下涉及到的技术。

weixin_42136255的博客 4023

【转载】参数估计(Parameter Estimation):频率学派(最大似然估计MLE、最大后验估计MAP)与贝叶斯学派(贝叶斯估计BPE)

基础 频率学派与贝叶斯学派 http://www.douban.com/group/topic/16719644/ http://www.zhihu.com/question/20587681 最大似然估计(Maximum likelihood estimation,MLE) http://baike.baidu.com/view/1918804.htm http://baike.baidu.co

影 的专栏 3413

Ubuntu 22.04 LTS 部署 K8S 1.28.15 集群

本文将详细介绍如何在 Ubuntu 22.04 LTS 上部署 Kubernetes 1.28.15 集群。我们将使用 kubeadm 工具来初始化集群,并配置一个 Master 节点和两个 Worker 节点。此外,我们还将安装 Calico 作为 CNI 插件,并部署一个简单的 Nginx 应用来测试集群的功能。

欢迎来到我的博客! 2666

基于LangGraph的智能报告生成平台项目分析

不知道你是否知道或者了解OpenAI and Gemini Deep Research。他们是一种能够根据输入问题进行规划、结合网络搜索获取信息并最终呈现结果的研究工具或技术。那这样research是如何实现的呢?最近刚好看到一个实现类似功能的开源项目: open_deep_search。本文将基于该项目进行代码层面剖析。

u011160113的博客 923
上一篇: 不错的开源大模型
下一篇: k8s安装ingress-nginx
MasonYyp
博客等级 码龄9年 301粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值