CentOS7使用kubeadm部署k8s-1.28集群

centos7安装k8s 1.28版本,基于科学 2024年,由于某种意外,导致docker镜像等无法继续使用,镜像也不容易获取到,这对于k8s的学习比较难搞,在碰壁多次后,我通过代理来完成了k8s和containerd的安装。 阅读详情

参考资料:生产环境

记录使用CentOS7.9进行k8s-1.28版本部署,运行时环境使用containerd,网络插件使用calic,集群搭建完成后。搭建NFS共享存储环境,测试运行pod并挂载使用持久卷。

服务器角色

主机名**IP地址 **角色基础组件
el7-linux-node-01192.168.240.11k8s-masterkubeadm,kubelet,kubectl,containerd,nfs-server
el7-linux-node-02192.168.240.12k8s-workerkubeadm,kubelet,kubectl,containerd,nfs-client
el7-linux-node-03192.168.240.13k8s-workerkubeadm,kubelet,kubectl,containerd,nfs-client

软件环境

软件名称版本
CentOS7.9
Kubernetes1.28
contianerd1.6.28

安装步骤

  1. 确认运行环境
  2. 环境准备
  3. 安装容器运行时
  4. 安装kubeadm、kubelet、kubectl
  5. 配置cgroup驱动程序

kubeadm安装配置

参考资料:安装 kubeadm

确认运行环境

服务器准备

  • CPU 2核,内存2G以上
  • 集群主机间相互通信
  • 节点之间不可以有重复主机名、MAC或product_uuid
  • 禁用交接分区

系统初始化配置

所有服务器执行

禁用selinux
# 将 SELinux 设置为 permissive 模式(相当于将其禁用)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
禁用swap
# 关闭swap分区 
swapoff -a
sed -i 's|^\(/.*swap\)|#\1|' /etc/fstab
禁用防火墙
# 关闭防火墙
systemctl stop iptables
systemctl disable iptables
升级操作系统内核
yum -y update kernel*

管理节点密钥配置

# 生成密钥
ssh-keygen -t ecdsa -f /root/.ssh/id_rsa -N ''
# 复制密钥到所有服务器
ssh-copy-id 192.168.240.11
ssh-copy-id 192.168.240.12
ssh-copy-id 192.168.240.13

主机解析配置

el-linux-node-01执行


cat >> /etc/hosts << EOF
192.168.240.11 el7-linux-node-01  
192.168.240.12 el7-linux-node-02  
192.168.240.13 el7-linux-node-03 
EOF

scp /etc/hosts 192.168.240.12:/etc/hosts
scp /etc/hosts 192.168.240.13:/etc/hosts

安装容器运行时

每台服务器安装,在此采用Docker-CE + cri-dockerd,由于kubernetes在1.24(含)以后的版本中移除了cri-dockerd。需要手动进行部署

开启网络转发

以下命令在每台服务器上执行
转发 IPv4 并让 iptables 看到桥接流量

cat <<EOF | tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

# 设置所需的 sysctl 参数,参数在重新启动后保持不变
cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# 应用 sysctl 参数而不重新启动
sudo sysctl --system

检查开启结果

lsmod | grep br_netfilter
lsmod | grep overlay

sysctl \
net.bridge.bridge-nf-call-iptables \
net.bridge.bridge-nf-call-ip6tables \
net.ipv4.ip_forward

containerd安装

以下命令在每台服务器上执行

安装containerd
# 配置docker-ce软件源
# 移除已经安装的docker版本
yum remove -y docker docker-common docker-selinux docker-engine
# 下载docker-ce软件源文件
curl -o /etc/yum.repos.d/docker-ce.repo \
    https://download.docker.com/linux/centos/docker-ce.repo
# 替换官方源地址为国内yum源地址。
sed -e 's+download.docker.com+mirrors.aliyun.com/docker-ce+' \
    -i.bak /etc/yum.repos.d/docker-ce.repo
# 安装docker-ce
yum makecache fast


