当前位置: 首页 > news >正文

部署K8S集群

以下是使用阿里云镜像仓库、通过kubeadm在CentOS Stream 8上部署最新版本Kubernetes的详细步骤:

一、环境准备

  1. 服务器要求:

    • 至少2台CentOS Stream 8服务器(1台master,1台或多台node)
    • 每台服务器至少2GB内存,2核CPU
    • 服务器间网络互通,且能访问互联网
    • 每台服务器已设置好静态IP和主机名
  2. 操作系统初始化(所有节点执行)

# 更新系统
sudo dnf update -y# 关闭SELinux
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config# 关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld# 关闭Swap
sudo swapoff -a
sudo sed -i '/swap/s/^/#/' /etc/fstab# 配置内核参数
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOFsudo modprobe overlay
sudo modprobe br_netfilter# 设置系统参数
cat <<EOF | sudo 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
EOFsudo sysctl --system# 安装必要工具
sudo dnf install -y curl policycoreutils openssh-server chrony
sudo systemctl enable --now chrony

二、安装容器运行时(containerd)

# 安装containerd
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y containerd.io# 配置containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml# 修改containerd配置使用阿里云镜像和systemd cgroup驱动
sudo sed -i "s#k8s.gcr.io#registry.aliyuncs.com/google_containers#g" /etc/containerd/config.toml
sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml# 重启containerd
sudo systemctl restart containerd
sudo systemctl enable containerd

三、添加Kubernetes阿里云YUM源

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

四、安装kubeadm、kubelet和kubectl

# 安装最新版本
sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes# 启动kubelet服务
sudo systemctl enable --now kubelet

五、初始化Master节点

在主节点执行以下命令:

# 初始化集群,使用阿里云镜像仓库
sudo kubeadm init \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version stable-1.30 \--pod-network-cidr=10.244.0.0/16# 配置kubectl(普通用户)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

初始化成功后,会显示加入集群的命令,类似:

kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

记录下来,稍后用于工作节点加入集群。

六、安装网络插件

# 安装Calico网络插件(使用阿里云镜像)
kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml# 替换镜像地址为阿里云镜像
kubectl set image -n kube-system daemonset/calico-node calico-node=registry.aliyuncs.com/google_containers/calico-node:v3.25.0
kubectl set image -n kube-system deployment/calico-kube-controllers calico-kube-controllers=registry.aliyuncs.com/google_containers/calico-kube-controllers:v3.25.0

七、添加工作节点

在所有工作节点上执行前面记录的kubeadm join命令:

sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

如果忘记了加入命令,可以在主节点执行:

kubeadm token create --print-join-command

八、验证集群状态

在主节点执行:

# 查看节点状态
kubectl get nodes# 查看系统组件状态
kubectl get pods -n kube-system# 查看集群信息
kubectl cluster-info

当所有节点状态变为Ready时,说明集群部署成功。

九、部署Dashboard(可选)

# 部署Dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml# 替换镜像
kubectl set image -n kubernetes-dashboard deployment/kubernetes-dashboard kubernetes-dashboard=registry.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v2.7.0# 创建管理员用户
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:name: admin-usernamespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: admin-user
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:
- kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard
EOF# 获取登录令牌
kubectl -n kubernetes-dashboard create token admin-user

通过以上步骤,你就成功使用阿里云镜像仓库在CentOS Stream 8上部署了最新版本的Kubernetes集群。如果需要扩展集群,只需在新节点上执行相同的初始化步骤(跳过master初始化)并加入集群即可。

http://www.dtcms.com/a/389092.html

相关文章:

  • K8S配置管理:ConfigMap与Secret
  • 奥威BI+ChatBI:数据智能时代的一体化解决方案
  • 微服务与云原生实战:Spring Cloud Alibaba 与 Kubernetes 深度整合指南
  • 从慕尼黑到新大陆:知行科技「智驾」与「机器人」的双行线
  • VINTF中manifest.xml和compatibility_matrix.xml的作用
  • AI时代云原生数据库一体机的思考
  • 配置manifest.xml和compatibility_matrix.xml
  • Prometheus高可用监控架构性能优化实践指南
  • 低代码平台与云原生开发理念是否契合?
  • 红队测试手册:使用 promptfoo 深入探索大语言模型安全
  • el-date-picker设置默认值
  • 结语:Electron 开发的完整路径
  • 数据结构系列之线性表
  • Vue2 生命周期钩子详解:beforeCreate、created、mounted、beforeDestroy 用法顺序与坑点指南
  • electron nodejs安装electron 以及解压打包
  • 每日一题:链表排序(归并排序实现)
  • 团体程序设计天梯赛-练习集 L1-032 Left-pad
  • AI的出现,能否代替IT从业者
  • 一个基于Java+Vue开发的灵活用工系统:技术实现与架构解析
  • 原神望陇村遗迹 解谜
  • 半导体制造常提到的Fan-in晶圆级封装是什么?
  • MySQL 专题(五):日志体系(Redo Log、Undo Log、Binlog)原理与应用
  • 锂电池取代铅酸电池作为及其老化率计算常用算法
  • FreeRtos面试问题合集
  • Codeforces Round 1051 Div.2 补题
  • tokenizer截断丢失信息,如何处理?
  • Mybatis学习笔记03-XML映射配置
  • 时空预测论文分享:模仿式生成 动态局部化 解耦混淆因子表征 零样本/少样本迁移
  • 更新!Windows 11 25H2 四合一版【版本号:26200.5074】
  • CentOS 7.9 离线部署 KVM + WebVirtMgr,通过WebVirtMgr创建虚拟机教程