Kubernetes[k8s] 最新版1.27.3安装教程,使用containerd模式

2023-11-10

背景

公司使用的是交老的k8s版本(1.16),由于老版本的K8s对于现在很多新特性不支持,所以需要升级到新版本。目前2023年7月11日最新版本的k8s是v1.27.3。通过参考官方文档进行k8s部署工作。其中涉及到操作系统配置、防火墙配置、私有镜像仓库等。

环境

操作系统:centos7.9
机器:1个master 和 1个node 节点

安装

设置系统
# 所有机器设置hostname
hostnamectl set-hostname  master1
hostnamectl set-hostname  node1

# 所有机器增加内网ip和 master1 对应关系
vi /etc/hosts

如:
master1 192.168.1.1
node1 192.168.1.3
关闭防火墙
# 注意,如果不关闭防火墙,需要将kubernates所有端口放行
sudo systemctl stop firewalld.service 
sudo systemctl disable firewalld.service
设置机器同步

可使用ntpdate,如果是各大厂的云服务器,也可以不设置,云服务器已设置好

关闭交换空间
sudo swapoff -a
sudo sed -i 's/.*swap.*/#&/' /etc/fstab
关闭selinux
getenforce
cat /etc/selinux/config
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
cat /etc/selinux/config
使用阿里云的Yum库
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
# 是否开启本仓库
enabled=1
# 是否检查 gpg 签名文件
gpgcheck=0
# 是否检查 gpg 签名文件
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

EOF
配置网桥
# 设置所需的 sysctl 参数,参数在重新启动后保持不变
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
vm.swappiness = 0
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1

EOF

# 应用 sysctl 参数而不重新启动
sudo sysctl --system
安装containerd

由于新的Kubernates [1.24.0以上] 建议使用contanerd, 而且kubernates如何使用containerd 不会像使用docker一样,要中间转几层,故其性能很好。大概CPU使用率减少60%,内存使用率能减少12%。


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

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum install -y containerd.io containerd

sudo systemctl stop containerd.service

sudo containerd config default > /etc/containerd/config.toml
sudo sed -i "s#registry.k8s.io/pause#registry.cn-hangzhou.aliyuncs.com/google_containers/pause#g" /etc/containerd/config.toml

# 更改/etc/containerd/config.toml  ,disabled_plugins 中删除 cri
vi /etc/containerd/config.toml
sudo sed -i "s#SystemdCgroup = false#SystemdCgroup = true#g" /etc/containerd/config.toml

sudo systemctl enable --now containerd.service
sudo systemctl status containerd.service

sudo modprobe br_netfilter

安装k8s
sudo yum install -y kubelet-1.27.3-0 kubeadm-1.27.3-0 kubectl-1.27.3-0 --disableexcludes=kubernetes --nogpgcheck
sudo systemctl daemon-reload
sudo systemctl restart kubelet
sudo systemctl enable kubelet
初始化k8s master节点
kubeadm init --image-repository=registry.aliyuncs.com/google_containers 

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

# 让master参与服务调度,不做control-plane
kubectl taint node master1 node-role.kubernetes.io/control-plane-
kubectl label node master1 kubernetes.io/role=master

sudo  crictl config runtime-endpoint unix:///var/run/containerd/containerd.sock

增加k8s worker节点

利用上一步中 kubeadm init后产生的命令在work节点中执行

kubeadm join 172.16.64.9:6443 --token token.fake  --discovery-token-ca-cert-hash sha256:fake 	
安装calico网络插件
wget --no-check-certificate https://projectcalico.docs.tigera.io/archive/v3.25/manifests/calico.yaml
# 修改 calico.yaml 文件
vim calico.yaml
# 在 - name: CLUSTER_TYPE 下方添加如下内容
- name: CLUSTER_TYPE
  value: "k8s,bgp"
  # 下方为新增内容
- name: IP_AUTODETECTION_METHOD
  value: "interface=网卡名称"
# 例如:- name: IP_AUTODETECTION_METHOD
# 例如:  value: "interface=eth0" 可使用通配符,例如:interface="eth.*|en.*"


kubectl apply -f calico.yaml
查看集群状态
kubectl cluster-info
kubectl get nodes
kubectl get pods -A -o wide

常用命令

containerd命令

# 查看镜像
ctr image list
或者
crictl images
 
# 拉取镜像
ctr i pull --all-platforms registry.xxxxx/pause:3.2
或者
ctr i pull --user user:passwd --all-platforms registry.xxx.xx/pause:3.2
或者
crictl pull --creds user:passwd registry.xxx.xx/pause:3.2

# 镜像打tag
镜像标记tag
ctr -n k8s.io i tag registry.xxxxx/pause:3.2 k8s.gcr.io/pause:3.2
或者
ctr -n k8s.io i tag --force registry.xxxxx/pause:3.2 k8s.gcr.io/pause:3.2

# 删除镜像tag
ctr -n k8s.io i rm registry.xxxxx/pause:3.2

# 推送镜像
ctr images push --user user:passwd registry.xxxxx/pause:3.2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kubernetes[k8s] 最新版1.27.3安装教程,使用containerd模式 的相关文章

