使用kubeadm部署kubernetes 1.24.3

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

 节点信息:

172.31.7.101   master1     控制节点
172.31.7.102     node1     工作节点
172.31.7.103     node2     工作节点

 这里使用containerd作为运行时,部署可参照

https://blog.csdn.net/weixin_46476452/article/details/127670046

目录

一、系统环境初始化

二、配置apt源、下载kubeadm

三、安装cni

四、初始化kubernetes

五、配置节点认证,加入集群

六、部署calico网络插件

七、验证

八、报错处理


一、系统环境初始化

1、关闭swap
# swapoff  -a
# sed -i 's@/swap@#/swap@' /etc/fstab

2、时钟同步
如果没有时钟服务下载一个
# apt install chrony
# systemctl status chronyd
# # systemctl status chronyd

3、配置内核参数
   (1)、加载模块
     # modprobe br_netfilter
   (2)、添加内核参数
     # echo -e "net.ipv4.ip_forward = 1\nnet.bridge.bridge-nf-call-iptables = 1 " >> /etc/sysctl.conf

   (3)、配置生效
     # sysctl -p
     net.ipv4.ip_forward = 1
     net.bridge.bridge-nf-call-iptables = 1

 我系统防火墙本身就已经关闭,因此未列出,请知悉

二、配置apt源、下载kubeadm

1、安装https包传输工具apt-transport-https,支持https的apt源
# apt-get update && apt-get install -y apt-transport-https

2、把key导入,用于校验包的完整性
# curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
 
3、此时还没用添加仓库源,因此没有kubeadm
# apt-cache madison kubeadm
 N: Unable to locate package kubeadm

3、添加kubeadm镜像阿里云的仓库源
# cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
> deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
> EOF

4、更新仓库
# apt-get update

 可以看见很多版本的kubeadm包,都是阿里云镜像仓库提供的,版本号要与k8s版本号保持一致package.nymcni.com,kubernetes,云原生,容器

  下载 1.24.3版本

# apt-get install kubeadm=1.24.3-00 kubectl=1.24.3-00 kubelet=1.24.3-00

 

三、安装cni

cni 是 K8s 中标准调用网络实现的接口。Kubelet 通过这个标准的 API 来调用不同的网络插件以实现不同的网络配置方式。实现了这个接口的就是 CNI 插件,它实现了一系列的 CNI API 接口。常见的 CNI 插件包括 Calico、flannel

Releases · containernetworking/plugins · GitHub

1、下载cni
# wget https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgz
 

2、cni解压(提前创建/opt/cni/bin/目录)
# tar xvf cni-plugins-linux-amd64-v1.1.1.tgz -C /opt/cni/bin/

 四、初始化kubernetes

1、下载镜像(提前下载,初始化集群的时候可节省时间)

      1.1、列出我们初始化v1.24.3版本kubernetes,所需要的镜像

package.nymcni.com,kubernetes,云原生,容器 这些镜像默认是使用Google官方镜像仓库,无法直接访问,我们可以从国内的阿里镜像仓库下载

     1.2、编写脚本,执行脚本下载镜像

root@master1:/usr/local/src# cat images-down.sh
#!/bin/bash
nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.24.3
nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.24.3
nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.24.3
nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.24.3
nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.7
nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.3-0

      1.3、下载完毕

package.nymcni.com,kubernetes,云原生,容器

   2、修改配置文件

# vim /etc/containerd/config.toml

61  sandbox_image = "registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.7"
127 SystemdCgroup = true

