如何部署k8s-dashborad-Token登录方式

发布时间:2021-11-18 17:22:24 作者:柒染
来源:亿速云 阅读:1442

如何部署k8s-dashboard-Token登录方式

目录

  1. 引言
  2. Kubernetes Dashboard 简介
  3. 部署 Kubernetes Dashboard
  4. 配置 Token 登录方式
  5. 安全配置
  6. 常见问题与解决方案
  7. 总结

引言

Kubernetes 是一个开源的容器编排平台,广泛应用于云原生应用的部署和管理。Kubernetes Dashboard 是 Kubernetes 的官方 Web UI,提供了对集群资源的可视化管理和操作。为了确保 Kubernetes Dashboard 的安全性,通常需要配置 Token 登录方式。本文将详细介绍如何部署 Kubernetes Dashboard 并配置 Token 登录方式。

Kubernetes Dashboard 简介

Kubernetes Dashboard 是一个基于 Web 的用户界面,允许用户通过图形化界面管理 Kubernetes 集群中的资源。它提供了对 Pod、Service、Deployment 等资源的查看、创建、删除和更新操作。通过 Kubernetes Dashboard,用户可以更方便地管理和监控集群状态。

部署 Kubernetes Dashboard

3.1 安装 kubectl

kubectl 是 Kubernetes 的命令行工具,用于与 Kubernetes 集群进行交互。在部署 Kubernetes Dashboard 之前,首先需要安装 kubectl

在 Linux 上安装 kubectl

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/

在 macOS 上安装 kubectl

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/

在 Windows 上安装 kubectl

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/windows/amd64/kubectl.exe"

3.2 安装 Minikube

Minikube 是一个用于在本地运行 Kubernetes 集群的工具。它可以在单节点上运行 Kubernetes,适合开发和测试环境。

在 Linux 上安装 Minikube

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

在 macOS 上安装 Minikube

brew install minikube

在 Windows 上安装 Minikube

choco install minikube

3.3 部署 Kubernetes Dashboard

在安装好 kubectl 和 Minikube 之后,可以开始部署 Kubernetes Dashboard。

启动 Minikube

minikube start

部署 Kubernetes Dashboard

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

访问 Kubernetes Dashboard

kubectl proxy

在浏览器中访问 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/,即可看到 Kubernetes Dashboard 的登录页面。

配置 Token 登录方式

4.1 创建 Service Account

为了使用 Token 登录 Kubernetes Dashboard,首先需要创建一个 Service Account。

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

将上述内容保存为 admin-user.yaml,然后执行以下命令创建 Service Account:

kubectl apply -f admin-user.yaml

4.2 绑定 ClusterRole

接下来,需要将 Service Account 绑定到 cluster-admin ClusterRole,以赋予其管理员权限。

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: kubernetes-dashboard

将上述内容保存为 cluster-role-binding.yaml,然后执行以下命令创建 ClusterRoleBinding:

kubectl apply -f cluster-role-binding.yaml

4.3 获取 Token

创建好 Service Account 并绑定 ClusterRole 之后,可以获取该 Service Account 的 Token。

kubectl -n kubernetes-dashboard create token admin-user

执行上述命令后,将输出一个 Token,该 Token 将用于登录 Kubernetes Dashboard。

4.4 登录 Kubernetes Dashboard

打开 Kubernetes Dashboard 的登录页面,选择 “Token” 登录方式,将获取到的 Token 粘贴到输入框中,点击 “Sign In” 即可登录。

安全配置

5.1 配置 HTTPS

为了确保 Kubernetes Dashboard 的安全性,建议配置 HTTPS 访问。

生成自签名证书

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout dashboard.key -out dashboard.crt -subj "/CN=dashboard.example.com"

创建 Kubernetes Secret

kubectl create secret tls dashboard-tls --key dashboard.key --cert dashboard.crt -n kubernetes-dashboard

更新 Kubernetes Dashboard 部署

编辑 Kubernetes Dashboard 的 Deployment,添加以下内容:

spec:
  template:
    spec:
      containers:
      - name: kubernetes-dashboard
        args:
        - --tls-cert-file=/tls.crt
        - --tls-key-file=/tls.key
        volumeMounts:
        - mountPath: /tls.crt
          name: tls-cert
          subPath: tls.crt
        - mountPath: /tls.key
          name: tls-key
          subPath: tls.key
      volumes:
      - name: tls-cert
        secret:
          secretName: dashboard-tls
          items:
          - key: tls.crt
            path: tls.crt
      - name: tls-key
        secret:
          secretName: dashboard-tls
          items:
          - key: tls.key
            path: tls.key

保存并应用更新:

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

5.2 限制访问

为了进一步限制 Kubernetes Dashboard 的访问,可以通过配置网络策略或使用 Ingress 控制器来实现。

配置网络策略

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-dashboard-access
  namespace: kubernetes-dashboard
spec:
  podSelector:
    matchLabels:
      k8s-app: kubernetes-dashboard
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          name: allowed-namespace

将上述内容保存为 network-policy.yaml,然后执行以下命令创建网络策略:

kubectl apply -f network-policy.yaml

使用 Ingress 控制器

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: dashboard-ingress
  namespace: kubernetes-dashboard
  annotations:
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
  tls:
  - hosts:
    - dashboard.example.com
    secretName: dashboard-tls
  rules:
  - host: dashboard.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: kubernetes-dashboard
            port:
              number: 443

将上述内容保存为 ingress.yaml,然后执行以下命令创建 Ingress:

kubectl apply -f ingress.yaml

常见问题与解决方案

6.1 Token 无效或过期

如果 Token 无效或过期,可以重新生成 Token 并尝试登录。

kubectl -n kubernetes-dashboard create token admin-user

6.2 无法访问 Kubernetes Dashboard

如果无法访问 Kubernetes Dashboard,请检查 kubectl proxy 是否正常运行,并确保网络策略或 Ingress 配置正确。

6.3 HTTPS 配置失败

如果 HTTPS 配置失败,请检查证书和密钥是否正确生成,并确保 Kubernetes Secret 和 Deployment 配置正确。

总结

通过本文的介绍,您已经了解了如何部署 Kubernetes Dashboard 并配置 Token 登录方式。为了确保 Kubernetes Dashboard 的安全性,建议配置 HTTPS 访问并限制访问权限。希望本文对您有所帮助,祝您在 Kubernetes 的世界中玩得愉快!

推荐阅读:
  1. 使用容器方式部署Ganglia
  2. kubernetes 1.14.2 kubeadm 方式部署

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

k8s dashborad token

上一篇:如何将Hyperledger Fabric 应用程序部署到云端

下一篇:如何搭建zookeeper的集群

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》