kubernetes-1.17.0集群搭建(下)

2023-12-17 18:17:38 浏览数 (1)

部署 Dashboard

在 Kubernetes 部署 Dashboard 的过程中,我们能够通过几种方式来搭建和访问它。Dashboard 提供了一个便捷的 Web 界面,方便对 Kubernetes 集群进行管理和监控。让我们深入了解这个过程,一起探索如何使用 Dashboard 来优化 Kubernetes 管理体验。

YAML 文件直接部署

首先,我们可以使用 YAML 文件来部署 Dashboard。通过以下命令,我们可以直接使用提供的 YAML 文件进行部署:

代码语言:shell复制
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml

一旦部署完成,我们需要确认 Dashboard 所在的命名空间。使用以下命令可以查看 Dashboard 的命名空间:

代码语言:shell复制
kubectl get pods -n kubernetes-dashboard  【在提示信息第一行可以看到】

默认情况下,Dashboard 只能在集群内部访问。我们可以通过修改 Service 类型为 NodePort 的方式将 Dashboard 暴露到外部。首先,我们删除刚刚部署的 Dashboard,然后下载 recommended.yaml 文件并对其进行修改。修改后的文件应包含类似以下内容:

代码语言:shell复制
kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml

修改recommended.yaml

代码语言:shell复制
  namespace: kubernetes-dashboard
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001
  selector:
    k8s-app: kubernetes-dashboard

这样一来,Dashboard 将会以 NodePort 的形式暴露在地址:http://NodeIP:30001。

此外,还存在另外两种 Dashboard 的部署方式:二进制部署和 Kubeadm 部署。

二进制部署方式

对于二进制部署方式,我们首先删除默认的 secret,然后利用自签名证书创建新的 secret。接着,我们需要修改 dashboard.yaml 文件,在 args 下增加两行证书内容。这样的操作能够使 Dashboard 以 HTTPS 方式运行,更安全地访问。

代码语言:shell复制
kubectl delete secret kubernetes-dashboard-certs -n kubernetes-dashboard
kubectl create secret generic kubernetes-dashboard-certs 
--from-file=/opt/kubernetes/ssl/server-key.pem --from-file=/opt/kubernetes/ssl/server.pem -n kubernetes-dashboard

修改 dashboard.yaml 文件,在args下面增加证书两行

代码语言:shell复制
args:
       # PLATFORM-SPECIFIC ARGS HERE
       - --auto-generate-certificates
       - --tls-key-file=server-key.pem
       - --tls-cert-file=server.pem

Kubeadm部署方式

而对于 Kubeadm 部署方式,同样需要先删除默认的 secret,然后使用自签名证书创建新的 secret。接着,修改 dashboard.yaml 文件,在 args 下增加证书内容。随后应用修改后的 yaml 文件即可。

代码语言:shell复制
kubectl delete secret kubernetes-dashboard-certs -n kubernetes-dashboard

kubectl create secret generic kubernetes-dashboard-certs 
--from-file=/etc/kubernetes/pki/apiserver.key --from-file=/etc/kubernetes/pki/apiserver.crt -n kubernetes-dashboard
kubectl apply -f kubernetes-dashboard.yaml

修改 dashboard.yaml 文件,在args下面增加证书两行

代码语言:shell复制
args:
         # PLATFORM-SPECIFIC ARGS HERE
         - --auto-generate-certificates
         - --tls-key-file=apiserver.key
         - --tls-cert-file=apiserver.crt

kubectl apply -f kubernetes-dashboard.yaml

为了使用 Dashboard,我们还需要创建 service account 并将其与默认的 cluster-admin 管理员集群角色绑定。这样可以获取登录 Dashboard 所需的 token。

代码语言:shell复制
kubectl create serviceaccount dashboard-admin -n kube-system
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

以上操作可以使 Dashboard 在 Kubernetes 环境中更加便捷地使用,提供可视化的管理界面,并且通过 HTTPS 加密方式提高了安全性。

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

0 人点赞