您现在的位置是:首页 > 编程 > 

【K8s】kubeadm 安装 k8s 集

2025-07-23 08:59:30
【K8s】kubeadm 安装 k8s 集 本篇文章主要是通过 VMware 来创建虚拟机,在虚拟机上通过 kubeadm 安装 k8s 集;第一部分:虚拟机创建1 环境信息安装镜像:ubuntu-22.04.5-live-server-amd64.iso下载地址:.04/ubuntu-22.04.5-live-server-amd64.iso2 创建虚拟机1)打开 VMware 软件,创建新

【K8s】kubeadm 安装 k8s 集

本篇文章主要是通过 VMware 来创建虚拟机,在虚拟机上通过 kubeadm 安装 k8s 集;

第一部分:虚拟机创建

1 环境信息

安装镜像:ubuntu-22.04.5-live-server-amd64.iso

下载地址:.04/ubuntu-22.04.5-live-server-amd64.iso

2 创建虚拟机

1)打开 VMware 软件,创建新的虚拟机,这里只展示关键的步骤,详细安装步骤可以自行搜索;

2)选择磁盘大小为 120GB,将整个磁盘存储为耽搁文件;

)这里创建的 worker 节点为4C4GB 大小,使用桥接模式;

4)安装 Ubuntu 22.04 系统

5)其他按照默认安装,填写对应用户名和密码即可,开启 SSH Server

6)选择安装的软件,这里其实可以什么都不选,后面根据需要再进行安装;

等待系统安装完成,登录系统,查看 IP 地址;

第二部分:k8s 集创建

安装的环境信息:

主机名

配置

IP

master01

4C4G

192.168.1.175

node01

4C4G

192.168.1.21

node02

4C4G

192.168.1.246

【登录机器切换到 root 用户】

1 配置镜像源

配置 阿里云 ubuntu 22.04 镜像源并进行更新

代码语言:txt复制
sudo bash -c "cat << EOF > /etc/apt/sources.list && apt update
deb / jammy main restricted universe multiverse
deb-src / jammy main restricted universe multiverse
deb / jammy-security main restricted universe multiverse
deb-src / jammy-security main restricted universe multiverse
deb / jammy-updates main restricted universe multiverse
deb-src / jammy-updates main restricted universe multiverse
deb / jammy-proposed main restricted universe multiverse
deb-src / jammy-proposed main restricted universe multiverse
deb / jammy-backports main restricted universe multiverse
deb-src / jammy-backports main restricted universe multiverse
EOF"
2 安装前准备

1)设置主机名称

代码语言:txt复制
hostnamectl set-hostname master01
hostnamectl set-hostname node01
hostnamectl set-hostname node02

2)配置 hosts 映射

代码语言:txt复制
cat >> /etc/hosts << EOF
192.168.1.175 master01
192.168.1.21 node01
192.168.1.246 node02
EOF

)关闭防火墙

代码语言:txt复制
systemctl stop firewalld
systemctl disable firewalld

4)关闭 selinux

代码语言:txt复制
setenforce 0
sed -i "s/SELIUX=enforcing/SELIUX=disabled/g" /etc/selinux/config

5)关闭交换分区

代码语言:txt复制
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

6)开启 IPV4 转发

代码语言:txt复制
cat <<EOF | sudo tee /etc/sysctl.d/
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF
代码语言:txt复制
sysctl --system

7)加载 overlay/netfilter 模块

代码语言:txt复制
cat <<EOF | sudo tee /etc/modules-load.d/
overlay
br_netfilter
EOF
代码语言:txt复制
modprobe overlay
modprobe br_netfilter
lsmod | grep br_netfilter

8)配置时间同步

代码语言:txt复制
timedatectl set-timezone Asia/Shanghai

安装 ntp 服务:

代码语言:txt复制
apt install ntp
systemctl start ntp
k8s 组件安装

1)containerd 安装

代码语言:txt复制
wget .7.25/containerd-1.7.gz
tar Cvzxf /usr/local containerd-1.7.gz

# tar -zxf containerd-1.7.gz -C containerd-1.7.25

通过 systemd 启动 containerd:

下载地址:.service

代码语言:txt复制
# 直接下载 containerd.service,拷贝到 /etc/systemd/system/ 目录下
wget .service

# 可以通过拷贝方式创建
vim /etc/systemd/system/containerd.service
代码语言:txt复制
# Copyright The containerd Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     .0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRATIES OR CODITIOS OF AY KID, either express or implied.
# See the License for the specific language governing permissi and
# limitati under the License.

