部署 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腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!