# 安装containerd
yum install -y containerd
配置containerd
# 备份默认配置文件
mv /etc/containerd/config.toml /etc/containerd/config.toml.default
# 重新生成配置文件
containerd config default > /etc/containerd/config.toml
# 替换 pause镜像源
sed -i 's|registry.k8s.io|registry.aliyuncs.com/google_containers|g' /etc/containerd/config.toml
# 配置镜像源代理 
sed -i s'|config_path = ""|config_path = "/etc/containerd/certs.d"|g' /etc/containerd/config.toml
sudo mkdir -p /etc/containerd/certs.d/docker.io
sudo tee /etc/containerd/certs.d/docker.io/hosts.toml > /dev/null <<EOF
server = "https://docker.io"
[host."https://hub-mirror.c.163.com"]
 capabilities = ["pull", "resolve"]
[host."https://docker.m.daocloud.io"]
 capabilities = ["pull", "resolve"]
EOF

启动containerd
systemctl enable containerd
systemctl restart containerd
systemctl status containerd

配置客户端工具

配置crictl工具运行时接口地址(runtime-endpoint),工具使用方法参考:cri-tools/docs/crictl.md at master · kubernetes-sigs/cri-tools

# 配置crictl工具运行时接口地址(runtime-endpoint)
crictl config --set runtime-endpoint=unix:///run/containerd/containerd.sock
crictl ps
测试镜像拉取
crictl pull docker.io/library/alpine:3.18

安装kubeadm、kubelet、kubectl

需要在每台机器上安装以下的软件包:

  • kubeadm:用来初始化集群的指令。
  • kubelet:在集群中的每个节点上用来启动 Pod 和容器等。
  • kubectl:用来与集群通信的命令行工具。

kubeadm 不能帮你安装或者管理 kubelet 或 kubectl, 所以你需要确保它们与通过 kubeadm 安装的控制平面的版本相匹配。 如果不这样做,则存在发生版本偏差的风险,可能会导致一些预料之外的错误和问题。 然而,控制平面与 kubelet 之间可以存在一个次要版本的偏差,但 kubelet 的版本不可以超过 API 服务器的版本。 例如,1.7.0 版本的 kubelet 可以完全兼容 1.8.0 版本的 API 服务器,反之则不可以。
参考资料:安装 kubeadm

配置Yum源

以下命令在每台服务器上执行

cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF

sed -e "s|packages.cloud.google.com|mirrors.aliyun.com/kubernetes|" \
    -e "s|gpgcheck=1|gpgcheck=0|" \
    -i /etc/yum.repos.d/kubernetes.repo

安装kubeadm

以下命令在每台服务器上执行

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet

使用kubeadm创建集群

创建集群步骤

  1. 准备容器镜像
  2. 初始化控制平面节点
  3. 安装Pod网络组件-calico
  4. 向集群中加入工作节点

准备容器镜像

查看镜像列表

kubeadm config images list --image-repository registry.aliyuncs.com/google_containers

image.png
由于官网镜像在国内访问不稳定,会出现访问失败。
使用国内镜像进行替换下载,在此pause使用3.9会导致集群无法初始化,还需要下载pause:3.6
以下命令在每台服务器上执行
使用自定义镜像仓库拉取镜像

kubeadm config images pull \
--image-repository registry.aliyuncs.com/google_containers

image.png
方法二

# 下载对应的镜像
docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.28.7
docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.28.7
docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.28.7
docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.28.7
docker pull registry.aliyuncs.com/google_containers/pause:3.6
docker pull registry.aliyuncs.com/google_containers/pause:3.9
docker pull registry.aliyuncs.com/google_containers/etcd:3.5.9-8
docker pull coredns/coredns:v1.10.1

# 将镜像标记为官方镜像版本
docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.28.7  registry.k8s.io/kube-apiserver:v1.28.7
docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.28.7  registry.k8s.io/kube-controller-manager:v1.28.7
docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.28.7  registry.k8s.io/kube-scheduler:v1.28.7
docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.28.7  registry.k8s.io/kube-proxy:v1.28.7
docker tag registry.aliyuncs.com/google_containers/pause:3.6  registry.k8s.io/pause:3.6
docker tag registry.aliyuncs.com/google_containers/pause:3.9  registry.k8s.io/pause:3.9
docker tag registry.aliyuncs.com/google_containers/etcd:3.5.6-0  registry.k8s.io/etcd:3.5.6-0
docker tag coredns/coredns:1.9.3  registry.k8s.io/coredns/coredns:v1.9.3

初始化控制平面节点

控制节点初始化

