云网牛站
所在位置:首页 > Linux云服务器 > 在Linux中使用NodePort安装Kubernetes仪表板

在Linux中使用NodePort安装Kubernetes仪表板

2020-02-03 11:36:55作者:自力稿源:云网牛站

Kubernetes仪表板是基于Web的用户界面,它提供有关Kubernetes群集资源的状态以及可能发生的任何错误的信息,仪表板可用于将容器化的应用程序部署到群集,对部署的应用程序进行故障排除以及群集资源的常规管理。可以从仪表板或使用kubectl在终端上完成Deployment、StatefulSet、DaemonSet、Jobs、Services和Ingress的部署。如果要扩展部署、启动滚动更新、重新启动Pod、创建持久卷和持久卷声明,则可以从Kubernetes仪表板执行所有操作。

 

步骤1:配置kubectl

我们将使用kubectl kubernetes管理工具将仪表板部署到Kubernetes集群,可以使用下面的指南配置kubectl:

安装及使用kubectl、kubectx和kubens轻松管理多个Kubernetes集群

链接中的指南演示了如何使用相同的kubectl配置文件配置和访问多个集群。

 

步骤2:部署Kubernetes仪表板

默认的Dashboard部署包含运行所需的最少的RBAC特权集,可以使用以下命令部署Kubernetes仪表板:

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

这将使用默认值进行部署,如果要对文件进行一些修改,则必须将其下载到本地计算机上:

wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml

mv recommended.yaml kubernetes-dashboard-deployment.yml

修改文件以适合部署需求:

vim kubernetes-dashboard-deployment.yml

我将Kubernetes仪表板服务修改为NodePort类型:

kind: Service

apiVersion: v1

metadata:

labels:

k8s-app: kubernetes-dashboard

name: kubernetes-dashboard

namespace: kubernetes-dashboard

spec:

ports:

- port: 443

targetPort: 8443

selector:

k8s-app: kubernetes-dashboard

type: NodePort

NodePort通过静态端口(NodePort)在每个节点的IP上公开服务,将自动创建NodePort服务路由到ClusterIP服务。

完成后应用更改:

kubectl apply -f kubernetes-dashboard-deployment.yml

检查部署状态:

$ kubectl get deployments -n kubernetes-dashboard

在Linux中使用NodePort安装Kubernetes仪表板

应该创建两个Pod,一个用于仪表盘,另一个用于度量:

$ kubectl get pods -n kubernetes-dashboard

在Linux中使用NodePort安装Kubernetes仪表板

由于我将服务类型更改为NodePort,因此请确认该服务是否确实创建:

$ kubectl get service -n kubernetes-dashboard

在Linux中使用NodePort安装Kubernetes仪表板

 

步骤3:访问Kubernetes仪表板

为我的服务部署分配了端口30038/TCP,让我们确认是否可以访问Kubernetes仪表板:

在Linux中使用NodePort安装Kubernetes仪表板

需要令牌才能访问仪表板,请查看下面的指南:

在Linux服务器中创建管理员用户以访问Kubernetes仪表板

创建限于一个命名空间的Kubernetes服务/用户帐户

到时就可以看到一个类似于下面的Web仪表板:

在Linux中使用NodePort安装Kubernetes仪表板

Nginx Ingress:

---

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

name: k8s-dashboard

namespace: kubernetes-dashboard

annotations:

nginx.ingress.kubernetes.io/secure-backends: "true"

nginx.ingress.kubernetes.io/ssl-passthrough: "true"

spec:

tls:

- hosts:

- k8sdash.mydomain.com

secretName: tls-secret

rules:

- host: k8sdash.mydomain.com

http:

paths:

- path: /

backend:

serviceName: kubernetes-dashboard

servicePort: 443

 

相关主题

使用Ansible和Calico CNI在CentOS 7/CentOS 8上部署Kubernetes集群

精选文章
热门文章