使用 kubeadm 部署 kubernetes 1.27.1 版本

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

目录

前言

一、搭建前的准备

1. 搭建k8s的平台规划

2. 服务器硬件配置要求

3. 搭建部署的方式

二、搭建流程

1. kubeadm搭建方式

a. 准备工作,系统初始化

c. 设置一下ipv4,否则会失败(此处为坑,不设置无法初始化成功)

d. 安装containerd 

e. 安装kubectl、kubelet、kubeadm 

f. master节点进行初始化操作

2. 二进制搭建流程

        a. 创建多台虚拟机,安装linux操作系统

        b. 操作系统初始化(各种关关关)

        c. 为etcd和apiserver自签证书(相当于门禁卡,保证互通)

        d. 部署etcd集群

        e. 部署master组件

        f. 部署node组件

        g. 部署集群网络

总结


前言

比起君子讷于言而敏于行,我更喜欢君子善于言且敏于行。


一、搭建前的准备

1. 搭建k8s的平台规划

单master集群:只有一个master,管理多个node节点。

使用 kubeadm 部署 kubernetes 1.27.1 版本

多master集群:拥有多个master,管理多个node节点。高可用模式。比单master集群多一个负载均衡的步骤。

 使用 kubeadm 部署 kubernetes 1.27.1 版本

test环境搭建,因此采用单master集群,如后续有需要可再增加master。

2. 服务器硬件配置要求

master节点:

测试环境 生产环境
CPU 2 8
内存

4G

16G
硬盘 20G 100G

node节点:

测试环境 生产环境
CPU 4 16
内存 8G

64G

硬盘

40G

500G

3. 搭建部署的方式

目前常见的有两种方式:

1)kubeadm方式

        kubeadm是k8s的一个部署工具,部署方式比较简单。只需要用到两个命令,kubeadm init(初始化)和 kubeadm join(将node节点加入到master中)。可以快速部署k8s集群。优点是快速,无需额外自己处理。比较常见且节约时间

官方链接:https://kubernetes.io/docs/reference/setup-tools/kubeadm/

2)二进制方式

        从 github 下载二进制包,手动部署每个组件,过程比较麻烦。优点是,遇到问题后可以精准定位,有利于后续维护。毕竟是自己一步一步操作的,更清楚里面的弯弯绕绕~

二、搭建流程

1. kubeadm搭建方式

大致流程:

        1)创建一个master节点 kubeadm init

        2)将node节点加入到当前集群中 kubeadm join <master节点的ip和端口>

        3)配置网络插件和测试k8s集群

机器配置:
        -- 准备了一台master,一台node。硬件配置CPU 2核,内存251G,硬盘500G
        -- 机器之间可以互相ping通,操作系统为CentOS7
        -- 禁止swap分区
        -- 可以拉取镜像

                                master: 192.10.18.102
                                node: 192.10.18.103

a. 准备工作,系统初始化

        由于自己用的是之前配置好的旧物理机,所以跳过此流程。如果需要用虚拟机的话。要进行安装3台Centos7.x的操作系统,之后进行如下初始化:

1)关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

2)关闭selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config   #永久关闭
setenforce 0  #临时关闭

3)关闭swap

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

4)设置主机名

hostnamectl set-hostname <hostname>

5)只在master添加hosts

cat >> /etc/hosts << EOF
ip master
ip node1
ip node2
EOF

6)将桥接的ipv4流量传递到iptables的链,配置内核参数和优化 

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

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

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

net.ipv4.ip_forward = 1

EOF


sysctl --system   #生效命令

7)时间同步

yum install ntpdate -y
ntpdate time.windows.com

8)安装ipset、ipvsadm 

yum -y install conntrack ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git

cat > /etc/modules-load.d/ipvs.conf <<EOF
# Load IPVS at boot
ip_vs

ip_vs_rr

ip_vs_wrr

ip_vs_sh

nf_conntrack

nf_conntrack_ipv4

EOF


systemctl enable --now systemd-modules-load.service
###注!!!若此处失败,可能是因为内核版本低导致的,可升级内核后,再执行此命令#####


#确认内核模块加载成功
lsmod |egrep "ip_vs|nf_conntrack_ipv4"

b. 升级内核(根据自己情况进行选择,满足时可不升级)

1)查看系统版本

cat /etc/redhat-release


2)查看当前内核版本

uname -r


3)检查是否安装ELRepo

yum  --disablerepo="*"  --enablerepo="elrepo-kernel"  list  available

看到error说明没有安装ELRepo


4)升级安装ELRepo
安装

yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

或升级

rpm -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

5)查看可用安装包, 长期维护版本为lt,最新主线稳定版为ml

yum  --disablerepo="*"  --enablerepo="elrepo-kernel"  list  available

6)安装最新的内核

yum  --enablerepo=elrepo-kernel  install  -y  kernel-lt

7)查看可用内核版本及启动顺序

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg

8)安装辅助工具(非必须,有些系统自带该工具):grub2-pc

yum install -y grub2-pc

9)设置内核默认启动顺序

grub2-set-default 0
vim /etc/default/grub
GRUB_DEFAULT=0  #这里从原来的saved改为0


10)生成grub配置文件
# 运行grub2-mkconfig命令来重新创建内核配置

grub2-mkconfig -o /boot/grub2/grub.cfg


11)重启机器

reboot

12)查看内核版本是否正确

uname -r

13)安装 yum-utils 工具
当系统安装的内核大于3个时,会自动删除旧的内核版本或自己查看已经安装的内核后手动yum  remove -y 进行删除旧版本