以下命令在服务器el7-linux-01(192.168.240.11)上执行

自定义镜像进行初始化(推荐)
# 使用自定义kubernets镜像仓库进行初始化
kubeadm init \
--apiserver-advertise-address 192.168.240.11 \
--apiserver-bind-port 6443 \
--control-plane-endpoint 192.168.240.11 \
--service-cidr=10.119.0.0/16 \
--service-dns-domain="cluster.local" \
--pod-network-cidr=10.120.0.0/16 \
--image-repository registry.aliyuncs.com/google_containers 

kubeadm参数详解
参考资料:kubeadm init

参数名称参数含义默认值
–apiserver-advertise-addressAPI 服务器所公布的其正在监听的 IP 地址。如果未设置,则使用默认网络接口。
–apiserver-bind-port 6443API 服务器绑定的端口。6443
–control-plane-endpoint为控制平面指定一个稳定的 IP 地址或 DNS 名称。
–service-cidr为服务的虚拟 IP 地址另外指定 IP 地址段。“10.96.0.0/12”
–service-dns-domain为服务另外指定域名“cluster.local”
–pod-network-cidr指明 Pod 网络可以使用的 IP 地址段。如果设置了这个参数,控制平面将会为每一个节点自动分配 CIDR。
–image-repository选择用于拉取控制平面镜像的容器仓库。“registry.k8s.io”
默认镜像进行初始化(不推荐)

此命令初始化时使用默认镜像仓库镜像进行初始化,由于k8s镜像仓库在国内不能进行访问,此方法不推荐

# 使用默认镜像仓库镜像进行初始化
kubeadm init \
--apiserver-advertise-address 192.168.240.11 \
--apiserver-bind-port 6443 \
--control-plane-endpoint 192.168.240.11 \
--service-cidr=10.119.0.0/16 \
--service-dns-domain="cluster.local" \
--pod-network-cidr=10.120.0.0/16 

image.png

环境变量配置
# 设置环境变量,官网建议root用户使用
export KUBECONFIG=/etc/kubernetes/admin.conf
cat <<EOF | tee -a ~/.bash_profile
export KUBECONFIG=/etc/kubernetes/admin.conf
EOF
source  ~/.bash_profile
# 复制控制配置,便于后继使用kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# cp /etc/kubernetes/admin.conf ~/.kube/config

集群节点加入

控制节点初始化时输出以下命令,用于添加管理节点与工作节点

You can now join any number of control-plane nodes by copying certificate authorities
and service account keys on each node and then running the following as root:

  kubeadm join 192.168.240.11:6443 --token nwc0z8.jdfc102z4ocpgtlo \
        --discovery-token-ca-cert-hash sha256:aafd6f69a0a10e22fabdf2367ef6cc200f188fd7f4cc330b02b7ac7d256e304b \
        --control-plane

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.240.11:6443 --token nwc0z8.jdfc102z4ocpgtlo \
        --discovery-token-ca-cert-hash sha256:aafd6f69a0a10e22fabdf2367ef6cc200f188fd7f4cc330b02b7ac7d256e304b

工作节点加入集群
kubeadm join 192.168.240.11:6443 --token nwc0z8.jdfc102z4ocpgtlo \
        --discovery-token-ca-cert-hash sha256:aafd6f69a0a10e22fabdf2367ef6cc200f188fd7f4cc330b02b7ac7d256e304b

image.png

加入集群令牌管理

上面的输出结果中的token令牌时效为23h,超过时效后可以通过以下命令重新获取

kubeadm token create --print-join-command

image.png
查看已经创建的令牌列表

kubeadm token list

image.png

管理节点参与pod分配调度

# 移除管理节点污点,使其可以参与调度可以参与pod分配
kubectl taint nodes --all node-role.kubernetes.io/control-plane-
kubectl taint nodes --all node-role.kubernetes.io/master-

kubeadm集群重置

kubeadm重置集群配置命令,如在安装过程中需要对集群进行重置,使用以下命令完成操作

kubeadm reset 

docker ps -qa |xargs docker rm -f

安装网络组件-Calico

