使用kubeadm部署k8s1.24.0版本,遇到的坑总结

在OpenEuler(欧拉)系统上用kubeadm部署(k8s)Kubernetes集群 一、OpenEuler(欧拉) 系统简介openEuler 是开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目;openEuler作为一个操作系统发行版平台,每两年推出一个LTS版本。该版本为企业级用户提供一个安全稳定可靠的操作系统。具体的介绍可以参考官网https://www.openeuler.org/zh/二、Kubernetes 1.24版本发布及改动。 阅读详情

使用kubeadm部署k8s1.24.0版本,遇到的坑总结

环境

操作系统:centos7
内核:5.4.231-1.el7.elrepo.x86_64
kubeadm:1.24.0
kubelet:1.24.0
kubectl:1.24.0
cri:docker
cni:flannel
docker:20.10.15

安装

使用kubeadm进行安装,首先进行虚机环境的适配:

关闭现有防火墙firewalld
# systemctl disable firewalld
# systemctl stop firewalld
# firewall-cmd --state
not running

所有主机均需要操作。修改SELinux配置需要重启操作系统。
# sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

所有主机均需要操作。最小化安装系统需要安装ntpdate软件。
# crontab -l
0 */1 * * * /usr/sbin/ntpdate time1.aliyun.com

升级操作系统内核,所有主机均需要操作
导入elrepo gpg key
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安装elrepo YUM源仓库
# yum -y install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

安装kernel-ml版本,ml为长期稳定版本,lt为长期维护版本
# yum --enablerepo="elrepo-kernel" -y install kernel-ml.x86_64

设置grub2默认引导为0
# grub2-set-default 0

重新生成grub2引导文件
# grub2-mkconfig -o /boot/grub2/grub.cfg

更新后,需要重启,使用升级的内核生效。
# reboot

重启后,需要验证内核是否为更新对应的版本
# uname -r


配置内核转发及网桥过滤,所有主机均需要操作。
添加网桥过滤及内核转发配置文件
# cat /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0

加载br_netfilter模块
# modprobe br_netfilter

查看是否加载
# lsmod | grep br_netfilter
br_netfilter           22256  0
bridge                151336  1 br_netfilter

加载网桥过滤及内核转发配置文件
# sysctl -p /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0

安装ipset及ipvsadm,所有主机均需要操作。
安装ipset及ipvsadm
# yum -y install ipset ipvsadm

配置ipvsadm模块加载方式
添加需要加载的模块
# cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF

授权、运行、检查是否加载
# chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack

关闭SWAP分区
修改完成后需要重启操作系统,如不重启,可临时关闭,命令为swapoff -a
永远关闭swap分区,需要重启操作系统
# cat /etc/fstab
......

# /dev/mapper/centos-swap swap                    swap    defaults        0 0
在上一行中行首添加#


Docker准备
# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

# yum -y install docker-ce
# systemctl enable --now docker
# cat /etc/docker/daemon.json
{
        "exec-opts": ["native.cgroupdriver=systemd"]
}
# systemctl restart docker

cri-dockerd安装
# 按照github上的步骤安装