随机推荐

  • 深入详解ThreadLocal内存泄漏问题

    1 造成内存泄漏的原因 threadLocal是为了解决对象不能被多线程共享访问的问题 通过threadLocal set方法将对象实例保存在每个线程自己所拥有的threadLocalMap中 这样每个线程使用自己的对象实例 彼此不会影响达
  • 大学毕业后,我就去当了2个月外卖骑手,哭了一整晚

    先简单介绍一下自己 我来自长沙 大学学的的物流管理专业 现在就职于一家互联网公司 从事软件测试工作 我来自长沙县的一个偏远农村 家里兄弟姐妹多 父母无力负担我的学费 很多时候学费都是靠姐姐姐夫接济 我大学也做过很多兼职家教 所以可以支撑我到
  • LaTex中公式太长怎么办(公式跨栏显示)

    目录 问题 方案 1 缩小公式字体 2 公式内容换行 3 公式跨栏居中显示 这些方法我摸索了一个早上才找到的 如果对大家有帮助 请大家给我一键三连 非常感谢 问题 在双列栏中 有一道公式长度实在太长 左思右想 发现无非几种解决办法 方案 1
  • Linux 查看/关闭/禁止开机启动防火墙命令

    1 查看防火墙 firewall 的状态 firewall cmd state 或者 systemctl status firewalld 2 停止防火墙 firewall systemctl stop firewalld service
  • 转换wxDateTime为Python

    wxPython Converting wx DateTime to Python datetime The wxPython GUI toolkit includes its own date time capabilities Most
  • 网安基础知识—【IP地址】

    文章目录 一 什么是IP地址 二 IP地址的分类 三 子网掩码 一 什么是IP地址 IP地址就像我们需要打电话时的电话号码一样 它用来标识网络中的一台主机 每台主机至少有一个IP地址 而且这个IP地址是全网唯一的 IP地址由网路号和主机号两
  • 'Invalid parameter not satisfying: URLString'网络请求的时候get使用特殊字符和汉字崩溃的恶心bug解决方法...

    参数需要转一下的就ok value value stringByAddingPercentEscapesUsingEncoding NSUTF8StringEncoding 转载于 https www cnblogs com godlove
  • 易懂分布式

    转载自 https www jianshu com p f2c31e632f1d 近年来 区块链技术 部分人更愿意称之为分布式账本技术 的走红将分布式技术的概念带入大众的视野 区块链技术之所以备受追捧 一方面是其展现了一种在计算机的辅助下
  • 手机连云服务器传文件,手机云服务器传输文件

    手机云服务器传输文件 内容精选 换一换 本节操作介绍本地Linux操作系统主机通过SCP向Linux云服务器传输文件的操作步骤 登录管理控制台 在ECS列表页面记录待上传文件的云服务器的弹性公网IP 上传文件在本地Linux操作系统主机上执
  • java操作es集群模糊查询等

    首先引入依赖
  • Groovy简介和一点资源

    Groovy简介 简单地说 Groovy是一门基于JVM的动态语言 我们可以把它当成JVM上的Python语言来使用 而且Groovy的有些语法都和Python Ruby等脚本语言很相似 Groovy最后也会被编译为Java字节码 在JVM
  • 【java】之3种方式实现Object和Map之间的转换

    转载 java 之3种方式实现Object和Map之间的转换 古越剑箫 博客园
  • 我的postfix+postfixadmin邮件服务器架设过程

    Step1 安装apache mysql php 配置dns 如果mysql为自定义安装 请做以下操作 PATH PATH usr local mysql bin export PATH echo usr local mysql lib m
  • HTML5新控件 - url类型输入框(网址)

    如果需要一个用来填写url地址的输入框 可以使用url类型 这样浏览器可以帮我们验证格式是否正确 而不需要自己写验证规则 网址验证规则 首先要有一个URL前缀 http ftp 等 后面可以是空格和大多数特殊字符 冒号除外
  • Theano学习系列(3):符号变量的方法之creat new tensor

    Theano学习系列 3 符号变量的方法之Creat New Tensor 和前两节一样 本节重点讲述tensor方法中的creat new tensor这些知识 这一节共有11个函数需要我们去学习掌握 由于有的函数区别很小 这里只介绍一部
  • AD 画PCB布线时,走线网线高亮,其它不走线网络变黑的设置方法

    正常布线时显示效果 布线时所有PCB显示都正常 设置不走线网格变黑的方法 2 1 T P调出配置项 tools Preferences PCB Editor Display中Highlighting Options 然后勾选apply ma
  • 通过Pyecharts和Matplotlib对数据中的性别信息进行可视化

    前言 在进行描述性数据分析时会遇到需要进行分类统计的数据 例如性别 所在地区等等 本篇文章用数据中的性别信息为例并通过Pyecharts和Matplotlib对其进行可视化 1 导入数据 import pandas as pd import
  • 熵、联合熵、条件熵

    1 单变量的熵 离散型随机变量的熵 熵是一个随机变量不确定性的度量 一个随机变量的熵越大 意味着不确定性越大 换言之 该随机变量包含的信息量越大 必然事件是确定无疑的 并不含有不确定性 所以必然事件的熵应该是0 也就是说 必然事件不含有信息
  • MIPI(D-PHY)协议简介&测量方法&测试项简介

    作者 AirCity 2020 2 20 Aircity007 sina com 本文所有权归作者Aircity所有 1 MIPI Alliance 说起MIPI 就得说下这个MIPI Alliance 这个联盟聚集了很多知名IC大厂 手机
  • Kubernetes[k8s] 最新版1.27.3安装教程,使用containerd模式

    背景 公司使用的是交老的k8s版本 1 16 由于老版本的K8s对于现在很多新特性不支持 所以需要升级到新版本 目前2023年7月11日最新版本的k8s是v1 27 3 通过参考官方文档进行k8s部署工作 其中涉及到操作系统配置 防火墙配置