kubeadm方式部署k8s最新版本V1.26.2

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

Kubernetes核心概念

Master主要负责资源调度,控制副本,和提供统一访问集群的入口。--核心节点也是管理节点

Node是Kubernetes集群架构中运行Pod的服务节点。Node是Kubernetes集群操作的单元,用来承载被分配Pod的运行,是Pod运行的宿主机,由Master管理,并汇报容器状态给Master,同时根据Master要求管理容器生命周期。

Node节点的IP地址,是Kubernetes集群中每个节点的物理网卡的IP地址,是真是存在的物理网络,所有属于这个网络的服务器之间都能通过这个网络直接通信;

Pod直译是豆荚,可以把容器想像成豆荚里的豆子,把一个或多个关系紧密的豆子包在一起就是豆荚(一个Pod)。在k8s中我们不会直接操作容器,而是把容器包装成Pod再进行管理,运行于Node节点上, 若干相关容器的组合。Pod内包含的容器运行在同一宿主机上,使用相同的网络命名空间、IP地址和端口,能够通过localhost进行通信。Pod是k8s进行创建、调度和管理的最小单位,它提供了比容器更高层次的抽象,使得部署和管理更加灵活。一个Pod可以包含一个容器或者多个相关容器。Pod 就是 k8s 世界里的"应用";而一个应用,可以由多个容器组成。

pause容器每个Pod中都有一个pause容器,pause容器做为Pod的网络接入点,Pod中其他的容器会使用容器映射模式启动并接入到这个pause容器。

Pod Volume,数据卷,挂载宿主机文件、目录或者外部存储到Pod中,为应用服务提供存储,也可以解决Pod中容器之间共享数据。

服务器准备:

192.168.197.136  (k8s-master)

192.168.197.137 (k8s-node1)

192.168.197.138 (k8s-node2)

主机名修改

hostnamectl set-hostname k8s-master

hostnamectl set-hostname k8s-node1

hostnamectl set-hostname k8s-node2

关闭防火墙和selinux  

systemctl stop firewalld && systemctl disable firewalld

setenforce 0

vim /etc/selinux/config

kubeadm方式部署k8s最新版本V1.26.2

配置一下本地解析

vim  /etc/hosts

kubeadm方式部署k8s最新版本V1.26.2

安装docker应用

每个节点都需要下载

yum install -y yum-utils device-mapper-persistent-data lvm2 git

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install docker-ce -y

如果使用的挂载磁盘则需要更改docker的数据目录

如果是启动过的docker则需要停止docker服务 然后把  /var/lib/docker/目录下的数据移动到新的目录   mv  /var/lib/docker/  /data/docker/

修改docker默认数据存储目录配置,在/etc/docker/daemon.json文件添加 以下内容,若是没有/etc/docker/daemon.json文件,则新建该文件

vim /etc/docker/daemon.json

{

 "data-root": "/data/docker"

}

systemctl start docker   启动

systemctl enable docker  设置开机自启

关闭swap分区

Kubernetes 1.8开始要求关闭系统的Swap,如果不关闭,默认配置下kubelet将无法启动。方法一,通过kubelet的启动参数–fail-swap-on=false更改这个限制。方法二,关闭系统的Swap。

每个节点都需要关闭

swapoff -a

vim /etc/fstab  注释掉SWAP的自动挂载

kubeadm方式部署k8s最新版本V1.26.2

使用free -m确认swap已经关闭。

kubeadm方式部署k8s最新版本V1.26.2

拉取docker镜像

初始化的时候,它会自动拉取镜像但是自动拉取用的是k8s官网的源地址容易失败所以手动拉取aliyun的镜像注意拉取的docker镜像的版本必须要和kubelet、kubectl的版本保持一致。在下面初始化时直接指定阿里云的镜像

vim dockerpull.sh

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.26.2

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.26.2

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.26.2

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.26.2

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.9.3

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.6-0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9

bash dockerpull.sh  执行脚本拉取镜像

docker images   看下镜像是否都拉取成功

kubeadm方式部署k8s最新版本V1.26.2

cri-dockerd安装

