kubernetes1.27.3版本单主机部署详细教程

本次kubernetes单主机部署是基于AnolisOS-7.9操作系统进行部署的,当然也适用于Centos7的操作系统,根据个人情况,选择适合自己的版本!
本次部署的kubernetes版本是1.27.3版本,系统架构是etcd,API Server,Controller Manager,Scheduler,Kubelet,Kube-proxy,Containerd,Docker。

IP操作系统内存(最低配置)CPU(最低配置)硬盘(最低配置)
192…101AnolisOS-7.94G2C60G

一:虚拟机安装及网络配置

1.下载安装的操作系统镜像
本文使用的是AnolisOS-7.9操作系统,系统镜像可以在阿里巴巴开源镜像站下载
下载地址:https://mirrors.aliyun.com/anolis/7.9/isos/GA/x86_64/AnolisOS-7.9-Minimal-x86_64-dvd.iso
image.png
2.本次虚拟机的安装是使用的VMware软件,使用其他软件也适用
(1)使用VMware创建虚拟机
(2)打开VMware,点击创建新的虚拟机
image.png
(3)选择自定义虚拟机
image.png(4)虚拟机硬件兼容性直接选择默认的就行
image.png
(5)新建虚拟机向导选择稍后安装操作系统
image.png
(6)客户机操作系统选择Linux,版本选择其他Linux 3.x内核 64位
image.png
(7)虚拟机名称和虚拟机存放位置根据个人情况自定义即可
image.png
(8)处理器数量指定为2C(最低配置2C,根据个人情况,越高越好)
image.png
(9)内存最低配置4G(根绝个人情况,越高越好)
image.png
(10)网络类型使用NAT的模式(网络类型也可以使用桥接的模式)
image.png
(11)IO控制器的类型使用默认的
image.png
(12)磁盘类型也选择默认的
image.png
(13)选择磁盘使用创建一个新的虚拟磁盘
image.png
(14)指定磁盘的容量为60G,将磁盘存储为单个文件
image.png
(15)创建好以后编辑虚拟机设置,选择要部署的镜像
image.png
image.png
(16)启动虚拟机开始安装操作系统 ,选择安装操作系统
image.png
(17)操作系统语言,选择英语(如果你想使用中文就选择中文)
image.png
(18)文件系统的分区采用的是自动分区
image.png
(19)配置网络
image.png
image.png
(20)开始安装
image.png
(21)配置root用户密码
image.png
(22)安装完系统以后重启
``image.png
(23)重启完以后使用终端工具登录验证一下
image.png

二:系统初始化

(1)更新系统
[root@localhost ~]# yum update
(2)安装wget命令
[root@localhost ~]# yum -y install wget
(3)关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
(4)关闭交换分区
[root@localhost ~]# swapoff -a #临时关闭
将/etc/fstab配置文件里的swap交换分区的配置注释掉永久配置
image.png
(5)禁用SELinux
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
cat /etc/selinux/config
(6)修改静态解析
cat >> /etc/hosts << EOF
192.168.255.101 k8s
EOF
(7)修改主机名 (修改的主机名要和你上面/etc/hosts里的一致)
hostnamectl set-hostname k8s
bash
(8)修改桥接
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
#免重启使配置生效
sysctl --system
(9)时间同步
yum install ntpdate -y && ntpdate time.windows.com

三:部署ETCD