你必须部署一个基于 Pod 网络插件的 容器网络接口 (CNI),以便你的 Pod 可以相互通信。 在安装网络之前,集群 DNS (CoreDNS) 将不会启动。

  • 注意你的 Pod 网络不得与任何主机网络重叠: 如果有重叠,你很可能会遇到问题。 (如果你发现网络插件的首选 Pod 网络与某些主机网络之间存在冲突, 则应考虑使用一个合适的 CIDR 块来代替, 然后在执行 kubeadm init 时使用 --pod-network-cidr 参数并在你的网络插件的 YAML 中替换它)。
  • 常见的网络插件有flannel,Calico,Canal,Weave,各网络组件之间的比较参考资料:Kubernetes CNI网络最强对比:Flannel、Calico、Canal和Weave_文化 & 方法_Rancher_InfoQ精选文章

Flannel项目地址:https://github.com/flannel-io/flannel
Calico项目地址:https://github.com/projectcalico/calico
本次实验使用Calico组件进行网络配置

cd /root
mkdir -pv k8s/calico
cd k8s/calico
wget https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/tigera-operator.yaml
wget https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/custom-resources.yaml
sed -i "s|192.168|10.120|" custom-resources.yaml
kubectl create -f tigera-operator.yaml
kubectl create -f custom-resources.yaml

# #
# kubctl init --pod-network-cidr=10.224.0.0/16 \
# --cri-socket unix:///var/run/cri-dockerd.sock

监测calico各个pods运行状态
应用calico配置文件后,使用watch 监测calico各个pods运行状态,直到所有pods为running。

watch kubectl get pods -n calico-system

image.png

加入工作节点到集群

检查控制节点状态是否为ready状态;

kubectl get nodes

image.png
由于使用了cri-dockerd,需要指定 cri-socket参数用于加入集群工作节点

kubeadm join 192.168.240.11:6443 --token 0q0uyq.biivqkdgghcp8vl3 \
        --discovery-token-ca-cert-hash sha256:02c0f4c894db2e1e00084fa41a8309458c97b3945f545fbb01df3fca3d0ea9ad 

image.png
检查集群节点状态

kubectl get nodes

image.png

从集群删除工作节点

参考资料:安全地清空一个节点

下线待删除节点

在控制节点驱逐待删除的工作节点

# 查询集群中的节点
kubectl get nodes

# 清空指定节点的服务
# 命令格式:
# kubectl drain --ignore-daemonsets <节点名称>
kubectl drain --ignore-daemonsets el7-linux-node-03

# 下线指定节点
# 命令格式:
# kubectl uncordon <node name>
kubectl uncordon el7-linux-node-03

image.png

从集群中删除节点

在控制节点执行以下命令

kubectl delete node el7-linux-node-03

image.png

清理工作节点

在待退出集群的工作节点执行以下命令

重置节点

kubeadm reset

image.png

停止服务

停止kubelet、运行时服务(containerd、docker等)、删除相关的工作目录

# 停止kubelet服务
systemctl stop kubelet
systemctl disable kubelet

# 停止containerd服务
systemctl stop containerd
systemctl disable containerd

# 停止docker运行时
systemctl stop docker docker.socket 
systemctl disable docker docker.socket 

删除工作目录

rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/cni/

删除相关网卡

安装网络配置工具

yum -y install net-tools

停用并删除网卡

ifconfig cni0 down
ip link delete cni0

ifconfig flannel.1 down
ip link delete flannel.1

ifconfig vxlan.calico down
ip link delete vxlan.calico

ifconfig docker0 down
ip link delete docker0

持久化存储配置

使用NFS进行持久化存储

从实验角度考虑,使用NFS安装配置方便简单,本文中使用nfs进行持久化存储的配置与使用。假设所有节点使用持久化存储目录均为:/www/server/k8s/data
参考资料:
卷 存储类 K8S持久化存储:NFS+StorageClass实现动态供给

NFS服务安装配置

NFS服务安装

在所有服务器执行

yum -y install nfs-utils
NFS服务配置

在el7-linux-node-01上启用NFS服务,并配置NFS共享;

# 创建共享存储目录
mkdir -pv /www/server/k8s/data
echo "nfs_test" > /www/server/k8s/data/nfs.txt

# 配置nfs共享目录
cat >> /etc/exports << eof
/www/server 192.168.240.0/24(rw,no_root_squash,sync)
eof
exportfs -av

# 启动nfs服务
systemctl start nfs-server
systemctl enable nfs-server
NFS挂载测试