kubernetes 1.24.0  集群部署
添加阿里云YUM源
[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


# yum -y install  kubeadm-1.24.0  kubelet-1.24.0 kubectl-1.24.0
# vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"

# systemctl enable kubelet

初始化命令
# kubeadm config print init-defaults > kubeadm.yaml
# kubeadm init --config=kubeadm.yaml --v=5  | tee kubeadm-init.log

加master节点

node节点的添加方式在init之后会有提示,master节点的添加步骤如下:

获取token discovery-token-ca-cert-hash
# kubeadm token create --print-join-command
注意查看有效期
# kubectl get secret -n kube-system
NAME                     TYPE                            DATA   AGE
bootstrap-token-irf0gh   bootstrap.kubernetes.io/token   4      83m
bootstrap-token-yxwodi   bootstrap.kubernetes.io/token   6      95m
kubeadm-certs            Opaque                          8      83m
# kubectl get secret -n kube-system bootstrap-token-0lapbd -oyaml
apiVersion: v1
data:
  description: UHJveHkgZm9yIG1hbmFnaW5nIFRUTCBmb3IgdGhlIGt1YmVhZG0tY2VydHMgc2VjcmV0
  expiration: MjAyMy0wMy0wMVQwMzo1NTo0MVo=
  token-id: aXJmMGdo
  token-secret: MTZ6MW4wZnFkNm00anB3dQ==
kind: Secret
metadata:
  creationTimestamp: "2023-03-01T01:55:41Z"
  name: bootstrap-token-irf0gh
  namespace: kube-system
  resourceVersion: "1092433"
  uid: 47c6d9a7-af1e-4eb4-b87a-17f4c71da07f
type: bootstrap.kubernetes.io/token
# echo "MjAyMy0wMy0wMVQwMzo1NTo0MVo=" | base64 --decode
2022-03-01T03:55:41Z

生成certification-key
# kubeadm init phase upload-certs --upload-certs --config kubeadm.yaml 注意在yaml中指定cri-docker

新的主节点需要安装cri-docker,docker,kubeadm,kubelet,kubectl以及k8s需要的镜像(可能有的不需要吧,建议都装上)
注册新主
# kubeadm join 100.0.44.123:6443 --token yxwodi.5m8py913bryxmked --discovery-token-ca-cert-hash sha256:9e7278c7e2cf3cae7f8f3c5a2e64a51c27100154e6342cbbaec69df15846e30c \
        --control-plane --certificate-key d2fbbfc70362dd0752dbec2e98c953e050a6132faf994743c91f6eab8a364200

遇到的问题

注意:上面步骤生成的kubeadm.yaml文件中需要修改一些参数,例如advertiseAddress,node name等

kubeadm init之后一直报错
在这里插入图片描述
网上大部分的解决方式是修改docker和kubelet的cgroup的驱动方式为systemd,但是我修改之后没有生效。
最后通过systemctl status cri-docker命令发现,docker一直在pull pause镜像文件,这就很奇怪,因为我已经下载到本地docker了,
在这里插入图片描述
然后发现本地docker image中的的文件名和cri-docker pull的文件名不一致,统一修改成k8s.gcr.io/pause:3.7(在/etc/systemd/system/cri-docker.service文件中增加启动参数 --pod-infra-container-image registry.k8s.io/pause:3.7),然后container的配置文件/etc/containerd/config.toml中修改:SystemdCgroup = true sandbox_image = "k8s.grc.io/pause:3.7".
之后kubeadm reset,init就成功了

Kubeadm安装部署k8s集群、踩坑日常 阅读详情

相关推荐

kubeadm部署kubernetes v1

mkdir -p /etc/sysconfig/ipvsadm cat > /etc/sysconfig/ipvsadm/ipvs.modules

2401_87197505的博客 1325

使用Docker解决microK8s registry.k8s.io/pause:3.7镜像拉取失败问题

使用Docker解决microK8s registry.k8s.io/pause:3.7镜像拉取失败问题。

weixin_42889176的博客 3978

K8s的kubeadm方式部署集群实例

注: apiserver-advertise-address=10.12.153.49 ---master的ip地址。--kubernetes-version=v1.22.0 --更具具体版本进行修改。可以下载资源一键部署,以下是资源所包含的镜像,也可以在官网逐个拉取,注意版本对应。BOOTPRTOT=dhcp (动态)改为 static(静态)配置使用kubectl 根据上面初始化完成后的提示使用命令。(可以参考博主之前的文章,一看就会,直接复制粘贴)希望能更够帮助到大家!

yz2322944912的博客 1618

k8s—搭建

1、k8s简介 2、k8s部署 净化虚拟机环境 [root@server3 ~]# docker swarm leave [root@server4 ~]# docker swarm leave [root@server2 ~]# docker stack rm mystack 删除 [root@server2 ~]# docker swarm leave --force 强制离开 [root@server2 ~]# cd /etc/systemd/system/ [root@serve

qq_43114229的博客 2442

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

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

超哥的博客 1751

k8s 升级内核开启IPVS前置条件

在Linux下开启ipvs。升级内核到最近lt版本。

weixin_45537987的博客 356

microk8s拉取pause镜像卡住

前几天嫌服务器上镜像太多占空间,全部删掉了,今天看到 microk8s 更新了 1.30 版本,果断更新,结果集群跑不起来了。这时候我们可以采取换一个国内源拉取这个镜像,然后重新打个。镜像,但是由于某些网络原因导致拉取不下来。初始化卡住了,导致集群起不起来。重启下集群,或者等一会儿就好啦~如上图可以看到,所有的业务。如下图所示,镜像拉取成功。启动时,需要拉取一个。对应阿里源上的镜像是。

许盛的博客 1352

【Out-of-Distribution Detection】Evidential Deep Learning in NeurIPS 2018 个人理解

核心思想是将分类器的概率输出视为一个狄利克雷分布(Dirichlet Distribution)并替换,之后引入两个损失分别负责保证预测结果准确性和提升被错误分类的样本的不确定性。

研究兴趣:开放集识别、开放世界识别、新类发现、增量学习、少样本学习 2434

K8S集群部署采坑总结

k8s部署

u010157986的专栏 8329

计算机视觉(相机标定;内参;外参;畸变系数)

目录 一、预备知识 1、坐标系变换过程(相机成像过程) (1)相机坐标系转换为图像坐标系(透视投影变换遵循的是针孔成像原理) (2)齐次坐标的引入原因:(为什么引入齐次坐标???) 2、内参与外参矩阵的构成 3、畸变参数 二、相机标定 1、张正友标定法(光学标定)及其求解思路 2、求解内参矩阵与外参矩阵的思路: (1)计算内参与外参矩阵的乘积M (2)求解内参矩阵A (3)求解外参矩阵(R1 R2 T) 三、参数优化 1、L-M算法 2、相机标定步骤 四、相关代码及其实验结.

QYJ_WORKHARDING的博客 6万+

信捷XD/XL系列PLC与C#通信实战:Modbus-RTU协议详解(附完整代码)

本文详细介绍了信捷XD/XL系列PLC与C#通过Modbus-RTU协议实现高效通信的实战指南。从硬件连接到软件配置,再到核心通信功能的实现与优化,提供了完整的代码示例和工业级应用建议,帮助开发者快速构建稳定的自动化通信系统。

weixin_28292761的博客 511

kubeadm部署kubernetes v1.29.0集群(k8s1.29.0)

k8s v1.29.0

我的小站:https://oby.ink 8627

codemirror6 制作markdown编辑器(源码模式)

总体上感觉能用,但是不怎么友好,官方文档有点散乱,而且关键字高亮功能是独立出去的,去官方文档找半天,也没找到怎么改。EditorView.theme可以往EditorView模块中修改CSS的样式,从而影响编辑器的样式展示。"### 测试\n\n```javascript\nlet x = 'y'\n```"这个插件中的markdown语法的高亮样式。//这里指定markdown中代码块使用的解析扩展。开头的class样式,并且还需要在选择器前面添加。//markdown语言解析扩展。

qq_43203949的博客 1783

kubeadm部署kubernetes 1.24版本集群

kubeadm 安装docker支持的k8s环境

u011415722的博客 2904

Cursor使用教程:用 Cursor 创建第一个 Java 项目

Cursor是一款基于VS Code的AI编程编辑器,专为开发者设计。安装前需确保JDK 8+、Maven 3.8+等环境配置,支持Windows系统。编辑器提供中文界面选项,可通过扩展市场安装语言包。创建Java项目支持手动和AI提示词两种方式:手动需创建目录结构并编写代码;AI方式则通过自然语言描述快速生成项目框架和代码。标准Java项目包含src/main/java主代码目录、src/test/java测试目录及pom.xml等配置文件。Maven项目中,pom.xml是核心配置文件,管理项目依赖与构

博客 3547

全志V3S嵌入式驱动开发(uboot移植)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 安装了ubuntu操作系统,有了开发板,下面就可以进行我们的开发工作了。第一步,我们要面临的问题就是uboot移植。一般来说,嵌入式的基础环境就是uboot、linux和rootfs。uboot完成一些基本硬件的初始化,比如cpu频率设置、ddr初始化、加载linux等等。早前,uboot的烧入比较麻烦,需要jtag工具才能完成。现在来说,很多soc支持系统直接从sd卡启动,这对开发

嵌入式-老费,一个分享专业嵌入式知识的blog 2817

kubeadm 部署Kubernetes1.24_cri-docker版本

2022 年 5 月 3 日,Kubernetes 1.24 正式发布,在新版本中,我们看到 Kubernetes 作为容器编排的事实标准,正愈发变得成熟,有 12 项功能都更新到了稳定版本,同时引入了很多实用的功能,例如 StatefulSets 支持批量滚动更新,NetworkPolicy 新增 NetworkPolicyStatus 字段方便进行故障排查等Kubernetes 正式移除对 Dockershim 的支持,讨论很久的 “弃用 Dockershim” 也终于在这个版本画上了句号。想要清楚的了

srebro.cn | 运维小弟 3764

phpMyAdmin | mysqli::real_connect(): (HY000/2002): No such file or directory

第一次安装宝塔mysql服务是默认关闭的,需要手动打开,打开服务再次进入phpMyAdmin发现可以进入了。

吻等离子的博客 2870

Ubuntu24使用kubeadm部署高可用K8S集群

使用kubeadm部署一个k8s集群,3个master+1个worker节点。

lldhsds的专栏 3363

RK3588开发笔记-Buildroot编译Qt5WebEngine-5.15.10

Rockchip RK3588是一款强大的多核处理器,广泛应用于边缘计算、人工智能、嵌入式系统等领域。为了在RK3588上运行自定义的Linux系统,并使用Qt5WebEngine进行Web内容渲染,Buildroot是一个非常合适的工具。本文将详细介绍如何使用Buildroot编译并配置Qt5WebEngine-5.15.10。Qt5WebEngine是Qt框架中的一个模块,它提供了一个功能强大的Web浏览器引擎,允许开发者在Qt应用程序中嵌入和显示现代网页内容。

flypig has a dream! 1157

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

kubeadm极速部署Kubernetes 1.24版本集群

2022 年 5 月 3 日,Kubernetes 1.24 正式发布,Kubernetes 正式移除对 Dockershim 的支持,讨论很久的 “弃用 Dockershim” 也终于在这个版本画上了句号。**有 12 项功能都更新到了稳定版本**,同时引入了很多实用的功能,例如 **StatefulSets 支持批量滚动更新**,**NetworkPolicy 新增 NetworkPolicyStatus 字段方便进行故障排查等。一起看看吧!无坑版部署1.24版本集群

weixin_47758895的博客 1395

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

基于ubuntu2204使用kubeadm部署k8s-1.24集群

基于ubuntu2204部署1.24版本k8s集群

m0_56363537的博客 1920

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

kubeadm快速部署Kubernetes 1.29.0版本集群

新版本Kubernetes 1.29.0搭建

qq_46268601的博客 4365

kubeadm极速离线部署Kubernetes 1.27.1版本集群

链接:https://pan.baidu.com/s/1c1wyYpzSCyybVznPlWBifw?链接:https://pan.baidu.com/s/1c1wyYpzSCyybVznPlWBifw?链接:https://pan.baidu.com/s/1c1wyYpzSCyybVznPlWBifw?链接:https://pan.baidu.com/s/1c1wyYpzSCyybVznPlWBifw?链接:https://pan.baidu.com/s/1O5BulDhg4h2X4ftv8HgG0g?

weixin_46544841的博客 2835

CentOS7使用kubeadm部署k8s-1.28集群

本文记录了在CentOS 7.9环境下部署Kubernetes 1.28集群的过程。采用containerd 1.6.28作为容器运行时,Calico作为网络插件,并搭建NFS共享存储环境。集群包含1个master节点和2个worker节点,均通过kubeadm工具部署。部署步骤包括:系统环境准备(禁用SELinux、swap等)、containerd安装配置、kubeadm/kubelet/kubectl安装,以及cgroup驱动配置。特别针对国内环境配置了镜像源代理,使用阿里云镜像仓库替代默认仓库。

运维攻城狮 3508
上一篇: 使用orchestrator搭建mysql8.0三节点集群的参数配置,记网络连接失效导致的一次故障
下一篇: k8s1.24.0 dashboard登录token的生成
code_feien
博客等级 码龄7年 71粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值