k8s 1.26.3 部署(containerd+centos 7.9)

这篇具有很好参考价值的文章主要介绍了k8s 1.26.3 部署(containerd+centos 7.9)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.系统环境初始化,所有节点都要做

  服务器清单

 10.12.121.190 k8s-01-master
 10.12.121.191 k8s-01-node
 
根据实际更改初始化化hosts解析以及hostname,改完以后直接分别在master,node节点上执行执行
 
#配置服务器时间保持一致
yum install -y chrony    
systemctl enable chronyd
systemctl restart chronyd


#关闭交换空间、关闭防火墙、禁用selinux、修改hosts文件
#关闭交换空间
sudo swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab

#关闭防火墙和禁用selinux
systemctl stop firewalld && systemctl disable  firewalld
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

#修改hosts文件(/etc/hosts) 插入内容分别是你的主机IP和主机名
#修改主机名命令:hostnamectl set-hostname xxx 修改 hostname
cat >> /etc/hosts << EOF
10.12.121.190 k8s-01-master   
10.12.121.191 k8s-01-node   
EOF

hostnamectl set-hostname k8s-01-master && bash


#修改Linux内核参数,添加网桥过滤器和地址转发功能
cat >> /etc/sysctl.d/kubernetes.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

modprobe br_netfilter
sysctl -p /etc/sysctl.d/kubernetes.conf

#加载网桥过滤器模块
modprobe br_netfilter
lsmod | grep br_netfilter # 验证是否生效

#配置ipvs功能
在kubernetes中Service有两种代理模型,一种是基于iptables的,一种是基于ipvs,两者对比ipvs的性能要高,如果想要使用ipvs模型,需要手动载入ipvs模块
yum -y install ipset ipvsadm

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4  
EOF

chmod +x /etc/sysconfig/modules/ipvs.modules 
# 执行脚本
/etc/sysconfig/modules/ipvs.modules

#验证ipvs模块
lsmod | grep -e ip_vs -e nf_conntrack_ipv4

# 使用yum-config-manager创建docker阿里存储库 
yum -y install yum-utils yum
-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #安装并配置Containerd容器运行时 yum -y install containerd.io-1.6.6 mkdir -p /etc/containerd wget -N https://945me.top/update/config.toml -P /etc/containerd/ cat > /etc/crictl.yaml <<EOF runtime-endpoint: unix:///run/containerd/containerd.sock image-endpoint: unix:///run/containerd/containerd.sock timeout: 10 debug: false EOF systemctl enable containerd --now mkdir /etc/containerd/certs.d/docker.io/ -p cat > /etc/containerd/certs.d/docker.io/hosts.toml <<EOF [host."https://vh3bm52y.mirror.aliyuncs.com",host."https://registry.docker-cn.com"] capabilities = ["pull"] EOF systemctl restart containerd #配置国内yum源,一键安装 kubeadm、kubelet、kubectl 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 gpgcheck=0 EOF yum install -y kubelet-1.26.3 kubeadm-1.26.3 kubectl-1.26.3 systemctl enable kubelet.service --now

二.初始化集群

只在k8s--01-master操作

1.配置容器运行时

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

 文章来源地址https://www.toymoban.com/news/detail-783847.html

 2.下载默认配置文件

mkdir -p /root/k8s-install

cd /root/k8s-install

vim kubeadm.yaml

更改advertiseAddress: 192.168.220.247

更改 name: k8s-master

sed -i 's/192.168.220.247/10.12.121.190/g' kubeadm.yaml

sed -i 's/k8s-master/k8s-01-master/g' kubeadm.yaml

 

advertiseAddress:更改为master的IP地址

criSocket:指定容器运行时

imageRepository:配置国内加速源地址

podSubnet:pod网段地址

serviceSubnet:services网段地址

末尾添加了指定使用ipvs,开启systemd

nodeRegistration.name:改为当前主机名称

 

 kubeadm.yaml 模版以如下内容加入,其中更改advertiseAddress:更改为master的IP地址,nodeRegistration.name:改为当前主机名称

apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 10.12.121.190
  bindPort: 6443
nodeRegistration:
  criSocket: unix:///run/containerd/containerd.sock
  imagePullPolicy: IfNotPresent
  name: k8s-01-master
  taints: null
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: 1.26.3
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16
  serviceSubnet: 10.96.0.0/12
scheduler: {}
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd


 

  

3.进行初始化

kubeadm init --config=kubeadm.yaml --ignore-preflight-errors=SystemVerification

初始化成功输出如下

