搭建dashboard-UI界面
在上次部署了K8S多master节点的基础之上,进行网页图形界面的部署,便于操作管理。
1:基于上次部署,进行状态检查(master节点操作)
# kubectl get nodes
node节点是Ready状态
# kubectl get pods
2:创建dashboard工作目录(master1节点)
# cd /root/k8s
# mkdir dashboard
# cd dashboard
拷贝官方的文件
https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dashboard
dashboard-rbac.yaml //角色管理控制 访问控制
dashboard-secret.yaml //网站安全,包含身份验证
dashboard-configmap.yaml //整个网站配置
dashboard-controller.yaml //控制器
dashboard-service.yaml //服务,提供服务给别人访问
编写一个k8s-admin.yaml文件(为了后面生成令牌)
# vim k8s-admin.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: dashboard-admin
namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: dashboard-admin
subjects:
- kind: ServiceAccount
name: dashboard-admin
namespace: kube-system
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
2:创建这5个服务资源,才形成web界面
创建rbac控制管理资源(角色控制访问控制)
# kubectl create -f dashboard-rbac.yaml
需指定类型和命名空间才能查看状态
# kubectl get Role -n kube-system
创建安全资源
# kubectl create -f dashboard-secret.yaml
# kubectl get Secret -n kube-system
创建配置管理资源
# kubectl create -f dashboard-configmap.yaml
# kubectl get Configmap -n kube-system
创建控制器
# kubectl create -f dashboard-controller.yaml
# kubectl get ServiceAccount -n kube-system
# kubectl get deployment -n kube-system
创建服务资源
# kubectl create -f dashboard-service.yaml
# kubectl get service -n kube-system
# kubectl get svc -n kube-system
创建rbac控制管理资源(角色控制 访问控制)
创建安全资源
创建配置管理资源
创建控制器
创建服务资源
Service服务被提供出去,别人就能访问,yaml文件中指定了映射端口
查看创建在指定的kube-system命名空间下的详细信息
# kubectl get pods -n kube-system
查看如何访问
可看到具体分配到哪个node节点
# kubectl get pods -n kube-system -o wide
可看到对外提供访问的端口号
# kubectl get pods,svc -n kube-system
3:网页访问对应node节点:对外提供的端口号,显示谷歌浏览器无法访问的问题
4:需自己制作CA证书签名
# vim dashboard-cert.sh
cat > dashboard-csr.json <<EOF
{
"CN": "Dashboard",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "BeiJing",
"ST": "BeiJing"
}
]
}
EOF
K8S_CA=$1
cfssl gencert -ca=$K8S_CA/ca.pem -ca-key=$K8S_CA/ca-key.pem -config=$K8S_CA/ca-config.json -profile=kubernetes dashboard-csr.json | cfssljson -bare dashboard
kubectl delete secret kubernetes-dashboard-certs -n kube-system
kubectl create secret generic kubernetes-dashboard-certs --from-file=./ -n kube-system
删除原有的证书,创建自己的证书
生成CA证书,生成到/root/k8s/k8s-cert/中
# bash dashboard-cert.sh /root/k8s/k8s-cert/
5:让控制器能够通过证书进行安全验证,然后重新部署控制器
查看所在node节点
# vim dashboard-controller.yaml
- --auto-generate-certificates
添加证书位置:
- --tls-key-file=dashboard-key.pem
- --tls-cert-file=dashboard.pem
重新部署更新
# kubectl apply -f dashboard-controller.yaml
再次查看dashboard资源所在node节点,有可能会变,因为proxy进行调度算法,进行重新分配
# kubectl get pods -n kube-system -o wide
网页重新刷新
点击 高级—> 继续前往 —> 仪表盘点击令牌 —> 输入令牌
6:生成令牌码,并复制粘贴到网页
生成令牌
# kubectl create -f k8s-admin.yaml
查看
# kubectl get secret -n kube-system
详细查看令牌,并复制令牌码
# kubectl describe secret dashboard-admin-token-6k4jf -n kube-system
复制令牌码
粘贴到网页,输入令牌码
7:点击登录,就进入web界面,云原生环境搭建完成。