在el7-linux-node-02和el7-linux-node-03上执行以下命令挂载NFS共享目录

# 创建
mkdir -pv /www/server/k8s/data
#mount -t nfs 192.168.240.11:/www/server/k8s/data /www/server/k8s/data

# 写入磁盘挂载配置文件
cat << EOF | tee -a /etc/fstab
192.168.240.11:/www/server/k8s/data /www/server/k8s/data nfs defaults,_netdev  0 0
EOF

cat /etc/fstab
mount -a 

image.png
查看文件共享内容

ll /www/server/k8s/data/
cat /www/server/k8s/data/nfs.txt

image.png

在Pod中挂载NFS

参考资料:NFS卷

直接挂载使用

配置文件如下

# 创建nginx共享目录
mkdir -pv /www/server/k8s/data/nginx/html/
# 创建nginx首页文件
echo "hello k8s nfs test" > /www/server/k8s/data/nginx/html/index.html
# 创建nginx启动配置文件,并挂载nfs到nginx站点目录
cat << EOF | tee /root/k8s/nginx.yml
apiVersion: v1
kind: Pod
metadata:
  name: nginx-direct-nfs
spec:
  containers:
  - image: nginx
    name: test-nginx
    volumeMounts:
    - mountPath: /usr/share/nginx/html
      name: test-volume
  volumes:
  - name: test-volume
    nfs:
      server: 192.168.240.11
      path: /www/server/k8s/data/nginx/html
      readOnly: false
EOF
# 启动pod
kubectl apply -f /root/k8s/nginx.yml

image.png
检查挂载结果

# 查看pod运行详情,并查看pod的ip地址
kubectl get pod  -o wide nginx-direct-nfs
# 使用curl请求nginx服务,是否输出测试页面内容
curl $(kubectl get pod -o wide nginx-direct-nfs |tail -n 1|awk '{print $6}')

image.png

使用持久卷挂载NFS

参考资料:存储类-nfs https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes/#claims-as-volumesDynamic sub-dir volume provisioner on a remote NFS server.
使用持久卷挂载时,挂载关系如下图所示:Pod -> pvc(持久卷申领[PersistentVolumeClaim]) -> pv(PersistentVolume[provisioner]) -> nfs(StorageClass)

截图_选择区域_20240222091108.png

下载NFS subdir 外部驱动
# 下载nfs外部署驱动部署文件
cd /root
git clone https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner.git
# 拷贝部署文件到时部署目录
cd nfs-subdir-external-provisioner
cp -a deploy /root/k8s/nfs-subdir-external-provisioner
cd /root/k8s/nfs-subdir-external-provisioner

替换驱动配置文件

# 由于nfs-subdir-external-provisioner镜像仓库地址registry.k8s.io国内无法访问,
# 在此将其替换为公司镜像仓库地址,此镜像已经拉取并上传到公司
sed -i 's|registry.k8s.io/sig-storage|hub.daqsoft.com:5000/daqsoft/k8s|g' deployment.yaml

# 替换nfs服务器配置信息
sed -i 's|10.3.243.101|192.168.240.11|g' deployment.yaml
sed -i 's|/ifs/kubernetes|/www/server/k8s/data|g' deployment.yaml
部署nfs驱动、sc、pv、pvc
kubectl apply -f rbac.yaml
kubectl apply -f deployment.yaml
kubectl apply -f class.yaml
kubectl apply -f test-claim.yaml
kubectl apply -f test-pod.yaml

image.png

检查部署状态
kubectl get sc -o wide
kubectl get pv -o wide
kubectl get pvc -o wide test-claim
kubectl get pod -o wide test-pod

image.png

检查测试文件

test-pod.yaml文件内容

kind: Pod
apiVersion: v1
metadata:
  name: test-pod
spec:
  containers:
  - name: test-pod
    image: busybox:1.28
    command:
      - "/bin/sh"
    args:
      - "-c"
      - "touch /mnt/SUCCESS && exit 0 || exit 1"   #pod运行后在/mnt目录中创建success文件
    volumeMounts:
      - name: nfs-pvc
        mountPath: "/mnt"
  restartPolicy: "Never"
  volumes:
    - name: nfs-pvc
      persistentVolumeClaim:
        claimName: test-claim

