Kubernetes 部署教程 ( Rocky 部署 k8s ) ( Linux 部署 k8s ) ( k8s 部署教程 )2025-02-20百度百科 k8s 的用处Powered By c4e3bac3foxxmail.com目录**Kubernetes 部署教程 ( Rocky 部署 k8s ) ( Linux 部署 k8s ) ( k8s 部署教程 )**一、虚拟机配置二、安装 Rocky 系统1. 选择软件2. 硬盘分区选择首先选择自定义点击完成然后选择标准分区点击 自动创建删除 SWAP 分区将剩余空间分配给其他分区完成磁盘分区3. 设置 root 密码关闭kdump选项开始安装三、配置 Rocky 系统1. 配置软件源2. 关闭 selinux3. 开启内核转发4. 关闭 firewall5. 更新系统6. 安装并配置docker7. 安装和配置iptables1. 执行命令安装iptables2. 设置开机启动iptables8. 开启 IPVS1. 安装相关组件2. 开启相关组件9. 安装 Kubernetes10. 关闭电脑四、克隆虚拟机五、为两台虚拟机配置主机名和静态IP地址1. 启动两台虚拟机2. 更改主机名3. 设置静态IP地址重启两台虚拟机六、部署Kubernetes七、解决K8S报错八、解决 Node 节点 NotReady 问题九、安装Dashboard一、虚拟机配置二、安装 Rocky 系统1. 选择软件2. 硬盘分区选择首先选择自定义点击完成然后选择标准分区点击 “自动创建”删除 SWAP 分区将剩余空间分配给其他分区完成磁盘分区点击两次完成后出现此弹窗选择接受更改3. 设置 root 密码关闭kdump选项开始安装三、配置 Rocky 系统1. 配置软件源首先删除所有现有软件源rm-rf/etc/yum.repos.d/*然后创建并编辑新的repo文件[BaseOS]nameBaseOSgpgcheck0baseurlhttps://mirrors.aliyun.com/rockylinux/9/BaseOS/x86_64/os/[AppStream]nameAppStreamgpgcheck0baseurlhttps://mirrors.aliyun.com/rockylinux/9/AppStream/x86_64/os/[Docker]nameDockergpgcheck0baseurlhttps://mirrors.aliyun.com/docker-ce/linux/rhel/9/x86_64/stable/[Kubernetes]nameKubernetesgpgcheck0baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/2. 关闭 selinux3. 开启内核转发net.ipv4.ip_forward1net.bridge.bridge-nf-call-ip6tables1net.bridge.bridge-nf-call-iptables14. 关闭 firewallsystemctl disable firewalld5. 更新系统执行命令等待即可yum update-y6. 安装并配置docker先执行命令安装dockeryuminstall-ydocker-ce*然后设置开机启动 dockersystemctlenabledockersystemctlenablecontainerd最后编辑docker配置文件{iptables:false,ip6tables:false,exec-opts:[native.cgroupdriversystemd],registry-mirrors:[http://hub-mirror.c.163.com]}7. 安装和配置iptables1. 执行命令安装iptablesyuminstall-yiptables*2. 设置开机启动iptablessystemctlenableiptables8. 开启 IPVS1. 安装相关组件yuminstall-yipvsadm ipset sysstat conntrack libseccomp2. 开启相关组件echomodprobe br_netfilter/etc/rc.d/rc.localechomodprobe ip_vs/etc/rc.d/rc.localechomodprobe ip_vs_rr/etc/rc.d/rc.localechomodprobe ip_vs_wrr/etc/rc.d/rc.localechomodprobe ip_vs_sh/etc/rc.d/rc.localechomodprobe ip_tables/etc/rc.d/rc.localechomodprobe ip_set/etc/rc.d/rc.localechomodprobe xt_set/etc/rc.d/rc.localechomodprobe ipt_set/etc/rc.d/rc.localechomodprobe ipt_rpfilter/etc/rc.d/rc.localechomodprobe ipt_REJECT/etc/rc.d/rc.localechomodprobe ipip/etc/rc.d/rc.localechomodprobe overlay/etc/rc.d/rc.localchmod777/etc/rc.d/rc.local9. 安装 Kubernetesyuminstall-ykubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6设置开机启动Kubernetes10. 关闭电脑shutdown-hnow四、克隆虚拟机找到克隆选项以后一直下一步选择完整克隆点击完成等待克隆完成五、为两台虚拟机配置主机名和静态IP地址1. 启动两台虚拟机2. 更改主机名在 Kubernetes0 上执行命令echoMatser/etc/hostname在 Kubernetes1 上执行命令echoNode1/etc/hostname3. 设置静态IP地址在 Kubernetes0 上执行命令nmcli connection delete ens160 nmcli connectionaddtypeethernet con-name ens160 ifname ens160 ipv4.method manual ipv4.addresses172.192.87.1/16 ipv4.gateway172.192.0.1 ipv4.dns8.8.8.8 ipv6.method disable在 Kubernetes1 上执行命令nmcli connection delete ens160 nmcli connectionaddtypeethernet con-name ens160 ifname ens160 ipv4.method manual ipv4.addresses172.192.87.2/16 ipv4.gateway172.192.0.1 ipv4.dns8.8.8.8 ipv6.method disable重启两台虚拟机reboot六、部署Kubernetes在 Master 主机上初始化 Kuberneteskubeadm init --apiserver-advertise-address172.192.87.1 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.6 --service-cidr10.96.0.0/12 --pod-network-cidr10.244.0.0/16 --ignore-preflight-errorsall获得加入集群的命令kubeadm token create --print-join-command将上述代码在Master执行后获得节点加入Master的命令。此命令在Node1上执行我的获得代码是kubeadmjoin172.192.87.1:6443--tokenvldu3t.jq0rr05ky7pw5alw --discovery-token-ca-cert-hash sha256:1b64c4ff362249f0626216a9b21e326f1a69b5b4cb7d57ad18a3518b1aa9f508上述代码在Node1里执行就好了七、解决K8S报错此报错是环境变量的问题admin.conf 只在 Master 里有exportKUBECONFIG/etc/kubernetes/admin.confechoexport KUBECONFIG/etc/kubernetes/admin.conf~/.bash_profile八、解决 Node 节点 NotReady 问题在Master上安装CNI即可解决该问题kubectl apply-fhttps://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml等待镜像拉取完毕即可解决该问题九、安装Dashboard执行命令安装wgethttps://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml修改配置文件执行命令使配置文件生效kubectl apply-frecommended.yaml等待 pod 创建完成后创建需要登陆 dashboard 的 tokenapiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kube-system然后执行命令使配置文件生效kubectl apply-fdashboard-adminuser.yaml最后执行命令获得 tokenkubectl-nkube-system describe secret$(kubectl-nkube-system get secret|grepadmin-user|awk{print $1})访问 https://172.192.87.1:30001 登录 kubernetes dashboard 面板Linux 部署 k8sLinux 部署 kubernetes