在阿里云k8s服务中玩转最新版原生dashboard

缘由

阿里云的k8s服务,已经在阿里云的控制台提供了托管式的原生kubernetes控制台,无需客户自己占用机器来启动该控制台应用,但是这里有些“局限”:

  • 每次都要登录到阿里云的控制台
  • 如果期望使用最新的k8s控制台,而阿里云提供的k8s控制台又可能不是最新的版本

这个时候可以怎么办呢?自行部署k8s的原生控制台,通过kubectl proxy的方式去访问

部署最新k8s控制台

前置条件
  • 在阿里云部署了一套k8s集群
  • 在本地配置好了k8s config文件,并能访问集群
  • 安装好docker
部署步骤
  • 获取镜像:因为官方提供的镜像是在gcr上,受限国内网络情况,直接获取官方对应的yaml做部署是不行。所以必须先获取一个镜像并推送到国内的镜像仓库中,可以放到阿里云你自己的镜像中。(阿里云的镜像仓库是免费的哦,同时支持vpc模式访问,流量都免费)

具体做法如下:

  • 找一台国外的机器,先从grc获取最新image到本地
  • 给镜像打tag
  • push到阿里云的镜像仓库(目前dashboard最新版本为1.10.0)
#docker login --username=<your name> registry.cn-shenzhen.aliyuncs.com
#docker pull k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0 
#docker tag k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0 registry.cn-shenzhen.aliyuncs.com/<namespace>/kubernetes-dashboard-amd64:v1.10.0
#docker push registry.cn-shenzhen.aliyuncs.com/<namespace>/kubernetes-dashboard-amd64:v1.10.0
  • 使用官网yaml部署dashboard
$kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
  • 修改对应的镜像为自己镜像
$kubectl edit deployment/kubernetes-dashboard -n kube-system

这样就部署成功了

如果没有办法从国外获取到镜像,可以查询下阿里云的公共镜像仓库是否已经有对应的镜像

地址在:registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64

可以参考我之前的文章<<通过OAuth方式与docker hub v2 API交互>>来获取该镜像的tag列表,很幸运,该列表很新:

image

原因是阿里云容器团队会定期同步gcr中的google_containers下的image,这个同步工具也已经开源了: https://github.com/AliyunContainerService/sync-repo (求star)

  • 访问dashboard

    • 启动proxy
$kubectl proxy
  • 登录

使用以下方式获得一个admin token来登录(支持多集群下config,官网的方式只支持一个集群的config,通过kubctx切换集群)

$kubectx <cluster name>
$kubectl describe secret -n kube-system $(kubectl get secrets --all-namespaces| grep admin-token | awk '{print $2}') | grep -E '^token' | cut -f2 -d':' | tr -d ' '

这样你就可以玩最新的k8s的原生dashboard了

参考文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阿里云Kubernetes集群默认不开启Kubernetes Dashboard,您需要手动开启,以下是在阿里云Kubernetes v1.23.0使用Web界面的步骤: 1. 安装Kubernetes Dashboard。 ```bash kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.1/aio/deploy/recommended.yaml ``` 2. 创建Kubernetes Dashboard Service Account和ClusterRoleBinding。 ```bash kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.1/aio/deploy/recommended.yaml ``` 3. 修改Kubernetes Dashboard Service Type为NodePort。 ```bash kubectl -n kubernetes-dashboard edit service kubernetes-dashboard ``` 将Service Type修改为NodePort,并添加NodePort端口号,如: ```yaml apiVersion: v1 kind: Service metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"k8s-app":"kubernetes-dashboard"},"name":"kubernetes-dashboard","namespace":"kubernetes-dashboard"},"spec":{"ports":[{"port":443,"targetPort":8443}],"selector":{"k8s-app":"kubernetes-dashboard"}}} creationTimestamp: "2022-01-04T05:20:19Z" labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard resourceVersion: "14272" selfLink: /api/v1/namespaces/kubernetes-dashboard/services/kubernetes-dashboard uid: 6d4d7a0d-e270-4a98-9b0f-4f0b4d6f2eb0 spec: clusterIP: 172.20.33.97 externalTrafficPolicy: Cluster ports: - nodePort: 32000 # 添加NodePort端口号 port: 443 protocol: TCP targetPort: 8443 selector: k8s-app: kubernetes-dashboard sessionAffinity: None type: NodePort # 修改Service Type为NodePort status: loadBalancer: {} ``` 4. 获取Kubernetes Dashboard访问链接。 ```bash kubectl -n kubernetes-dashboard get service kubernetes-dashboard ``` 将输出信息的NodePort端口号记录下来,然后使用以下URL访问Kubernetes Web界面: ```bash https://<master-ip>:<nodeport> ``` 其,`<master-ip>`为您的Kubernetes集群Master节点IP,`<nodeport>`为上一步记录的NodePort端口号。 您将看到一个登录页面,选择“Token”身份验证并输入以下命令以获取令牌: ```bash kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep service-controller-token | awk '{print $1}') ``` 将令牌复制到登录页面并点击“登录”按钮即可访问Kubernetes Web界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值