将61行Google镜像替换成阿里云的镜像
将127行值改为true

 在K8S中创建容器时默认使用google官方镜像仓库的镜像k8s.gcr.io/pause:3.7 ,需要修改为国内的镜像 (3.7版本是根据上面#kubeadm config images list --kubernetes-version v1.24.3 列出的),该镜像是封装POD底层网络的,实现一个POD内多个容器公用同一个网络

   3、kubeadm初始化:

root@master1:~# kubeadm init --apiserver-advertise-address=172.31.7.101 \
> --apiserver-bind-port=6443  \
> --kubernetes-version=v1.24.3  \
> --pod-network-cidr=10.100.0.0/16 \
> --service-cidr=10.200.0.0/16 \
> --service-dns-domain=cluster.local \
> --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers \
> --ignore-preflight-errors=swap

命令注解:

--apiserver-advertise-address=172.31.7.101(监听地址就是当前本机ip地址)

--apiserver-bind-port=6443 (apiserver监听端口默认就是6443)

--kubernetes-version=v1.24.3 (当前K8S实际版本号)

--pod-network-cidr=10.100.0.0/16  (pod网络)
--service-cidr=10.200.0.0/16   (service网络,和pod网络不能一样)

--service-dns-domain=cluster.local  (service域名后缀,默认是cluster.local)
--image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers (把镜像仓库指向阿里云的仓库)
--ignore-preflight-errors=swap   (忽略因开启swap而报错)

 初始化成功

package.nymcni.com,kubernetes,云原生,容器

上面的回显包括两四部分信息

第一:表示初始化成功

第二:表示某个节点想要使用集群需要配置认证文件,具体命令以给出

第三:需要安装网络插件flannel或者calico,并且给出了下载地址

第四: 添加worker节点需要执行的指令

五、配置节点认证,加入集群

刚初始化完成后是无法使用kubectl get查看到资源信息的,因为节点上的api service默认会连接本机的8080端口而不是api service默认的6443端口,因此各节点都需要config文件来获取这些信息package.nymcni.com,kubernetes,云原生,容器

查看config配置文件的信息
root@master1:~# kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://172.31.7.101:6443

指定了连接172.31.7.101:6443,
DATA+OMITTED并且使用了证书做认证,因此每个节点都需要有这个文件才能连接到api service

 kubectl默认使用$HOME/.kube/config文件,向集群提供认证信息的

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

将 $HOME/.kube/config文件拷贝到两个node节点上,否则会有认证问题服务正常执行kubectl

root@node1:~# mkdir /root/.kube/
root@node2:~# mkdir /root/.kube/

root@master1:~# scp /root/.kube/config node1:/root/.kube/
root@master1:~# scp /root/.kube/config node2:/root/.kube/

 依次加入worker节点

root@node1:~# kubeadm join 172.31.7.101:6443 --token qwqjvh.0pg5kl4crvetbjce \
>         --discovery-token-ca-cert-hash sha256:f02108644fd8bb51862765f604ee5dc59630e66d535b25191bf32644df835871

六、部署calico网络插件

calico.yaml官网路径如下截图

Customize Calico configuration

package.nymcni.com,kubernetes,云原生,容器

1、下载calico.yaml

curl https://raw.githubusercontent.com/projectcalico/calico/v3.24.4/manifests/calico.yaml -O

2、修改calico.yaml

它默认的是192.168.0.0/16 把这个地址修改成我们初始化时给定的pod地址

package.nymcni.com,kubernetes,云原生,容器

3、启动calico网络插件

# kubectl apply -f calico.yaml 

七、验证

1、查看节点状态,都已ready

package.nymcni.com,kubernetes,云原生,容器

2、查看pod状态

package.nymcni.com,kubernetes,云原生,容器

3、服务测试

root@master1:~# cat nginx.yaml
kind: Deployment
#apiVersion: extensions/v1beta1
apiVersion: apps/v1
metadata:
  labels:
    app: myserver-nginx-deployment-label
  name: myserver-nginx-deployment
  namespace: myserver
spec:
  replicas: 1
  selector:
    matchLabels:
      app: myserver-nginx-selector
  template:
    metadata:
      labels:
        app: myserver-nginx-selector
    spec:
      containers:
      - name: myserver-nginx-container
        image: nginx
        #command: ["/apps/tomcat/bin/run_tomcat.sh"]
        #imagePullPolicy: IfNotPresent
        imagePullPolicy: Always
        ports:
        - containerPort: 80
          protocol: TCP
          name: http
        - containerPort: 443
          protocol: TCP
          name: https
        env:
        - name: "password"
          value: "123"
        - name: "age"
          value: "18"

---
kind: Service
apiVersion: v1
metadata:
  labels:
    app: myserver-nginx-service-label
  name: myserver-nginx-service
  namespace: myserver
spec:
  type: NodePort
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
    nodePort: 30004
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
    nodePort: 30443
  selector:
    app: myserver-nginx-selector

 创建nginx.yaml资源

root@master1:~# kubectl create ns myserver
namespace/myserver created

root@master1:~# kubectl apply -f nginx.yaml
deployment.apps/myserver-nginx-deployment created
service/myserver-nginx-service created

 访问任意节点的30004端口

package.nymcni.com,kubernetes,云原生,容器

package.nymcni.com,kubernetes,云原生,容器

 八、报错处理

          第一次初始化不成功,看了下containerd服务状态有pause字段告警

package.nymcni.com,kubernetes,云原生,容器

 恢复到初始化前状态

还原初始化之前状态
# kubeadm reset
# systemctl restart containerd.service

 查看配置文件发现镜像路径少一个符号,导致拉不到镜像,修改后再进行初始化就OK了文章来源地址https://www.toymoban.com/news/detail-638844.html

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

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

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

相关文章

  • 云原生|kubernetes|centos7下的kubeadm部署的集群内在线部署kubesphere(外部etcd)

    本文将主要就在centos7操作系统下已有的一个利用kubeadm部署的集群内在线安装kubesphere做一个介绍,该kubernetes集群是使用的etcd外部集群。 kubernetes集群的搭建本文不做过多介绍,具体的搭建流程见我的博客: 云原生|kubernetes|kubeadm部署高可用集群(一)使用外部etcd集群_kubeadm

    2024年02月11日
    浏览(29)
  • 云原生Kubernetes: Kubeadm部署K8S 1.29版本 单Master架构

    目录 一、实验 1.环境 2.K8S master节点环境准备 3.K8S master节点安装kubelet、kubeadm、kubectl 3.K8S node节点环境准备与软件安装 4.K8S master节点部署服务 5.K8S node节点部署 6.K8S master节点查看集群 7.容器网络(CNI)部署 8.K8S 集群测试 二、问题 1.calico生成资源报错 2.为何要安装docker和ci-d

    2024年02月01日
    浏览(43)
  • 使用 kubeadm 部署 kubernetes 1.27.1 版本

    目录 前言 一、搭建前的准备 1. 搭建k8s的平台规划 2. 服务器硬件配置要求 3. 搭建部署的方式 二、搭建流程 1. kubeadm搭建方式 a. 准备工作,系统初始化 c. 设置一下ipv4,否则会失败(此处为坑,不设置无法初始化成功) d. 安装containerd  e. 安装kubectl、kubelet、kubeadm  f. master节点

    2024年02月06日
    浏览(25)
  • 【kubernetes】Debian使用Kubeadm部署Kubernetes失败:Connection Refused

    这篇文章也可以在我的博客中查看 今天废话不多说直接解决一个阴间问题 在部署kubernetes后(执行完 kubeadm init 后),执行任何 kubectl 命令,都会报以下错误: 此后执行 kubectl get pods -A 你会看到一些容器在无规律地被摧毁 在过一段时间后, Api-server 直接开摆,你无法再连接上

    2024年02月06日
    浏览(30)
  • Kubernetes技术--使用kubeadm快速部署一个K8s集群

    这里我们配置一个 单master集群 。( 一个Master节点,多个Node节点 ) 1.硬件环境准备 一台或多台机器,操作系统 CentOS7.x-86_x64 。这里我们使用安装了CentOS7的三台虚拟机 硬件配置 : 2GB或更多RAM , 2个CPU或更多CPU , 硬盘30GB或更多 2.主机名称和IP地址规划 3. 初始化准备工作 (1).关

    2024年02月10日
    浏览(35)
  • centos安装部署Kubernetes(k8s)步骤使用kubeadm方式

    机器地址: 192.168.0.35 k8s-master 192.168.0.39 k8s-node1 192.168.0.116 k8s-node2 修改每台机器的名字 关闭防火墙和selinux 临时关闭selinux: 永久关闭: 修改selinux为disabled或者permissive 重启生效 配置本地解析 确保每个节点MAC地址和 product_uuid 的唯一性 同步时间 如果各机器上时间都没有问题

    2024年02月06日
    浏览(41)
  • kubeadm部署k8sv1.24使用cri-docker做为CRI

    测试使用cri-docker做为containerd和docker的中间层垫片。 IP 系统 主机名 10.0.6.5 ubuntu 22.04.3 jammy master01.kktb.org 10.0.6.6 ubuntu 22.04.3 jammy master02.kktb.org 10.0.6.7 ubuntu 22.04.3 jammy master03.kktb.org 步骤: 系统优化 禁用swap,设置ip_forward hosts地址配置 等 配置docker源 配置kubernetes源 kubeadm初始化

    2024年02月07日
    浏览(27)
  • CentOS 7/8使用kubeadm部署kubernets(k8s)集群【附阿里云实验室】

    好消息好消息,阿里云全线降价,大量服务提供免费甚至永久的试用,赶紧来薅大厂羊毛吧,坐电梯即可直达! 送福利!阿里云热门产品免费领(含ECS),点击进入 :https://click.aliyun.com/m/1000370359/ 送福利!阿里云热门产品免费领(含ECS),点击进入 :https://click.aliyun.com/m/

    2023年04月22日
    浏览(31)
  • CentOS 7/8使用kubeadm部署kubernets(k8s)集群【附阿里云实验室】内有福利

    好消息好消息,阿里云全线降价,大量服务提供免费甚至永久的试用,赶紧来薅大厂羊毛吧,坐电梯即可直达! 送福利!阿里云热门产品免费领(含ECS),点击进入 :https://click.aliyun.com/m/1000370359/ 送福利!阿里云热门产品免费领(含ECS),点击进入 :https://click.aliyun.com/m/

    2023年04月27日
    浏览(39)
  • 【Kubernetes】Kubernetes之Kubeadm部署

    集群服务器主机名 服务器IP地址 集群服务器部署的服务 master(2C/4G,cpu核心数要求大于2) 192.168.145.15 docker、kubeadm、kubelet、kubectl、flannel node01(2C/2G) 192.168.145.30 docker、kubeadm、kubelet、kubectl、flannel node02(2C/2G) 192.168.145.45 docker、kubeadm、kubelet、kubectl、flannel 4.1 配置 master0

    2024年02月14日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包