注意部署最新版本1.26.2  默认不在是使用docker容器所以需要下载一个插件

所有节点都需要下载

wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.1/cri-dockerd-0.3.1-3.el7.x86_64.rpm

rpm -ivh  cri-dockerd-0.3.1-3.el7.x86_64.rpm

修改/usr/lib/systemd/system/cri-docker.service文件中ExecStart配置kubelet使用pause镜像

vim /usr/lib/systemd/system/cri-docker.service

注释掉原来的第十行添加下面的配置

ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9

kubeadm方式部署k8s最新版本V1.26.2

systemctl daemon-reload

systemctl enable --now cri-docker

加载ipvs相关内核模块

vim mod.sh

#!/bin/bash

modprobe ip_vs

modprobe ip_vs_rr

modprobe ip_vs_wrr

modprobe ip_vs_sh

modprobe nf_conntrack_ipv4

modprobe br_netfilter

chmod +x mod.sh

bash   mod.sh

scp mod.sh  k8s-node1:/root/   发送后记得执行一下

scp mod.sh  k8s-node2:/root/ 发送后记得执行一下

vim /etc/rc.local   如果重新开机,需要重新加载(所以写在 /etc/rc.local 中开机自动加载)

kubeadm方式部署k8s最新版本V1.26.2

chmod +x /etc/rc.local

配置转发相关参数,否则可能会出错

cat <<EOF >  /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

vm.swappiness=0

EOF

sysctl --system   使配置生效

lsmod | grep ip_vs 查看是否加载成功

kubeadm方式部署k8s最新版本V1.26.2

安装kubeadm和kubelet:

所有节点都需要安装

配置阿里云的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

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

 scp /etc/yum.repos.d/kubernetes.repo   k8s-node1:/etc/yum.repos.d/kubernetes.repo

 scp /etc/yum.repos.d/kubernetes.repo   k8s-node2:/etc/yum.repos.d/kubernetes.repo

安装

yum makecache fast -y

yum install -y kubelet kubeadm kubectl ipvsadm  #注意,这样默认是下载最新版本

如果想下载旧版本,后面要跟上指定的版本号

yum install -y kubelet-1.22.2-0.x86_64 kubeadm-1.22.2-0.x86_64 kubectl-1.22.2-0.x86_64 ipvsadm  

启动kubelet

systemctl daemon-reload

systemctl enable kubelet && systemctl restart kubelet

systemctl status kubelet查看一下状态你会发现报错误信息;(每个节点都会报错),不用管master节点初始化之后就好了。

kubeadm方式部署k8s最新版本V1.26.2

配置master节点初始化

kubeadm init --help可以查看命令的具体参数用法

在master节点执行初始化(node节点不用执行)

参数详情:

apiserver-advertise-address  指定apiserver的IP,即master节点的IP

image-repository  设置镜像仓库为国内的阿里云镜像仓库

kubernetes-version  设置k8s的版本,跟步骤三的kubeadm版本一致

service-cidr  这是设置node节点的网络的,暂时这样设置

pod-network-cidr  这是设置node节点的网络的,暂时这样设置

cri-socket  设置cri使用cri-dockerd

kubeadm init --apiserver-advertise-address=192.168.197.136 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.26.2 --service-cidr=10.168.0.0/12 --pod-network-cidr=10.244.0.0/16 --cri-socket unix:///var/run/cri-dockerd.sock  --ignore-preflight-errors=all

执行完初始化的命令 查看一下回显是否成功

echo $?

kubeadm方式部署k8s最新版本V1.26.2

初始化完成后根据提示的命令操作即可

 mkdir -p $HOME/.kube

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

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

如果使用的root用户可以操作这条命令

export KUBECONFIG=/etc/kubernetes/admin.conf

kubectl get nodes   操作完以上步骤查看一下node节点已经可以看到master了

kubeadm方式部署k8s最新版本V1.26.2

配置flannel网络插件

完成master节点的时候k8s已经叫我们去配置pod网络了。在k8s系统上Pod网络的实现需要依赖于第三方插件进行种类有很多我们这里使用的flannel。

cd ~ && mkdir flannel && cd flannel

wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

vim kube-flannel.yml   查看一下镜像版本

kubeadm方式部署k8s最新版本V1.26.2

kubeadm方式部署k8s最新版本V1.26.2

拉取要用到的镜像所有节点都要拉取

docker pull docker.io/flannel/flannel:v0.21.2

docker pull docker.io/flannel/flannel-cni-plugin:v1.1.2

kubectl apply -f kube-flannel.yml     运行

查看一下master节点的状态

从NoReady  变成了 Ready 那么我们的flannel就部署好了

kubeadm方式部署k8s最新版本V1.26.2

Node节点加入集群操作命令

注意在原有加入集群操作命令加上--cri-socket unix:///var/run/cri-dockerd.sock

Node1 节点操作

kubeadm join 192.168.197.136:6443 --token 8isrry.zd97vxqtsg7vw2dx \

        --discovery-token-ca-cert-hash sha256:e2efbe684211b437d40c03a2e512f31982716caa38b51c7f88f1516c166de76e  --cri-socket unix:///var/run/cri-dockerd.sock

加入node1节点时报错,发现是忘记修改主机名导致的(开始修改过主机名没有这个报错)

kubeadm方式部署k8s最新版本V1.26.2

所有机器修改一下主机名

 hostnamectl set-hostname k8s-master

 hostnamectl set-hostname k8s-node1

 hostnamectl set-hostname k8s-node2

然后node1节点要删除刚刚生成的证书重新执行加入集群的命名

rm -rf  /etc/kubernetes/pki/ca.crt

Node所有节点操作

kubeadm join 192.168.197.136:6443 --token 8isrry.zd97vxqtsg7vw2dx \

        --discovery-token-ca-cert-hash sha256:e2efbe684211b437d40c03a2e512f31982716caa38b51c7f88f1516c166de76e  --cri-socket unix:///var/run/cri-dockerd.sock

然后来到master节点查看一下node信息

kubectl get nodes

kubeadm方式部署k8s最新版本V1.26.2

kubectl get pods --namespace kube-flannel    看下flannel运行状态

kubeadm方式部署k8s最新版本V1.26.2

Node两个节点也已经加入成功

kubeadm方式部署k8s最新版本V1.26.2

删除node节点操作

kubectl delete nodes node节点名称

添加已删除node节点操作

1.停止被删除node节点的kubectl systemctl stop kubelet

