019.Kubernetes二进制部署插件dashboard

简介: 019.Kubernetes二进制部署插件dashboard

一 修改配置文件

1.1 下载解压

 [root@k8smaster01 ~]# cd /opt/k8s/work/kubernetes/
   [root@k8smaster01 kubernetes]# tar -xzvf kubernetes-src.tar.gz

提示:k8smaster01节点已解压完毕,可直接修改配置。

1.2 修改配置

 [root@k8smaster01 ~]# cd /opt/k8s/work/kubernetes/cluster/addons/dashboard
   [root@k8smaster01 dashboard]# vi dashboard-service.yaml
   ……
     type: NodePort   #增加此行,使用node形式访问
   ……
   #使用node方式访问dashboard

1.3 修改为国内源

 [root@k8smaster01 dashboard]# vi dashboard-controller.yaml
  ……
          image: mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1
  ……

提示:将yaml文件中的image字段修改为mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1。

二 创建 dashboard

2.1 创建dashboard并检查

 [root@k8smaster01 ~]# cd /opt/k8s/work/kubernetes/cluster/addons/dashboard
   [root@k8smaster01 dashboard]# kubectl apply -f .

2.2 查看分配的NodePort

 [root@k8smaster01 ~]# kubectl get deployment kubernetes-dashboard -n kube-system
   NAME                  READY    UP-TO-DATE    AVAILABLE    AGE
   kubernetes-dashboard  1/1      1             1            84s
   [root@k8smaster01 ~]# kubectl --namespace kube-system get pods -o wide
   [root@k8smaster01 ~]# kubectl get services kubernetes-dashboard -n kube-system

提示:k8smaster02 NodePort 31181 映射到 dashboard pod 443 端口。

2.3 查看dashboard参数

[root@k8smaster01 ~]# kubectl exec --namespace kube-system -it kubernetes-dashboard-7848d45466-bgz94  -- /dashboard --help

提示:dashboard 的 --authentication-mode 支持 token、basic,默认为 token。如果使用 basic,则 kube-apiserver 必须配置 --authorization-mode=ABAC 和 --basic-auth-file 参数。

三 dashboard验证方式

由于Kubernetes默认证书可能过期导致无法访问dashboard,本实验在已成功部署Kubernetes后手动重新创建证书。

3.1 创建证书

 [root@k8smaster01 ~]# cd /opt/k8s/work/
   [root@k8smaster01 work]# openssl genrsa -out dashboard.key 2048
   [root@k8smaster01 work]# openssl rsa -passin pass:x -in dashboard.key -out dashboard.key
   [root@k8smaster01 work]# openssl req -new -key dashboard.key -out dashboard.csr
   -----
   Country Name (2 letter code) [XX]:CN
   State or Province Name (full name) []:Shanghai
   Locality Name (eg, city) [Default City]:Shanghai
   Organization Name (eg, company) [Default Company Ltd]:k8s
  Organizational Unit Name (eg, section) []:System
  [root@k8smaster01 work]# openssl x509 -req -sha256 -days 365 -in dashboard.csr -signkey dashboard.key -out dashboard.crt
  [root@k8smaster01 work]# openssl x509  -noout -text -in ./dashboard.crt  #查看证书

