当前位置: 首页 > news >正文

[k8s] 基于ubuntu22部署k8s1.28记录

k8s1.28部署已经不依赖docker了,所以不需要安装docker。同理:如果想查看镜像和运行容器,也不能用docker命令去查询了:需要使用crictl。不过crictl命令参数兼容docker,所以使用上手没有啥难度。

1. 配置安装源

根据k8s官方文档:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 配置即可

apt-get install -y apt-transport-https ca-certificates curl
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
# This overwrites any existing configuration in /etc/apt/sources.list.d/kubernetes.list
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

2. 主机系统参数配置

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOFsudo modprobe overlay
sudo modprobe br_netfilter# sysctl params required by setup, params persist across reboots
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# Apply sysctl params without reboot
sudo sysctl --system

3. 修改containerd配置

k8s 1.24之前,还支持cri-dockerd ;1.24以及之后版本不再支持了。所以必须安装CRI-O或者containerd作为container runtime。这里我选择了containerd

containerd config default > /etc/containerd/config.toml

生成containerd配置文件,然后/etc/containerd/config.toml中修改如下配置项:

a. 修改SystemdCgroup

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]...[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]SystemdCgroup = true

b. 修改pause镜像路径

[plugins."io.containerd.grpc.v1.cri"]#sandbox_image = "registry.k8s.io/pause:3.2"sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"

你要是有魔法能从registry.k8s.io拉下来镜像,这b步骤不改也行

最后重启containerd服务

systemctl restart containerd

4. 生成kubeadm配置文件

kubeadm config print init-defaults > kubeadm-config.yaml

编辑kubeadm-config.yaml文件,修改advertiseAddress和主机name,替换镜像仓库地址,增加podSubnet:

localAPIEndpoint:advertiseAddress: 本机IPbindPort: 6443
nodeRegistration:criSocket: unix:///var/run/containerd/containerd.sockimagePullPolicy: IfNotPresentname: 替换成hostnameimageRepository: registry.aliyuncs.com/google_containers
....
networking:
....podSubnet: 10.244.0.0/16

5. 部署k8s

 kubeadm init --config kubeadm-config.yaml

如果顺利,应该几分钟就ok了

6. 部署flannel

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

测试结果flannel镜像是docker.io拉取,可以直接拉,不需要做国内源替换。但是这边记录一个坑:flannel已经running得情况下,coredns依然是pending状态。 这边参考了一篇博客解决这个问题:https://discuss.kubernetes.io/t/k8s-cni-plugin-issue-cni-plugin-not-initialized-while-kube-flannel-is-running/24136

总结就是:reboot
实践证明,可行

http://www.lryc.cn/news/137461.html

相关文章:

  • React 事件代理 和原生事件绑定混用:你的选择会导致什么问题?
  • 使用阿里云国外和国内云服务器有什么注意事项?
  • 【计算机网络】【常考问题总结】
  • 前端基础(props emit slot 父子组件间通信)
  • 即时通讯:短轮询、长轮询、SSE 和 WebSocket 间的区别
  • 高忆管理:药店零售概念回落,开开实业走低,此前7日大涨超80%
  • Go1.19 排序算法设计实践 经典排序算法对比
  • 3:Ubuntu上配置QT交叉编译环境并编译QT程序到Jetson Orin Nano(ARM)
  • CentOS下MySQL的彻底卸载的几种方法
  • Spring 的异常处理机制
  • java八股文面试[JVM]——JVM参数
  • 面试热题(复原ip地址)
  • 【JavaSE】Java方法的使用
  • Node.js 安装和配置(完整详细版)
  • 剪枝基础与实战(4):稀疏训练及剪枝效果展示
  • CentOS 7.6使用yum安装stress,源码安装stree-ng 0.15.06,源码安装sysstat 12.7.2
  • POI groupRow 折叠分组,折叠部分不显示问题
  • 一、数据库基础
  • Harmony OS教程学习笔记
  • 605. 种花问题
  • Elasticsearch 常见的简单查询
  • C#使用xamarin进行跨平台开发
  • xargs 的用法 在1个文件夹中批量删除文件,这些删除的文件名是另一个文件夹中的文件名。
  • 集简云本周新增/更新:新增2大功能,集成2款应用,更新4款应用,新增近20个动作
  • MySQL存储过程怎么写?看完这篇秒懂
  • STM32电源名词解释
  • 《操作系统真象还原》学习笔记:第七章 中断
  • 【学习笔记之vue】These dependencies were not found:
  • 【数据结构】实现栈和队列
  • APT60DQ20BG-ASEMI新能源功率器件APT60DQ20BG