【K8s】kubeadm 安装 k8s 集
【K8s】kubeadm 安装 k8s 集
本篇文章主要是通过 VMware 来创建虚拟机,在虚拟机上通过 kubeadm 安装 k8s 集;
第一部分:虚拟机创建
安装镜像:ubuntu-22.04.5-live-server-amd64.iso
下载地址:.04/ubuntu-22.04.5-live-server-amd64.iso
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 用户】
配置 阿里云 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"
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
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
# 查看安装的 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
1)更换阿里云 k8s 镜像源
代码语言:txt复制echo "deb / kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
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 的镜像拉取问题,这里可以先将镜像拉到本地,再进行导入;
# 下载对应版本的 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
kubectl get pod -A -owide
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
推荐阅读
留言与评论(共有 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 |