3.2 分发证书

 [root@k8smaster01 ~]# cd /opt/k8s/work
   [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
  [root@k8smaster01 work]# for all_ip in ${ALL_IPS[@]}
    do
       echo ">>> ${all_ip}"
      scp dashboard.* root@${all_ip}:/etc/kubernetes/cert
    done

3.3 修改默认证书配置

 [root@k8smaster01 work]# cd /opt/k8s/work/kubernetes/cluster/addons/dashboard
   [root@k8smaster01 dashboard]# kubectl delete -f .  #删除使用默认证书所创建的dashboard
   [root@k8smaster01 dashboard]# ll /etc/kubernetes/cert/dashboard.*
   -rw-r--r-- 1 root root 1.2K Jun 28 18:06 /etc/kubernetes/cert/dashboard.crt
   -rw-r--r-- 1 root root  976 Jun 28 18:06 /etc/kubernetes/cert/dashboard.csr
   -rw-r--r-- 1 root root 1.7K Jun 28 18:06 /etc/kubernetes/cert/dashboard.key
  
   [root@master dashboard]# kubectl create secret generic kubernetes-dashboard-certs --from-file="/etc/kubernetes/cert/dashboard.crt,/etc/kubernetes/cert/dashboard.key" -n kube-system #挂载新证书到dashboard
   [root@master dashboard]# kubectl get secret kubernetes-dashboard-certs -n kube-system -o yaml  #查看新证书

3.4 重新部署dashboard

 [root@k8smaster01 work]# cd /opt/k8s/work/kubernetes/cluster/addons/dashboard
   [root@master dashboard]# kubectl apply -f .
  [root@master dashboard]# kubectl get pods --namespace=kube-system | grep dashboard  #确认验证


3.5 确认验证

 [root@k8smaster01 ~]# kubectl get deployment kubernetes-dashboard -n kube-system
   [root@k8smaster01 ~]# kubectl --namespace kube-system get pods -o wide
   [root@k8smaster01 ~]# kubectl get services kubernetes-dashboard -n kube-system

提示:k8smaster03 NodePort 30938 映射到 dashboard pod 443 端口。

四 访问dashboard

3.1 导入证书

将dashboard.crt导入IE浏览器,并设置为信任,导入操作略。

3.2 访问方式

本实验采用nodeip:nodepord方式访问。

浏览器访问:https://172.24.8.73:30938

提示:


更多dashboard访问方式及认证可参考《附004.Kubernetes Dashboard简介及使用》。


dashboard登录整个流程可参考:https://www.cnadn.net/post/2613.htm


apiserver方式见3.4,Kubeconfig验证方式见《附006.Kubernetes身份认证》中的3.5。

五 验证方式

5.1 创建token

 [root@k8smaster01 ~]# kubectl create sa dashboard-admin -n kube-system
   [root@k8smaster01 ~]# kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
   [root@k8smaster01 ~]# ADMIN_SECRET=$(kubectl get secrets -n kube-system | grep dashboard-admin | awk '{print $1}')
   [root@k8smaster01 ~]# DASHBOARD_LOGIN_TOKEN=(kubectldescribesecret−nkube−system(kubectl describe secret -n kube-system {ADMIN_SECRET} | grep -E '^token' | awk '{print $2}')
   [root@k8smaster01 ~]# echo ${DASHBOARD_LOGIN_TOKEN}  #输入登录的token
   eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tdmc5bWgiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiZTlkNGRjNGUtOTk3OC0xMWU5LTkzNTItMDAwYzI5ZmE3YTc5Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.X1NJsPNaAgV2TzJo0NlqOWFofDYOsSdkeiYHFGQFk5nNy0nbbnfnnoH0yumj_Ld0nGPakIjEpsUq9dqgCazeCpgk5EsygD6UlSg5sYA2sTLswbDoZdS3QzrOjY5MXWD3VDc_OQofD94MZqHMMw7IABVlfVsZ0vMEvHe-Qtyt6EQlFlHq5QjwDX8dCQDKRbwuiCr-Iy_dCWHHIhaT25BREf2viei8sZ497D8h4TXgO_u2CGf3qXRGNXj26VSdD8bT-BFGiDdyuXPbDHPU5LalvxF4WThChRfjO4zHLI2fOXq8BBF6DjbjhtG4X8fLuvJaxF4YWAmVS_78eJHhA3nvRg

3.4 创建kubeconfig文件

使用token相对复杂,可将token添加至kubeconfig文件中,使用KubeConfig 文件访问dashboard。

 [root@k8smaster01 ~]# cd /opt/k8s/work/
   [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
   [root@k8smaster01 work]# kubectl config set-cluster kubernetes \
     --certificate-authority=/etc/kubernetes/cert/ca.pem \
     --embed-certs=true \
     --server=${KUBE_APISERVER} \
     --kubeconfig=dashboard.kubeconfig  # 设置集群参数
   [root@k8smaster01 work]# kubectl config set-credentials dashboard_user \
     --token=${DASHBOARD_LOGIN_TOKEN} \
    --kubeconfig=dashboard.kubeconfig  # 设置客户端认证参数,使用上面创建的 Token
  [root@k8smaster01 work]# kubectl config set-context default \
    --cluster=kubernetes \
    --user=dashboard_user \
    --kubeconfig=dashboard.kubeconfig  # 设置上下文参数
 [root@k8smaster01 work]# kubectl config use-context default --kubeconfig=dashboard.kubeconfig    # 设置默认上下文,将dashboard.kubeconfig文件导入,以便于浏览器使用该文件登录。

六 正式登录

6.1 kubeconfig访问

浏览器访问:https://172.24.8.73:30938


提示:由于缺少 Heapster 插件,当前 dashboard 不能展示 Pod、Nodes 的 CPU、内存等统计数据和图表。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
3天前
|
存储 Kubernetes 对象存储
部署DeepSeek但GPU不足,ACK One注册集群助力解决IDC GPU资源不足
借助阿里云ACK One注册集群,充分利用阿里云强大ACS GPU算力,实现DeepSeek推理模型高效部署。
|
8天前
|
存储 Kubernetes 测试技术
企业级LLM推理部署新范式:基于ACK的DeepSeek蒸馏模型生产环境落地指南
本教程演示如何在ACK中使用vLLM框架快速部署DeepSeek R1模型推理服务。
|
9天前
|
存储 人工智能 弹性计算
NVIDIA NIM on ACK:优化生成式AI模型的部署与管理
本文结合NVIDIA NIM和阿里云容器服务,提出了基于ACK的完整服务化管理方案,用于优化生成式AI模型的部署和管理。
|
3天前
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
本教程演示如何在ACK中多机分布式部署DeepSeek R1满血版。
|
2月前
|
存储 Kubernetes 容器
K8S部署nexus
该配置文件定义了Nexus 3的Kubernetes部署,包括PersistentVolumeClaim、Deployment和服务。PVC请求20Gi存储,使用NFS存储类。Deployment配置了一个Nexus 3容器,内存限制为6G,CPU为1000m,并挂载数据卷。Service类型为NodePort,通过30520端口对外提供服务。所有资源位于`nexus`命名空间中。
|
2月前
|
Kubernetes 应用服务中间件 nginx
二进制安装Kubernetes(k8s)v1.32.0
本指南提供了一个详细的步骤,用于在Linux系统上通过二进制文件安装Kubernetes(k8s)v1.32.0,支持IPv4+IPv6双栈。具体步骤包括环境准备、系统配置、组件安装和配置等。
636 10
|
3月前
|
Kubernetes Cloud Native 微服务
云原生入门与实践:Kubernetes的简易部署
云原生技术正改变着现代应用的开发和部署方式。本文将引导你了解云原生的基础概念,并重点介绍如何使用Kubernetes进行容器编排。我们将通过一个简易的示例来展示如何快速启动一个Kubernetes集群,并在其上运行一个简单的应用。无论你是云原生新手还是希望扩展现有知识,本文都将为你提供实用的信息和启发性的见解。
|
1月前
|
缓存 容灾 网络协议
ACK One多集群网关:实现高效容灾方案
ACK One多集群网关可以帮助您快速构建同城跨AZ多活容灾系统、混合云同城跨AZ多活容灾系统,以及异地容灾系统。
|
2月前
|
Kubernetes Ubuntu 网络安全
ubuntu使用kubeadm搭建k8s集群
通过以上步骤,您可以在 Ubuntu 系统上使用 kubeadm 成功搭建一个 Kubernetes 集群。本文详细介绍了从环境准备、安装 Kubernetes 组件、初始化集群到管理和使用集群的完整过程,希望对您有所帮助。在实际应用中,您可以根据具体需求调整配置,进一步优化集群性能和安全性。
148 12
|
2月前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。

热门文章

最新文章