由于kubernets从v1.24开始停止支持dockershim,kubernets不再支持通过docker来创建和管理容器。本文记录安装kubernetes v1.25 + containerd

1、环境

IP 主机名 节点角色 操作系统
10.0.8.101 master01,k8s-master01,k8s-api.ilinux.io master Ubuntu 22.04.1 LTS
10.0.8.111 node01,k8s-node01 node Ubuntu 22.04.1 LTS
10.0.8.112 node02,k8s-node2 node Ubuntu 22.04.1 LTS
10.0.8.113 node03,k8s-node03 node Ubuntu 22.04.1 LTS

2、时区调整

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3、配置镜像源 这里是有aliyun

sed -i 's@http://cn.archive.ubuntu.com@https://mirrors.aliyun.com@g' /etc/apt/sources.list
apt-get update 网卡配置:
cat /etc/netplan/00-installer-config.yaml
network:
ethernets:
ens33:
dhcp4: false
addresses: [192.168.3.101/24]
nameservers:
addresses: [192.168.3.1]
gateway4: 192.168.3.1
ethernets:
ens37:
dhcp4: false
addresses: [10.0.8.101/24]
version: 2

4、配置域名

#cat /etc/hosts
10.0.8.101 master01 k8s-master01 k8s-api.ilinux.io
10.0.8.111 node01 k8s-node01
10.0.8.112 node02 k8s-node02
10.0.8.113 node03 k8s-node03

5、关闭防火墙

#systemctl disable --now ufw
#systemctl stop ufw

6、关闭swap

swapoff -a # 临时swap
sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久关闭swap

7、优化资源限制参数

ulimit -SHn 65535

cat >>/etc/security/limits.conf <<EOF
* soft nofile 65536
* hard nofile 131072
* soft nproc 65535
* hard nproc 655350
* soft memlock unlimited
* hard memlock unlimited
EOF

8、安装ipvs等工具并优化内存

apt -y install ipvsadm ipset sysstat conntrack libseccomp-dev

 加载ipvs模块以及配置:

modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack cat >> /etc/modules-load.d/ipvs.conf <<EOF
ip_vs
ip_vs_lc
ip_vs_wlc
ip_vs_rr
ip_vs_wrr
ip_vs_lblc
ip_vs_lblcr
ip_vs_dh
ip_vs_sh
ip_vs_fo
ip_vs_nq
ip_vs_sed
ip_vs_ftp
ip_vs_sh
nf_conntrack
ip_tables
ip_set
xt_set
ipt_set
ipt_rpfilter
ipt_REJECT
ipip
EOF systemctl restart systemd-modules-load.service

9、内核参数调整

cat > /etc/sysctl.d/k8s.conf <<EOF
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
fs.may_detach_mounts = 1
vm.overcommit_memory=1
vm.panic_on_oom=0
fs.inotify.max_user_watches=89100
fs.file-max=52706963
fs.nr_open=52706963
net.netfilter.nf_conntrack_max=2310720
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl =15
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_orphans = 327680
net.ipv4.tcp_orphan_retries = 3
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.ip_conntrack_max = 65536
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_timestamps = 0
net.core.somaxconn = 16384
EOF sysctl --system

10、配置containerd需要的模块

cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF 加载模块:
modprobe -- overlay
modprobe -- br_netfilter 配置Containerd所需的内核:
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF 加载内核:
sysctl --system

11、安装containerd

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装containerd.io
sudo apt-get -y update
sudo apt-get -y install containerd.io critcl

12、配置containerd

生成配置文件:containerd config default > /etc/containerd/config.toml
修改配置文件
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
grep 'SystemdCgroup' -B 11 /etc/containerd/config.toml #检查是否修改成功 将sandbox_image镜像地址更改为阿里云:
sed -i 's@k8s.gcr.io@registry.aliyuncs.com/google_containers@g' /etc/containerd/config.toml
grep 'sandbox_image' /etc/containerd/config.toml 镜像加速:
配置文件:/etc/containerd/config.toml,增加配置路径
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d" 创建加速配置文件
如:docker.io
mkdir -p /etc/containerd/certs.d/docker.io
配置文件:hosts.toml
cat /etc/containerd/certs.d/docker.io/hosts.toml
server = "https://docker.io"
[host."http://hub-mirror.c.163.com"]
capabilities = ["pull","resolve"]

#增加私有仓库:

如:harbor.myland.com
mkdir -p /etc/containerd/certs.d/harbor.myland.com

#配置文件:hosts.toml,如果不需要验证服务端证书,skip_verify 设置为 true即可,ca.crt为签发harbor的server.crt的 CA的证书
cat /etc/containerd/certs.d/harbor.myland.com/hosts.toml
server = "https://harbor.myland.com"
[host."https://harbor.myland.com"]
capabilities = ["pull", "resolve", "push"]
skip_verify = false
ca = "/etc/containerd/certs.d/harbor.myland.com/ca.crt" systemctl daemon-reload && systemctl enable --now containerd
systemctl restart containerd

#可以安装nerdctl工具管理containerd,改命令风格与docker命令相似
https://github.com/containerd/nerdctl

13、安装kubelet kubeadm kubectl

apt update && apt install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list apt update -y
apt install -y kubelet kubeadm kubectl

14、kubernetes初始化 

kubeadm init \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.25.2 \
--control-plane-endpoint k8s-api.ilinux.io \
--apiserver-advertise-address 10.0.8.101 \
--pod-network-cidr 10.201.0.0/16 \
--service-cidr 10.97.0.0/16 \
--token-ttl 0 