1.安装自签证书需要的ssl程序
[root@k8s ~]# mkdir /data/ssl -p
[root@k8s ~]# cd /data/ssl
下载签名软件
[https://pkg.cfssl.org/R1.2/cfssl_linux-amd64](https://pkg.cfssl.org/R1.2/cfssl_linux-amd64)
[https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64](https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64)
[https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64](https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64)
mv cfssl-certinfo_linux-amd64 cfssl-certinfo
mv cfssljson_linux-amd64 cfssljson
mv cfssl_linux-amd64 cfssl
赋予签名软件可执行权限
chmod +x /data/ssl/*
mv cfssl cfssl-certinfo cfssljson /usr/local/bin/
验证签名软件是否可用
[root@k8s ssl]# cfssl version
Version: 1.2.0
Revision: dev
Runtime: go1.6
2.生成etcd证书
生成字根签名证书
[root@k8s ssl]# cfssl print-defaults config >ca-config.json
[root@k8s ssl]# cfssl print-defaults csr >ca-csr.json
[root@k8s ssl]# cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
image.png
更新证书配置文件
ca-config.json
声明文件
ca-csr.json
更新证书
cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
image.png
创建etcd的证书签名
etcd-server-csr.json
签发etcd服务端证书
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=etcd etcd-server-csr.json | cfssljson -bare etcd-server
创建etcd客户端服务签名
etcd-client-csr.json
生成自签证书
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=etcd etcd-client-csr.json | cfssljson -bare etcd-client
image.png
3.配置etcd服务并启动
下载etcd服务
cd /opt
wget [https://github.com/etcd-io/etcd/releases/download/v3.5.0/etcd-v3.5.0-linux-amd64.tar.gz](https://github.com/etcd-io/etcd/releases/download/v3.5.0/etcd-v3.5.0-linux-amd64.tar.gz)
解压,复制主程序到/usr/local/bin下
cp -p etcd etcdctl /usr/local/bin/
mkdir -p /data/k8s/etcd/bin/
cp -p etcd etcdctl /data/k8s/etcd/bin/
创建etcd目录,数据存放路径和配置文件存放路径
mkdir -p /var/lib/etcd/default.etcd && mkdir -p /data/etcd/config/
配置etcd服务文件
vi /usr/lib/systemd/system/etcd.service (这里的文件名是etcd.service,上传txt文件是为了方便复制,记得文件名不要搞错)
etcd.service.txt
创建etcd的配置文件,注意地址改成自己的本机的地址
cat /data/etcd/config/etcd.conf
etcd.conf.txt
image.png
4.启动etcd服务
systemctl enable etcd
systemctl daemon-reload && systemctl start etcd
5.验证etcd是否启动
systemctl status etcd
image.png
验证etcd的可用性
etcdctl --cacert=/data/ssl/ca.pem \
--cert=/data/ssl/etcd-server.pem \
--key=/data/ssl/etcd-server-key.pem \
--endpoints="https://192.168.255.101:2379" endpoint status -w table
image.png
6.重启节点,验证etcd的健康度
reboot
服务器起来以后验证一下etcd服务是否可用,验证返回正常则代表etcd安装成功
etcdctl --cacert=/data/ssl/ca.pem \
--cert=/data/ssl/etcd-server.pem \
--key=/data/ssl/etcd-server-key.pem \
--endpoints="https://192.168.255.101:2379" endpoint health
image.png

四,部署docker和Containerd服务

1.安装Go语言
yum install -y epel-release
yum install -y golang
2.安装docker
yum install -y yum-utils
yum-config-manager --add-repo [https://download.docker.com/linux/centos/docker-ce.repo](https://download.docker.com/linux/centos/docker-ce.repo)
yum install -y docker-ce docker-ce-cli containerd.io
3,配置docker镜像地址
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["[https://registry.docker-cn.com",](https://registry.docker-cn.com",) "https://docker.mirrors.ustc.edu.cn"],
"exec-opts": ["native.cgroupdriver=systemd"],
}
EOF
4,启动docker和Containerd服务
systemctl daemon-reload
systemctl enable docker && systemctl enable containerd
systemctl start docker && systemctl start containerd
查看服务的状态
systemctl status docker containerd
image.png

五,安装kubernetes相关组件服务

1.配置kubeadman安装的yum源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=[https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64](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/yum-key.gpg) ``[https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg](https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg)
EOF
2.调整containerd 的默认配置
containerd config default > /etc/containerd/config.toml
将默认的镜像下载地址改成阿里云的镜像源
[root@k8s ~]# grep sandbox_image /etc/containerd/config.toml
sandbox_image = "registry.k8s.io/pause:3.6"
[root@k8s ~]# grep sandbox_image /etc/containerd/config.toml
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
image.png
3.配置containerd cgroup 驱动程序systemd
sed -i 's#SystemdCgroup = false#SystemdCgroup = true#g' /etc/containerd/config.toml
image.png
4.配置crictl
cat <<EOF> /etc/crictl.yaml
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
EOF
5.重新加载Docker,重新启动containerd
systemctl reload docker && systemctl daemon-reload && systemctl restart docker && systemctl restart containerd
6.安装kubeadm,kubectl,kubelrt
yum install -y kubeadm-1.27.3 kubectl-1.27.3 kubelet-1.27.3
7.启动kubelet服务
systemctl enable kubelet
8.验证containerd的状态
crictl version
image.png

六:部署kubernetes服务

1.创建证书,配置文件存放文件夹
mkdir /usr/local/kubernetes/manifests -p && cd /usr/local/kubernetes/manifests/ && mkdir -p /data/k8s/config/ && mkdir -p /etc/kubernetes/pki/
2.生成hash值,并配置token配置文件
[root@k8s manifests]# head -c 16 /dev/urandom | od -An -t x | tr -d ' '
64e27ac83653a86c192ef484e70308b7
[root@k8s manifests]# cat >/data/k8s/config/token.csv << EOF
> 64e27ac83653a86c192ef484e70308b7,kubelet-bootstrap,10001,"system:node-bootstrapper"
> EOF
3.创建kubeenetes集群初始化配置文件
在/usr/local/kubernetes/manifests目录下配置kubeadm-config.yaml文件
image.png
kubeadm-config.yaml
certSANs参数改成你的主机地址和主机名,etcd地址需要改成咱们提前部署好的etcd地址,controlPlaneEndpoint参数地址改成本机的地址,如果是高可用的环境的话需要改成VIP的地址和端口
image.png
4.开始执行
kubeadm init --config kubeadm-config.yaml
执行结束后出现下面这些说明部署成功了
image.png
5.咱们依据出现的配置完成环境变量的配置
[root@k8s manifests]# mkdir -p $HOME/.kube
[root@k8s manifests]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s manifests]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
[root@k8s manifests]# export KUBECONFIG=/etc/kubernetes/admin.conf
6.验证集群的状态
image.png
7.查看当前nodes的状态是NotReady的状态,这是还没部署网络组件的原因
image.png
8.部署网络组件flannel
下载flannel
wget [https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml](https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml)
kube-flannel.yml
安装flannel
kubectl apply -f kube-flannel.yml
image.png
flannel组件服务起来以后,整个kubernetes环境就可用了
image.png
9.创建一个nginx服务的Pod验证环境是否可用
创建nginx容器以后,容器的状态是Pending的状态,不是整正常的Running的状态
image.png
是因为咱们只部署了一个master节点 ,K8S的master节点默认是不运行业务Pod的,删掉master的污点
kubectl taint node k8s node-role.kubernetes.io/control-plane:NoSchedule-
Pod启动成功,能正常访问
image.png

七:升级kubernets集群

1.升级kubeadm
查看当前kubeadm的版本
kubeadm version
安装要升级版本的kubeadm
yum install -y kubeadm-1.28.2-0 --disableexcludes=kubernetes
验证下载操作正常,并且 kubeadm 版本正确:
kubeadm version
image.png
验证升级计划,此命令检查你的集群是否可被升级,并取回你要升级的目标版本。 命令也会显示一个包含组件配置版本状态的表格。
kubeadm upgrade plan
image.png
选择要升级到的目标版本,运行合适的命令。例如:
kubeadm upgrade apply v1.28.2
image.png
2.升级 kubelet 和 kubectl
yum install -y kubelet-'1.28.2-*' kubectl-'1.28.2-*' --disableexcludes=kubernetes
重启 kubelet:
systemctl daemon-reload && systemctl restart kubelet
验证
image.png

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
安装Kubernetes 1.27.3在CentOS 7.9上的步骤如下: 1. 配置Kubernetes的YUM源。在终端中执行以下命令: ``` cat > /etc/yum.repos.d/kubernetes.repo <<EOF \[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 EOF ``` 2. 安装Kubernetes集群软件。在终端中执行以下命令: ``` yum install -y kubeadm-1.27.3 kubelet-1.27.3 kubectl-1.27.3 ``` 3. 配置Containerd。在终端中执行以下命令: ``` wget https://github.com/containerd/containerd/releases/download/v1.7.0/cri-containerd-cni-1.7.0-linux-amd64.tar.gz tar xf cri-containerd-cni-1.7.0-linux-amd64.tar.gz -C / mkdir /etc/containerd containerd config default > /etc/containerd/config.toml vim /etc/containerd/config.toml ``` 在打开的文件中,将`sandbox_image`的值从`"registry.k8s.io/pause:3.8"`修改为`"registry.k8s.io/pause:3.9"`。 4. 启动Containerd并设置开机自启动。在终端中执行以下命令: ``` systemctl enable --now containerd ``` 5. 验证Containerd的版本。在终端中执行以下命令: ``` containerd --version ``` 这样,你就成功在CentOS 7.9上安装了Kubernetes 1.27.3。请确保按照上述步骤逐一执行,并根据需要进行相应的配置修改。 #### 引用[.reference_title] - *1* *3* [kubernetes 1.27.3 集群部署方案](https://blog.csdn.net/weixin_45623111/article/details/131683965)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [centOS安装K8s](https://blog.csdn.net/frankgy01/article/details/127936391)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值