2.删除相关文件  rm -rf /etc/kubernetes/*

3.添加节点 注意token未失效(token有效期24小时)才能这样操作 kubeadm join 192.168.197.136:6443 --token 8isrry.zd97vxqtsg7vw2dx         --discovery-token-ca-cert-hash sha256:e2efbe684211b437d40c03a2e512f31982716caa38b51c7f88f1516c166de76e  --cri-socket unix:///var/run/cri-dockerd.sock   

Token过期后有新的节点加入操作

kubeadm token create --print-join-command Token重新生成的命令

重新生成的token加上 --cri-socket unix:///var/run/cri-dockerd.sock  参数在新节点执行即可文章来源地址https://www.toymoban.com/news/detail-453033.html

到了这里,关于kubeadm方式部署k8s最新版本V1.26.2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.26.0版本

    官方文档: 二进制下载地址 环境规划: pod网段:10.244.0.0/16 service网段:10.10.0.0/16 注意: pod和service网段不可冲突,如果冲突会导致K8S集群安装失败。 容器运行时本次使用containerd。 主机名 IP地址 操作系统 master-1 16.32.15.200 CentOS7.8 node-1 16.32.15.201 CentOS7.8 node-2 16.32.15.202 CentOS

    2024年02月10日
    浏览(47)
  • Centos7安装部署k8s(kubernetes)最新v1.27.1版本超详细安装教程

    从零开始的k8s安装 硬件配置要求 cpu = 2核 硬盘 = 20G 内存 = 2G 节点数量建议为奇数(3, 5, 7, 9等)(1台好像也能搭,没试过) 以下命令出除特殊要求外,其余都建议在master主机执行 本教程配置如下 主机名 IP 配置 master 192.168.42.150 2核+2G+20G node1 192.168.42.151 2核+2G+20G node2 192.168.

    2024年02月11日
    浏览(57)
  • 【C站首发】全网最新Kubernetes(K8s)1.28版本探秘及部署 基于Containerd容器运行时(100年证书kubeadm)

    序号 操作系统及版本 备注 1 CentOS7u9 需求 CPU 内存 硬盘 角色 主机名 值 8C 8G 1024GB master k8s-master01 值 8C 16G 1024GB worker(node) k8s-worker01 值 8C 16G 1024GB worker(node) k8s-worker02 1.3.1 主机名配置 由于本次使用3台主机完成kubernetes集群部署,其中1台为master节点,名称为k8s-master01;其中2台为wor

    2024年02月08日
    浏览(66)
  • 用kubeadm方式部署k8s

    Kubernetes v1.24 移除docker-shim的支持,而Docker Engine默认又不支持CRI标准,因此二者默认无法再直接集成。为此,Mirantis和Docker联合创建了cri-dockerd项目,用于为Docker Engine提供一个能够支持到CRI规范的桥梁,从而能够让Docker作为Kubernetes容器引擎。 指定依赖镜像地址 : --apiserver-a

    2024年02月19日
    浏览(45)
  • 【云原生-K8s】kubeadm搭建安装k8s集群v1.25版本完整教程【docker、网络插件calico、中间层cri-docker】

    从 k8s 1.24开始,dockershim已经从kubelet中移除,但因为历史问题docker却不支持kubernetes主推的CRI(容器运行时接口)标准,所以docker不能再作为k8s的容器运行时了,即从k8s v1.24开始不再使用docker了 但是如果想继续使用docker的话,可以在kubelet和docker之间加上一个中间层cri-docker。

    2024年02月03日
    浏览(44)
  • Kubeadm方式搭建K8s集群【1.27.0版本】

    官方文档: 二进制下载地址 环境规划: pod网段:10.244.0.0/16 service网段:10.10.0.0/16 注意: pod和service网段不可冲突,如果冲突会导致K8S集群安装失败。 主机名 IP地址 操作系统 master-1 16.32.15.200 CentOS7.8 node-1 16.32.15.201 CentOS7.8 node-2 16.32.15.202 CentOS7.8 1、关闭防火墙 2、配置域名解

    2024年02月04日
    浏览(72)
  • Kubeadm方式搭建K8s集群 1.27.0版本

    目录 一、集群规划 二、系统初始化准备(所有节点同步操作) 三、安装并配置cri-docker插件 四、安装kubeadm(所有节点同步操作) 五、初始化集群 六、Node节点添加到集群 七、安装网络组件Calico 八、测试codedns解析可用性 环境规划: pod网段:10.244.0.0/16 service网段:10.10.0.0/16 注

    2024年02月13日
    浏览(67)
  • 使用kubeadm方式快速部署一个K8S集群

    目录 一、环境准备 二、环境初始化  三、在所有主机上安装相关软件 1、安装docker 2、配置k8s的yum源 3、安装kubelet、kubeadm、kubectl 四、部署Kubernetes Master 五、加入Kubernets Node 六、部署CNI网络插件 七、测试k8s集群 我的是CentOS7系统,然后准备三台虚拟主机 一台master,和两台no

    2024年02月11日
    浏览(63)
  • Kubeadm方式搭建K8s高可用集群【1.23.0版本】

    官方文档: 二进制下载地址 环境规划: pod网段:10.244.0.0/16 service网段:10.10.0.0/16 注意: pod和service网段不可冲突,如果冲突会导致K8S集群安装失败。 主机名 IP地址 操作系统 备注 master-1 16.32.15.200 CentOS7.8 安装keepalived、nginx实现高可用 master-2 16.32.15.201 CentOS7.8 安装keepalived、

    2023年04月22日
    浏览(54)
  • k8s(kubernetes)的两种部署方式(kubeadm)

    在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 一台或多台机器,操作系统CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多 可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点禁止swap分区 角色 IP master 192.168.1.11 node1 192.16

    2024年02月22日
    浏览(58)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包