13、验证

查看k8s集群

ctr查看containerd

nerdctl查看

netctl检查containerd配置,与docker一致:如检查PID

也可以设置默认的nerdctl使用的namespace

mkdir /etc/nerdctl && cat  'namespace = "k8s.io"' >/ etc/nerdctl/nerdctl.toml 

 

 

  

  

  

 

   

  

kubernetes:v1.25 + containerd的更多相关文章

  1. 基于docker和cri-dockerd部署kubernetes v1.25.3

    基于docker和cri-dockerd部署kubernetes v1.25.3 1.环境准备 1-1.主机清单 主机名 IP地址 系统版本 k8s-master01 k8s-master01.wan ...

  2. kubernetes系列:(一)、kubeadm搭建kubernetes(v1.13.1)单节点集群

    kubeadm是Kubernetes官方提供的用于快速部署Kubernetes集群的工具,本篇文章使用kubeadm搭建一个单master节点的k8s集群. 节点部署信息 节点主机名 节点IP 节点角 ...

  3. ansible离线安装k8s v1.25版本

    Kubernetes v1.25 企业级高可用集群自动部署(离线版) 注:确保所有节点系统时间一致 操作系统要求:CentOS7.x_x64 1.找一台服务器安装Ansible # yum insta ...

  4. 三小时学会Kubernetes:容器编排详细指南

    三小时学会Kubernetes:容器编排详细指南 如果谁都可以在三个小时内学会Kubernetes,银行为何要为这么简单的东西付一大笔钱? 如果你心存疑虑,我建议你不妨跟着我试一试!在完成本文的学习后 ...

  5. [转载]三小时学会Kubernetes:容器编排详细指南

    原翻译by梁晓勇 原英文:Learn Kubernetes in Under 3 Hours: A Detailed Guide to Orchestrating Containers 我很奇怪,为什 ...

  6. 【Kubernetes 系列五】在 AWS 中使用 Kubernetes:EKS

    目录 1. 概述 2. 版本 3. 预备 3.1. 操作环境 3.2. 角色权限 3.2.1. CloudFormation 完全权限 3.2.2. EKS 读写权限 3.2.3. EC2 相关权限 ...

  7. Kubernetes:更新与回滚

    Blog:博客园 个人 除了创建,Deployment 提供的另一个重要的功能就是更新应用,这是一个比创建复杂很多的过程.想象一下在日常交付中,在线升级是一个很常见的需求,同时应该尽量保证不能因为升级 ...

  8. Kubernetes:服务与负载均衡

    Blog:博客园 个人 参考:Service | Kubernetes.<Kubernetes进阶实战> 有了 Workload,我们可以方便地管理多实例的应用,但是要想能够方便地访问应用 ...

  9. Kubernetes:Ingress总结(一)

    Blog:博客园 个人 参考:Ingress | Kubernetes.<Kubernetes进阶实战>.<Kubernetes网络权威指南 > 何谓Ingress?从字面意思 ...

  10. Kubernetes:存储管理

    Blog:博客园 个人 参考:Volumes | Kubernetes.Persistent Volumes | Kubernetes.Kubernetes 基础入门实战 简单来说,存储卷是定义在Po ...

随机推荐

  1. 微信小程序-获取用户头像信息以及修改用户头像

    这里主要用到button的open-type功能,官网已有说明: 给button设置open-type="chooseAvatar",来使bindchooseavatar方法生效, ...

  2. 【SDOI2015】排序

    #include<cstdio> #include<iostream> using namespace std; typedef long long LL; const int ...

  3. LG P5043 树同构

    \(\text{problem}\) 无根树同构的判断 \(\text{Analysis}\) 考虑树哈希,注意使用较正确的哈希方法 无根树同构有个性质 只要判断以这两棵树的重心为根是否同构即可 \( ...

  4. ctf命令执行刷题

    web29 error_reporting(0); if(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/flag/i" ...

  5. Hexo系列(一):Hexo简介

    作者:独笔孤行 官网:​​ ​http://anyamaze.com​​ 公众号:云实战 前言 博客网站的实现方法有很多种,常用的博客框架主要有wordpress.Z-Blog.hexo.Typech ...

  6. window 运行 jar包方式

    所有文件 1.将jar包指定为bat批处理文件,然后可以双击启动 新建start2.txt 编辑保存一下内容,修改start2.txt后缀为bat,点击运行(此方法当前命令窗口关闭后,程序也关闭) j ...

  7. 实现 JSON 高亮

    JSON 转换 HTML function formatJson(json) { let regexp = /("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"]) ...

  8. kingbase字符类数据类型和oracle字符类型的区别

    为兼容Oracle的数据类型,KingbaseES扩展了Oracle的NUMBER.VARCHAR2.CHAR(n)和DATE类型.该措施使得移植Oracle的Create Table等DDL语句时, ...

  9. Android病毒分析基础(二)—ChatGPT提问技巧

    今天我们来用最近比较火的"ChatGPT"学习一下Android病毒分析基础,看看和我们之前学的有什么不同,又能学习到什么新的东西,同时了解一下"ChatGPT" ...

  10. 洛谷P2205 [USACO13JAN]Painting the Fence S

    题目 https://www.luogu.com.cn/problem/P2205 思路 刷水题真解压 差分就完事了 值得注意的一些东西:像这种和数轴或者坐标相关的题,还有扫描线题,一定要注意区间的开 ...