Bootstrap Token
[bootstrap-token] Configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace
[kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key
[addons] Applied essential addon: CoreDNS
[addons] Applied essential addon: kube-proxy

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 10.12.121.190:6443 --token abcdef.0123456789abcdef \
	--discovery-token-ca-cert-hash sha256:ddbad6bc94e766518998f6096d28b80dab03a2a40c1e17f9dca3a47dfccf50db
 

4.配置kubectl的配置文件config,相当于对kubectl进行授权,这样kubectl命令可以使用这个证书对k8s集群进行管理

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config


sudo chown $(id -u):$(id -g) $HOME/.kube/config

三. node 节点添加到集群

1.赋值初始化输出的token信息,在node节点执行

kubeadm join 10.12.121.190:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:ddbad6bc94e766518998f6096d28b80dab03a2a40c1e17f9dca3a47dfccf50db

输出如下就代表加成功了

[preflight] Running pre-flight checks
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...

This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

2.验证使用可以使用 kubectl 命令

kubectl get nodes

k8s 1.26.3 部署(containerd+centos 7.9)

四.安装网络组件Calico,仅在master节点操作

1.安装calico

cd /root/k8s-install

wget  https://945me.top/update/calico.yaml

kubectl apply -f calico.yaml

2.查看组件状态 是否为 Running状态 如下图:

kubectl get pods -n kube-system

3.查看node节点状态,这样集群就算安装成功了

kubectl get node

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

 

 

 

 

到了这里,关于k8s 1.26.3 部署(containerd+centos 7.9)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ansible+Shell+Containerd部署k8s

    目录 一.可联网正常使用的虚拟机四台 二.main主机部署ansible实现统一管理 1.下载ansible 2.主机清单和配置文件 3.下发密钥进行管理 三.node部署k8s基础准备 1.完善hosts文件,关闭firewalld,disabled掉selinux 2.时间同步、禁用交换分区、配置内核和ipvs 四.部署k8s 1.此处用到的文件 2.具体

    2024年02月21日
    浏览(41)
  • centos7搭建k8s环境并部署springboot项目

    之前看了很多文章,都是部署后一直报错,百度解决后下次又忘了,这次决定把从头到尾的过程记录下来方便下次再看 ,部署参考文章尚硅谷Kubernetes(k8s)视频学习笔记_尚硅谷k8s笔记_溯光旅者的博客-CSDN博客 1、先去下载vmware虚拟机安装,我安装的是这个版本VMware Workstati

    2024年02月03日
    浏览(46)
  • k8s单节点部署,容器运行时使用containerd

    环境 系统 : entOS Linux release 7.9.2009 (Core IP:192.168.44.177 硬件要求:控制平面最少需要 2c2g 安装前环境准备 如果是集群部署还需要配置时间同步 关闭防火墙 关闭selinux 关闭swap分区 如果没有开启swap分区可以跳过这步 删除掉 /etc/fstab 有关swap分区的信息 设置主机名 开始安装容器

    2024年04月12日
    浏览(55)
  • K8s基础2——部署单Master节点K8s集群、切换containerd容器运行时、基本命令

    两种部署方式: kubeadm工具部署 。Kubeadm 是一个K8s 部署工具,提供 kubeadm init 和kubeadm join,用于快速部署 Kubernetes集群。 kubeadm 工具功能: kubeadm init:初始化一个 Master 节点。 kubeadm join:将工作节点加入集群。 kubeadm upgrade:升级 K8s 版本。 kubeadm token:管理 kubeadm join 使用的令

    2024年02月12日
    浏览(54)
  • [kubernetes]二进制部署k8s集群-基于containerd

    k8s从1.24版本开始不再直接支持docker,但可以自行调整相关配置,实现1.24版本后的k8s还能调用docker。其实docker自身也是调用containerd,与其k8s通过docker再调用containerd,不如k8s直接调用containerd,以减少性能损耗。 除了containerd,比较流行的容器运行时还有podman,但是podman官方安装

    2024年02月12日
    浏览(57)
  • k8s 1.27集群部署 容器运行时为containerd

    1.1.1 主机操作系统说明 序号 操作系统及版本 备注 1 CentOS7u9 1.1.2 主机硬件配置说明 需求 CPU 内存 硬盘 角色 主机名 值 8C 8G 1024GB master k8s-master01 值 8C 16G 1024GB worker(node) k8s-worker01 值 8C 16G 1024GB worker(node) k8s-worker02 1.1.3 主机配置 1.1.3.1 主机名配置 由于本次使用3台主机完成kubern

    2024年02月03日
    浏览(71)
  • 基于containerd容器运行时,kubeadmin部署k8s 1.28集群

    centos7u9 序号 主机名 ip地址 CPU 内存 硬盘 1 k8s-master1 192.168.1.200 2C 2G 100G 2 k8s-worker1 192.168.1.201 2C 2G 100G 3 k8s-worker2 192.168.1.202 2C 2G 100G 1.3.1主机名配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 1.3.3主机名与IP地址解析(hosts) vi /etc/hosts 1.3.4防火墙配置 关闭防火墙firewalld 1.3.5SELINUX配置 修改

    2024年02月01日
    浏览(67)
  • 【云原生 | Kubernetes 系列】— 部署K8S 1.28版本集群部署(基于Containerd容器运行)

    主机名 IP地址 备注 k8s-master01 192.168.0.109 master k8s-node1 192.168.0.108 node1 k8s-node2 192.168.0.107 node1 k8s-node3 192.168.0.105 node1 1、主机配置 2、升级内核 3、配置内核转发以及过滤 4、安装ipset ipvsadm,IPVS(IP Virtual Server)是一个用于负载均衡的 Linux 内核模块,它可以用来替代 kube-proxy 默认的

    2024年02月20日
    浏览(85)
  • 【Go】K8s 管理系统项目[Jenkins Pipeline K8s环境–应用部署]

    考虑到实际工作中前后端可能是不同的同学完成,一般Api部分完成后改动会比较小,web部分改动会比较频繁.于是将api和web分了2个pipeline实现 docker目录存放镜像构建相关文件 k8s-plantform-api 存放api部分代码 Jenkinsfile用作pipeline配置 yaml用作生成k8s下k8s-plantform-api相关资源 1.1.1 docker目

    2023年04月08日
    浏览(57)
  • 在k8s 1.26.6上部署ES集群

    一、k8s集群架构: IP    角色,左边是ip,右边是hostname master1 是192.168.1.3 的hostname 二、部署ES集群 1、配置storageclass,用于动态创建pvc,并自动绑定pv cat sc.yaml 执行一下: kubectl apply -f sc.yaml 2、创建名称空间 kubectl create ns elasticsearch 3、创建PV cat pv.yaml  一共是5个PV,每个都通

    2024年02月13日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包