检查nfs服务目录中是否有test-pod创建的文件,持久卷在nfs服务中创建的目录名称为:命名空间-pvc名称-pv名称,相关信息通过get pv进行获取;如我们创建的pvc(test-claim)在default空间下,其对应nfs中的目录名称为:default-test-claim-pvc-234376c4-995b-4f97-b449-952c4a90dd5e

ls /www/server/k8s/data/default-test-claim-pvc-234376c4-995b-4f97-b449-952c4a90dd5e

image.png

故障记录

nfs-client-provisioner 运行失败

报错信息:
MountVolume.SetUp failed for volume “nfs-client-root” : mount failed: exit status 32 Mounting command: mount Mounting arguments: -t nfs nfs.daqsoft.deploy:/server/daqsoft/nfsdata/ /var/lib/kubelet/pods/059aefd3-463e-435e-b41b-afd5953075cd/volumes/kubernetes.io~nfs/nfs-client-root Output: mount: /var/lib/kubelet/pods/059aefd3-463e-435e-b41b-afd5953075cd/volumes/kubernetes.io~nfs/nfs-client-root: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount. helper program.

处理方法:
所有k8s工作节点需要安装nfs客户端工具才可以在pod中正常工作
命令如下:
centos/rockylinux/rhel/kylin/openEuler

yum -y insall nfs-utils

debian/ubuntu/

apt update
apt -y install nfs-common
centos安装部署Kubernetes(k8s)步骤使用kubeadm方式 阅读详情

相关推荐

CentOS 7 安装 Kubernetes 1.28.2 集群

本文详细讲解在CentOS 7系统上部署Kubernetes 1.28.2集群的完整流程,涵盖环境准备、依赖安装、集群初始化及网络插件配置,针对常见报错提供解决方案。内容适用于从零搭建的运维新手及需升级集群的技术人员,助您高效完成云原生环境部署。

m_2076的博客 1210

cetos7搭建部署k8s 版本1.28

主机分配内存最少是4G cpu个数最少两个关闭防火墙关闭swap设置主机名称安装docker 三个主机。

村长在路上 1967

Kubernetes(k8s)1.28集群部署

kubernetes(k8s)1.28集群部署

wq975826228的博客 1535

Kubernetes 集群部署(基于Docker)新手入门保姆级操作手册

kubectl需经由API server认证及授权后方能执行相应的管理操 作,kubeadm部署的集群为其生成了一个具有管理员权限的认证配置文 件/etc/kubernetes/admin.conf,它可由kubectl通过默认的“$HOME/.kube/config”的路径进行加载。项目地址:https://github.com/Mirantis/cri-dockerd cri-dockerd项目提供了预制的二制格式的程序包,用户按需下载相应的系统和对应平台的版本即可完成安装。

Devin0501的博客 2423

CentOS7下Kubernetes 1.28集群部署与优化指南

容器编排技术Kubernetes已成为云原生时代的核心基础设施,其通过声明式API和自动化调度机制实现应用的高效部署与管理。在Linux环境中,CentOS7凭借其稳定性和广泛兼容性,仍是企业部署生产级Kubernetes集群的主流选择。本文以最新Kubernetes 1.28版本为例,详细解析从环境准备、容器运行时配置到集群初始化的全流程,特别针对containerd运行时和Flannel网络插件进行深度优化,并提供20+个关键配置项调优方案。通过内核参数调整、资源预留设置和证书自动续期等生产级加固手段,

weixin_29214691的博客 253

kubernetes1.28部署(Centos7)

如果 DNS 不支持主机名称解析,还需要在每台机器的。文件中添加主机名和 IP 的对应关系。3.容器采用Containerd。2.采用kubeadm部署。

孤独天狼的博客 499

Debian 12 基于KubeAdm搭建多节点K8S 1.28.x集群

CentOS 7 官方支持和更新已于2024年6月30日结束。这意味着CentOS 7 不再接受官方的更新和补丁。并且官方推荐用户迁移到新的操作系统;而转移到Debian的优势有:自 1.24 版起,Dockershim 已从 Kubernetes 项目中移除;要求使用符合容器运行时接口(CRI)的运行时;可以切换到使用或;

Yweir的博客 1804

安装k8s 1.28 所需的离线镜像包

