You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Yum获取高于1.5.2的Kubernetes仓库?裸机部署Dashboard遇阻求助

解决裸机部署Kubernetes高版本源及Dashboard外部访问问题

看来你卡在了老版本K8s的RBAC支持和Dashboard配置上,我来一步步帮你解决这两个核心问题:

一、替换YUM源获取高版本Kubernetes

1.5.2版本确实太陈旧了,RBAC特性在1.6+才稳定支持,所以首先得把YUM源换成高版本的稳定源:

  1. 卸载旧版本(可选但推荐)
    先清理掉现有低版本组件,避免冲突:

    yum remove -y kubelet kubeadm kubectl kubernetes-cni
    
  2. 添加高版本Kubernetes YUM仓库
    创建/etc/yum.repos.d/kubernetes.repo文件,填入以下内容(这里以1.28稳定版为例,你可以根据需求替换v1.28为其他稳定版本号):

    [kubernetes]
    name=Kubernetes
    baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/
    enabled=1
    gpgcheck=1
    gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key
    exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
    
  3. 安装指定高版本组件
    执行以下命令安装对应版本的K8s工具,确保禁用仓库排除规则:

    yum install -y kubelet-1.28.0 kubeadm-1.28.0 kubectl-1.28.0 --disableexcludes=kubernetes
    
  4. 重启并启用kubelet服务

    systemctl enable --now kubelet
    

二、部署Dashboard并配置外部访问

高版本K8s默认启用RBAC,所以我们可以直接部署官方Dashboard并配置外部访问权限:

  1. 部署官方Dashboard
    执行以下命令部署稳定版Dashboard(这里用v2.7.0,你可以替换为最新稳定版):

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
    

    如果无法直接访问外部链接,你可以手动下载该YAML文件到本地,再执行kubectl apply -f命令。

  2. 修改Service为NodePort实现外部访问
    默认Dashboard的Service是ClusterIP类型,只能集群内部访问,我们改成NodePort:

    • 编辑Service:
      kubectl edit service kubernetes-dashboard -n kubernetes-dashboard
      
    • 找到type: ClusterIP这一行,替换为type: NodePort,保存退出。
    • 查看分配的外部端口:
      kubectl get service kubernetes-dashboard -n kubernetes-dashboard
      
      输出中NodePort列的端口(比如30000)就是外部访问的端口,之后你可以通过http://<你的节点IP>:<NodePort>访问Dashboard。
  3. 创建ClusterRoleBinding赋予管理员权限
    默认Dashboard的ServiceAccount权限很低,需要绑定集群管理员角色才能正常使用:
    创建一个dashboard-admin.yaml文件,内容如下:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: kubernetes-dashboard-admin
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
    - kind: ServiceAccount
      name: kubernetes-dashboard
      namespace: kubernetes-dashboard
    

    应用该配置:

    kubectl apply -f dashboard-admin.yaml
    
  4. 获取登录令牌
    执行以下命令生成Dashboard的登录令牌:

    kubectl -n kubernetes-dashboard create token kubernetes-dashboard
    

    复制输出的令牌,在Dashboard登录页面粘贴即可登录。

额外注意事项

  • 容器运行时:高版本K8s(1.24+)不再支持Docker作为默认容器运行时,建议安装配置containerd作为替代,确保集群正常运行。
  • 网络连通性:裸机部署要确保所有节点之间的网络互通,开放必要的端口(比如NodePort范围30000-32767,K8s组件通信端口等)。
  • 版本升级顺序:如果是升级现有集群,务必先升级Master节点,再逐个升级Node节点,避免集群故障。

内容的提问来源于stack exchange,提问作者bmbross

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:02:16