[Unit]
Description=containerd container runtime
Documentation=
After= 

[Service]
#uncomment to enable the experimental sbservice (sandboxed) version of containerd/cri integration
#Environment="EABLE_CRI_SADBOXES=sandboxed"
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/containerd

Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitPROC=infinity
LimitCORE=infinity
LimitOFILE=infinity
# Comment TasksMax if your systemd version does not supports it.
# Only systemd 226 and above support this version.
TasksMax=infinity
OOMScoreAdjust=-999

[Install]
WantedBy=

加载配置、启动:

代码语言:txt复制
systemctl daemon-reload
systemctl enable --now containerd
代码语言:txt复制
# 查看 containerd 状态
systemctl status containerd
代码语言:txt复制
# 查看安装的 containerd 版本
ctr version

生成配置文件:

代码语言:txt复制
mkdir /etc/containerd
containerd config default > /etc/containerd/

# 重启 containerd
systemctl restart containerd

2)runc 安装

代码语言:txt复制
# 下载 runc
wget .2.4/runc.amd64

# 安装 runc
install -m 755 runc.amd64 /usr/local/sbin/runc

验证:

代码语言:txt复制
runc -v

)CI 安装

代码语言:txt复制
wget .6.2/cni-plugins-linux-amd64-v1.6.

mkdir -p /opt/cni/bin
tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.6.

# tar -zxf cni-plugins-linux-amd64-v1.6. -C cni-plugins-1.6.2/

4)配置加速器

阿里云的镜像加速,自2024年07月02日起,ACR对镜像加速功能的使用范围进行了调整:

  • 仅限阿里云用户在具备公网访问的阿里云产品上使用该镜像加速能力。
  • 仅支持通过镜像加速器拉取限定范围内的容器镜像。

会导致部分镜像拉取不到,可以不配置阿里云镜像加速;

代码语言:txt复制
mkdir -p /etc/containerd/certs.d/docker.io

添加 config_path = "/etc/containerd/certs.d"

代码语言:txt复制
sed -i 's/config_path\ =.*/config_path = \"\/etc\/containerd\/certs.d\"/g' /etc/containerd/

# 或者直接在文件中进行修改
# vim /etc/containerd/
代码语言:txt复制
cat > /etc/containerd/certs.d/docker.io/ << EOF
server = ";
[host.";]
  capabilities = ["pull", "resolve"]
EOF
代码语言:txt复制
systemctl daemon-reload
systemctl restart containerd

5)配置 CGroup 驱动

把 SystemdCgroup = false 修改为:SystemdCgroup = true

代码语言:txt复制
sed -i 's/SystemdCgroup\ =\ false/SystemdCgroup\ =\ true/g' /etc/containerd/

把 sandbox_image = "k8s.gcr.io/pause:.6" 修改为:sandbox_image="registry.aliyuncs/google_containers/pause:.8"

代码语言:txt复制
sed -i 's/sandbox_image\ =.*/sandbox_image\ =\ "registry.aliyuncs\/google_containers\/pause:.8"/g' /etc/containerd/|grep sandbox_image
代码语言:txt复制
systemctl daemon-reload
systemctl restart containerd

6)安装 crictl

代码语言:txt复制
wget .25.0/crictl-v1.25.gz
tar Cxzvf /usr/local/bin/ crictl-v1.25.gz

# tar -zxf crictl-v1.25.gz -C crictl-v1.25.0
代码语言:txt复制
cat >>  /etc/crictl.yaml << EOF
runtime-endpoint: unix:///var/run/containerd/containerd.sock
image-endpoint: unix:///var/run/containerd/containerd.sock
timeout: 10
debug: true
EOF
代码语言:txt复制
systemctl restart containerd

4 k8s 集部署

1)更换阿里云 k8s 镜像源

代码语言:txt复制
echo "deb / kubernetes-xenial main"  | sudo tee /etc/apt/sources.list.d/kubernetes.list
代码语言:txt复制
apt-get update

问题1:更新的时候回出现如下错误

解决:安装 安装 GPG 秘钥

The following signatures couldn't be verified because the public key is not available: O_PUBKEY B5DC80D1EDEF05

代码语言:txt复制
curl .gpg |sudo apt-key add -

2)安装 kubeadm、kubelet、kubectl

代码语言:txt复制
apt install -y kubelet=1.25.-00 kubeadm=1.25.-00 kubectl=1.25.-00

查看安装版本:

)master 节点安装