部署k8s1.28集群所需离线镜像包,已经为大家准备好了,大家有需要可以自行下载,下载后部署的方法,在主页k8s专栏的文章中有详细说明,如果大家有疑问可以查看文章,或者私信我,我会尽快回复,谢谢大家 registry.aliyuncs.com/google_containers/kube-apiserver:v1.28.2 registry.aliyuncs.com/google_containers/kube-scheduler:v1.28.2 registry.aliyuncs.com/google_containers/kube-controller-manager:v1.28.2 registry.aliyuncs.com/google_containers/kube-proxy:v1.28.2 registry.aliyuncs.com/google_containers/coredns:v1.10.1 registry.aliyuncs.com/google_containers/pause:3.9 registry.aliyuncs.com/google_containe

保姆级!CentOS7 使用 kubeadm 部署 Kubernetes v1.28.0 三节点集群

本文详细记录了基于 CentOS 7 环境从零搭建 Kubernetes v1.28.0 集群的完整过程。内容涵盖三节点(1 主 2 从)的主机基础配置、Docker CE 与 cri-dockerd 容器运行时部署、kubeadm 集群初始化、工作节点加入、Calico 网络插件部署,以及集群验证与 Nginx 应用测试。文中提供了大量可直接复制的命令与配置示例,并针对内核升级、初始化失败重置等常见问题给出了解决方案,适合作为 K8s 集群部署的实操参考手册。

2602_95508776的博客 359

OMNET++ INET框架学习教程(一)

在自组网学习的道路上摸石头过河,帮你快速入门OIMNET++平台下的INET框架。

NLDwangzhe的博客 6545

详解电路设计中的RC电路

​ 一、什么是RC电路 RC电路是指由电阻R和电容C组成的电路,它是脉冲产生和整形电路中常用到 的电路。 常见的RC充、放电电路、RC积分电路合RC微分电路接下来详细讲解。 二、RC充、放电电路 RC充、放电电路如下图所示,下面通过充电和放电两个过程来分析此电路。 ​RC充、放电电路图 (1)RC充电电路 RC充电电路图如下图(a)所示 RC充电电路图及充电曲线图 ​由上图分析: 将上图a中开关S置于“1”处,电源E开始通过电阻R对电容C充电,由于刚开始充电时电容两端没有..

IT xiaobai 4万+

CentOS 7.9上基于kubeadm部署Kubernetes 1.28集群实战

Kubernetes作为容器编排的事实标准,其集群搭建是运维与开发工程师的必备技能。kubeadm是官方推荐的集群初始化工具,能够简化控制面组件部署,但在老旧操作系统上仍面临兼容性挑战。CentOS 7.9作为广泛应用的企业级Linux发行版,内核版本与软件源均已进入维护尾声,部署时需处理版本选型、系统初始化与容器运行时配置等关键问题。容器运行时方面,Kubernetes自1.24版本起移除dockershim,推荐使用containerd作为CRI运行时,通过systemd cgroup驱动确保节点稳定性

weixin_34094282的博客 225

新手必看:5分钟搞定Unitree Go1机器狗Gazebo仿真运动控制(附按键图解)

本文为新手提供了Unitree Go1机器狗在Gazebo仿真环境中实现运动控制的快速指南。通过5分钟极简配置和按键图解,帮助开发者快速掌握宇树科技明星产品的基础操作,包括环境搭建、仿真启动和运动控制技巧,适合零基础用户快速上手。

weixin_42550597的博客 296

k8s-kubeadm搭建k8s集群(1)(centos7)