yum install -y  yum-utils

14)删除旧的工具包

yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64

15)安装新版本的工具包

yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-lt-tools.x86_64

16)查看已安装内核

rpm -qa | grep kernel

c. 设置一下ipv4,否则会失败(此处为坑,不设置无法初始化成功)

vim /etc/sysconfig/modules/ipvs.modules

cat /etc/sysconfig/modules/ipvs.modules
nf_conntrack

systemctl enable --now systemd-modules-load.service

lsmod |egrep "ip_vs|nf_conntrack_ipv4"

lsmod |egrep "ip_vs|nf_conntrack_ipv"


d. 安装containerd 

1)安装依赖软件包

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

2)添加阿里Docker源

[root@k8s-master ~]

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

3)添加overlay和netfilter模块

cat >>/etc/modules-load.d/containerd.conf <<EOF

overlay

br_netfilter

EOF
modprobe overlay

modprobe br_netfilter

4)安装Containerd,这里安装最新版本(1.5版本及以下不可使用)

yum -y install containerd.io

5)创建Containerd的配置文件

mkdir -p /etc/containerd

containerd config default > /etc/containerd/config.toml

sed -i '/SystemdCgroup/s/false/true/g' /etc/containerd/config.toml

sed -i '/sandbox_image/s/registry.k8s.io/registry.aliyuncs.com\/google_containers/g' /etc/containerd/config.toml

6)启动containerd

systemctl enable containerd

systemctl start containerd

e. 安装kubectl、kubelet、kubeadm 

1)添加阿里kubernetes源 

vim /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

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

2)安装kubectl、kubelet、kubeadm

查看所有的可用版本

 yum list kubelet --showduplicates |grep 1.27

这里安装当前最新版本1.27.1

yum -y install kubectl-1.27.1 kubelet-1.27.1 kubeadm-1.27.1

设置开机自启kubelet(此时并没有kubelet配置文件无法启动,正常状况)

systemctl enable kubelet

systemctl start kubelet

f. master节点进行初始化操作

1)查看k8s v1.27.1初始化所需要的镜像

kubeadm config images list --kubernetes-version=v1.27.1

2)初始化命令

kubeadm init --kubernetes-version=1.27.1 --apiserver-advertise-address=10.142.50.190 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16

注:pod的网段为: 10.244.0.0/16,api server地址为Master本机IP,网段可以自定义,不冲突即可。

参数详解:
        -- 指定版本。(可按需修改版本)
        -- 设置了apiserver,即当前节点的ip。
        -- 指定镜像仓库地址,拉取镜像。        
        -- service-cidr是svc网络              kubectl get svc                   #查看svc信息   
            默认使用10.96.0.0/12
        -- pod-network-cidr 是pod网络    kubectl get pods -o wide    #查看pod网络信息
        -- k8s内部的pod节点之间网络可以使用的IP段,不能和service-cidr写一样,默认使用10.244.0.0/16

此操作,等待时间较长

3)成功返回信息,执行返回内容即可

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 IP:6443 --token maod8l.w4g2cu2tl4er9gil \

  --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

master节点执行

  mkdir -p $HOME/.kube

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

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

node节点执行


kubeadm join IP:6443 --token maod8l.w4g2cu2tl4er9gil \

  --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

2. 二进制搭建流程

        a. 创建多台虚拟机,安装linux操作系统

        b. 操作系统初始化(各种关关关)

        c. 为etcd和apiserver自签证书(相当于门禁卡,保证互通)

        d. 部署etcd集群

        e. 部署master组件

                kube-apiserver   kube-controller-manager   kube-scheduler  etcd

        f. 部署node组件

                kubelet   kube-proxy  docker  etcd 

        g. 部署集群网络


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


总结

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

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

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

相关文章

  • k8s1.27.x 最新版本使用kubeadm 的containerd的方式安装

    一:k8s1.27.x 的概述 太平洋时间 2023 年 4 月 11 日,Kubernetes 1.27 正式发布。此版本距离上版本发布时隔 4 个月,是 2023 年的第一个版本。 新版本中 release 团队跟踪了 60 个 enhancements,比之前版本都要多得多。其中 13 个功能升级为稳定版,29 个已有功能进行优化升级为 Beta,另有

    2024年02月09日
    浏览(44)
  • 使用kubeadm部署kubernetes 1.24.3

     节点信息:  这里使用containerd作为运行时,部署可参照 https://blog.csdn.net/weixin_46476452/article/details/127670046 目录 一、系统环境初始化 二、配置apt源、下载kubeadm 三、安装cni 四、初始化kubernetes 五、配置节点认证,加入集群 六、部署calico网络插件 七、验证 八、报错处理  我系

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

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

    2024年02月06日
    浏览(41)
  • 【Kubernetes部署篇】Ansible自动化工具离线部署K8s 1.27版本

    一、前提须知 采用kubeadm方式,目前只支持 单Master,多Node部署架构 需要主机网络互通,没有网络限制 需要使用root用户权限进行部署 二、使用Ansible部署K8S集群步骤 第一步:获取离线安装包 百度网盘获取 MD5:97d1f48bff3a345429b551b877c7c53d 第二步:安装ansible命令,压缩包中提供

    2024年02月14日
    浏览(54)
  • 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日
    浏览(56)
  • 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日
    浏览(51)
  • 【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日
    浏览(62)
  • 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日
    浏览(53)
  • 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日
    浏览(69)
  • 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日
    浏览(64)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包