# kubernetes_init **Repository Path**: xiyg_admin/kubernetes_init ## Basic Information - **Project Name**: kubernetes_init - **Description**: kubernetes集群环境搭建 - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-04 - **Last Updated**: 2025-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: Kubernetes, Docker, harbor ## README # kubernetes集群环境搭建基本操作流程 #### 介绍 kubernetes集群环境搭建 ![输入图片说明](img1744740-20200728184720349-1154506032.png) #### 服务器规划 | 主机名 | IP地址 | |------------|--------------| | k8s-master | 192.168.1.11 | | k8s-node01 | 192.168.1.15 | | k8s-node02 | 192.168.1.16 | #### 服务器要求: - 建议最小硬件配置:2核CPU、2G内存、20G硬盘。 - 服务器可以访问互联网, 能够联网下载镜像。 #### 软件环境 | 软件 | 版本 | 备注 | |----------------------|----------------|----| | 操作系统 | centos9 stream | | | Docker | 1.28.2 | | | Kubernetes | 1.28.2 | | | Kubernetes-Dashboard | v2.0.3 | | #### 初始化配置 ##### 1. 关闭防火墙 ``` systemctl disable --now firewalld ``` ##### 2. 关闭SELinux ``` sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config setenforce 0 ``` ##### 3. 禁用 Swap ``` # 临时关闭 Swap swapoff -a # 永久关闭 Swap sed -ri 's/.*swap.*/#&/' /etc/fstab # 验证 Swap 是否已关闭 free -h ``` ##### 4. 配置hosts解析(所有) ``` 192.168.1.11 k8s-master 192.168.1.15 k8s-node01 192.168.1.16 k8s-node02 185.199.109.133 raw.githubusercontent.com ``` ##### 5. 设置主/从机名(主/从节点) ``` hostnamectl set-hostname k8s-master # 从节点执行: hostnamectl set-hostname k8s-node01 hostnamectl set-hostname k8s-node02 ``` ##### 6. 配置内核参数 ``` cat > /etc/sysctl.d/k8s.conf < /etc/containerd/config.toml # 修改配置(替换镜像源) sed -i 's#registry.k8s.io/pause:3.8#registry.aliyuncs.com/google_containers/pause:3.8#' /etc/containerd/config.toml sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml # 启动服务 systemctl enable --now containerd ``` ##### 9. 安装Kubernetes组件(所有节点) ``` # 添加阿里云Kubernetes源 cat > /etc/yum.repos.d/kubernetes.repo < \ --discovery-token-ca-cert-hash sha256: mkdir ~/.kube cp /etc/kubernetes/kubelet.conf ~/.kube/config ``` 第10步会生成token,内容如下: ``` kubeadm join 192.168.1.11:6443 --token 7x25hw.0vduh94iu973evoz \ --discovery-token-ca-cert-hash sha256:79815d633910788045de7236832ae5af2ddb229deefe8e11e0e5c9f5351af36b mkdir ~/.kube cp /etc/kubernetes/kubelet.conf ~/.kube/config ``` ##### 13. 验证集群 ``` # 查看节点状态 kubectl get nodes -o wide # 查看Pod状态 kubectl get pods -n kube-system ``` 稍等片刻,查看如下Ready状态 ![输入图片说明](img%E6%88%AA%E5%B1%8F2025-03-04%2018.39.11.png) #### 部署官方Dashboard(UI) ##### 1. 下载脚本 ``` wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml ``` ##### 2. 修改脚本 ###### 默认Dashboard只能集群内部访问,修改Service为NodePort类型,暴露到外部: ``` $ vi recommended.yaml kind:Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard spec: ports: - port:443 targetPort:8443 nodePort:30001 selector: k8s-app: kubernetes-dashboard type:NodePort ``` ###### 修改yaml文件的image,改成从阿里云拉取镜像,修改的内容如下: ``` root@k8s-master:/home/zengyanhui# cat recommended.yaml | grep image #image: kubernetesui/dashboard:v2.7.0 image: registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard:v2.7.0 imagePullPolicy: Always #image: kubernetesui/metrics-scraper:v1.0.8 image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-scraper:v1.0.8 ``` 修改后脚本在工程文件recommended.yaml ##### 3. 执行脚本 ``` kubectl apply -f recommended.yaml [root@k8s-master ~]# kubectl get pods -n kubernetes-dashboard NAME READY STATUS RESTARTS AGE dashboard-metrics-scraper-6b4884c9d5-xwmgl 1/1 Running 0 13m kubernetes-dashboard-7f99b75bf4-zfxqs 1/1 Running 0 13m ``` ##### 3. 访问 访问地址:https://NodeIP:30001 访问地址:https://192.168.1.11:30001 ##### 4 创建服务账户和角色绑定 ``` cat <