‌Docker的适配‌:Docker本身不直接实现CRI,但可通过cri-dockerd(原Dockershim的替代方案)作为适配层,将Docker的API转换为CRI兼容的接口,从而支持Kubernetes调度。(1)cgroup改为systemd (参考:https://kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/)

2501_94608127的博客 537

STC15单片机实战项目软件开发第四讲 - 按键检测(状态机)

软件开发第四讲 - 按键检测(状态机) 一、工具链接 1、Keil c51 UV4 https://yunpan.360.cn/surl_yrIfYYmeRFk 2、STC-ISP下载软件 https://yunpan.360.cn/surl_yxH4CuUUvI3 二、学习板获取方式 方法1:自己设计PCB,自行打板焊接; 方法2:用群主设计的PCB,自行打板焊接; 方法3:向群主购买,淘宝链接...

硬件家园 3040

NE564锁相环FM解调电路设计:10.7MHz中频实测与3种失真优化方案

本文详细解析了NE564锁相环在10.7MHz中频FM解调电路中的设计与优化方案。通过分析锁相环技术基础、电路架构设计及典型失真问题,提供了3种有效的失真优化方法,包括限幅增强、VCO频偏补偿和环路滤波优化,显著提升解调性能。文章还涵盖了PCB布局要点和系统测试验证,为高频电子线路设计提供实用参考。

weixin_33314040的博客 344

K8S(二)—— K8S 1.28 集群部署指南(kubeadm 方式)

本文详细介绍了Kubernetes 1.28.2集群的部署流程,基于kubeadm工具在CentOS 7.9系统上实现"1主2从"架构搭建。主要内容包括:环境准备(主机名配置、防火墙关闭、Swap分区禁用)、内核参数优化、IPVS工具安装、Containerd容器运行时配置等。特别针对国内环境进行了镜像源适配,确保部署过程高效稳定。适用于具备Linux基础的运维和开发人员,为后续微服务部署提供可靠的容器编排平台基础。

荣光波比的博客 2052

Cadence PCB SI仿真实战:如何手动添加VIA过孔模型提升板级链路精度

本文详细介绍了在Cadence PCB SI仿真中如何手动添加VIA过孔模型以提升DDR4/5设计的精度。通过参数化建模和三维全波建模技术,工程师可以有效解决高速设计中的信号完整性问题,显著降低仿真误差。文章还提供了实战案例和常见问题解决方案,帮助优化板级链路性能。

weixin_28683391的博客 399

centos7.9部署k8s集群(版本1.28.2)

注:本文在虚拟机环境中部署,将以containerd作为容器运行时,采用kubeadm安装方式搭建k8s集群安装环境。

qq_46131155的博客 833

【Envi风暴】Envi5.6安装图文教程(附Envi5.6完整版下载)

【Envi风暴】Envi5.6与应用商店app store安装图文教程(附Envi5.6完整版下载)从文末网盘下载完整的ENVI5.6安装包,如下所示:双击envi56-win.exe,开始安装。将f__x64下的两个补丁文件拷贝到安装路径。将f__x86下的两个补丁文件拷贝到安装路径。

智慧空间实验室 9167

Trae 保姆级使用指南,零基础小白也能实现编程。

Trae 使用指南 Trae AI 使用 零基础编程 满血版 DeepSeek-R1&V3 AI IDE 深度理解中文开发场景 傻瓜式编程 编程入门 开发入门

Mr.L-OAM的博客 5798

kubernetes集群环境搭建 centos7.6 kubernetes1.28.2

创建一个Master 节点kubeadm init将Node 节点加入到当前集群中$ kubeadm join <Master 节点的IP 和端口>

qq_35031494的博客 1116

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

centos7.9安装k8s集群v1.28.x版本

一、系统情况虚拟机版本:pve系统版本:centos7.9_2009_x86镜像地址:http://isoredirect.centos.org/centos/7/isos/x86_64/配置:4核8G(官网最低要求2核2G)主机 说明192.168.240.162 master节点192.168.240.163 node1节点192.168.240.164 node2节点192.168.240.165 harbor仓库k8sharbor二、环境配置。

m0_49822896的博客 2315

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

kubernetes 1.28安装部署

本文采用centos7环境,使用kubeadm安装部署k8s1.28版本,使用containerd运行时。

qq_45496048的博客 654

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

k8s-1.28仅部署

【代码】k8s-1.28仅部署。

u011739062的博客 269

Kubernetes v1.28.2 + containerd 集群部署手册

项目内容资源类型(英文)(简称 CRD)中文名称自定义资源定义作用范围集群级(Cluster-scoped)核心作用允许用户在不修改 Kubernetes 源码或编写复杂控制器的情况下,扩展 Kubernetes API,定义自己的资源类型(如Database等)。工作原理通过创建一个 CRD 对象,向 Kubernetes API Server 注册一种新的资源类型。注册后,用户即可像操作原生资源(如 Pod、Service)一样,使用等命令管理该资源。通常配合。

qq_41019389的博客 902
上一篇: CentOS7.9下openssh9升级最新版本实践
下一篇: [数据库][MySQL] MySQL权限管理
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值