生成默认的配置:

代码语言:txt复制
kubeadm config print init-defaults > kubeadm.yaml

修改文件配置信息:

代码语言:txt复制
advertiseAddress: 192.168.1.175  # 修改为宿主机ip,主节点IP
imageRepository: registry.aliyuncs/google_containers
name: master01   # 修改为宿主机名
podSubnet: 10.244.0.0/16 # 设置pod网段

在配置文件最后添加:

代码语言:txt复制
---
kind: KubeletConfiguration
apiVersion: k8s.io/v1beta1
cgroupDriver: systemd

拉取镜像:

代码语言:txt复制
kubeadm config images pull --image-repository=registry.aliyuncs/google_containers --kubernetes-version=v1.25.

初始化集:

代码语言:txt复制
kubeadm init --config kubeadm.yaml

拷贝 config 文件:

代码语言:txt复制
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/ $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

查看 master 节点是否加入成功:

代码语言:txt复制
kubectl get node

创建 token:

代码语言:txt复制
kubeadm init phase upload-certs --upload-certs
kubeadm token create --print-join-command --ttl=0

4)node 节点安装

加入集:

代码语言:txt复制
kubeadm join 192.168.1.175:644 --token abcdef.012456789abcdef --discovery-token-ca-cert-hash sha256:edef560fa7df88926ee02668da7c2f7179d8d56ccc8220a7a582a625c2c2a7c

查看节点:

代码语言:txt复制
kubectl get node

此时节点状态是 otReady 的状态;

5)网络插件部署

这里 flannel 和 calico 任选其一即可;

1)创建 flannel.yaml 配置文件:

代码语言:txt复制
wget .yml

2)创建 calico.yaml

代码语言:txt复制
wget .29.1/manifests/tigera-operator.yaml
代码语言:txt复制
wget .29.1/manifests/custom-resources.yaml

代码语言:txt复制
wget .24/manifests/calico.yaml --no-check-certificate

#修改网络段
vim calico.yaml

由于 calico 的镜像拉取问题,这里可以先将镜像拉到本地,再进行导入;

代码语言:txt复制
# 下载对应版本的 calico 镜像
wget .25.0/release-v.25.
tar -zxf release-v.25.

# 导入镜像
ctr -n k8s.io images import  
ctr -n k8s.io images import 
ctr -n k8s.io images import 
ctr -n k8s.io images import 
ctr -n k8s.io images import 
ctr -n k8s.io images import 
ctr -n k8s.io images import 

查看集导入的镜像列表:

代码语言:txt复制
crictl image list

清理镜像:

代码语言:txt复制
crictl rmi imageID

6)查看部署的集

代码语言:txt复制
kubectl get node -owide
代码语言:txt复制
kubectl get pod -A -owide

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1184124.html

相关标签:无
上传时间: 2025-07-22 07:17:23
留言与评论(共有 11 条评论)
本站网友 上海化妆品公司
10分钟前 发表
开启 SSH Server6)选择安装的软件
本站网友 在线电子词典
21分钟前 发表
"resolve"] EOF代码语言:txt复制systemctl daemon-reload systemctl restart containerd5)配置 CGroup 驱动把 SystemdCgroup = false 修改为:SystemdCgroup = true代码语言:txt复制sed -i 's/SystemdCgroup\ =\ false/SystemdCgroup\ =\ true/g' /etc/containerd/把 sandbox_image = "k8s.gcr.io/pause
本站网友 c罩杯有多大
4分钟前 发表
这里其实可以什么都不选
本站网友 黄连的功效
9分钟前 发表
开启 SSH Server6)选择安装的软件
本站网友 关于郑州的记忆
7分钟前 发表
这里其实可以什么都不选
本站网友 云南软考
29分钟前 发表
这里只展示关键的步骤
本站网友 保利梧桐语
4分钟前 发表
在虚拟机上通过 kubeadm 安装 k8s 集;第一部分:虚拟机创建1 环境信息安装镜像:ubuntu-22.04.5-live-server-amd64.iso下载地址:.04/ubuntu-22.04.5-live-server-amd64.iso2 创建虚拟机1)打开 VMware 软件
本站网友 糖尿病保健
13分钟前 发表
填写对应用户名和密码即可
本站网友 路劲凤凰城业主论坛
13分钟前 发表
Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # .0 # # Unless required by applicable law or agreed to in writing
本站网友 三星自带铃声
4分钟前 发表
software # distributed under the License is distributed on an "AS IS" BASIS