本博客将介绍在k8s多节点集群部署的基础上安装web页面。
1、kubernetes 理论知识的初了解
2、kubernetes 集群部署之ETCD数据库部署、flannel网络组件安装
3、kubernetes二进制集群部署----单master集群
4、kubernetes二进制集群部署--------多master集群
k8s 的 dashborad 界面 安装需要的配置文件,可在官网下载。
在 master1节点上操作:
1、创建 dashborad(控制面板)工作目录,把yaml文件放在此路径下。
[root@master1 ~]# cd /root/k8s/
[root@master1 k8s]# ls
apiserver.sh k8s-cert
cfssl.sh kubeconfig
controller-manager.sh kubernetes
etcd-cert kubernetes-server-linux-amd64.tar.gz
etcd.sh master.zip
etcd-v3.3.10-linux-amd64 scheduler.sh
etcd-v3.3.10-linux-amd64.tar.gz
[root@master1 k8s]# mkdir dashboard
[root@master1 k8s]# cd dashboard/
[root@master1 dashboard]# ls
dashboard-configmap.yaml dashboard-rbac.yaml dashboard-service.yaml
dashboard-controller.yaml dashboard-secret.yaml k8s-admin.yaml
注意:以上5个yaml文件是官方文档, k8s-admin.yaml是我自己创建的
2、按顺序加载所有的文件,创建Pod资源安装web界面
创建Pod资源有两种方式:
[root@master1 dashboard]# kubectl create -f dashboard-rbac.yaml #创建角色
[root@master1 dashboard]# kubectl create -f dashboard-secret.yaml #创建安全验证
[root@master1 dashboard]# kubectl create -f dashboard-configmap.yaml #创建配置
[root@master1 dashboard]# kubectl create -f dashboard-controller.yaml
[root@master1 dashboard]# kubectl get ServiceAccount -n kube-system #查看服务资源
[root@master1 dashboard]# kubectl get deployment -n kube-system #查看控制器资源
//命令格式: kubectl get 资源类型 -n 名称空间
[root@master1 dashboard]# kubectl create -f dashboard-service.yaml
service/kubernetes-dashboard created
[root@master1 dashboard]# kubectl get service -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard NodePort 10.0.0.89 443:30001/TCP 38s
#可以看到对外提供访问的端口是30001
3、完成创建后,可以查看创建在指定的 kube-system命名空间下的各种资源类型,比如:pod、service
//svc是service服务资源的简写
[root@master1 dashboard]# kubectl get pods,svc -n kube-system
NAME READY STATUS RESTARTS AGE
pod/kubernetes-dashboard-65f974f565-jwj67 0/1 ContainerCreating 0 15m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes-dashboard NodePort 10.0.0.89 443:30001/TCP 5m43s
查看资源创建在哪个node节点上
// -o wide可以查看所在的node节点
[root@master1 dashboard]# kubectl get pods -n kube-system -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
kubernetes-dashboard-65f974f565-jwj67 1/1 Running 1 82m 172.17.7.2 192.168.100.131
此时,我们用谷歌浏览器访问:https://192.168.100.131:30001/
但是谷歌浏览器需要TLS证书才能访问。
打开开发者工具查看:
在 master01上编写脚本
[root@localhost dashboard]# vim dashboard-cert.sh
cat > dashboard-csr.json <
接下来,就是生成两个证书:dashboard-key.pem、dashboard.pem
[root@localhost dashboard]# bash dashboard-cert.sh /root/k8s/k8s-cert/
[root@localhost dashboard]# vim dashboard-controller.yaml
在 args目录下,添加生成的两个证书的路径:
args:
# PLATFORM-SPECIFIC ARGS HERE
- --auto-generate-certificates
- --tls-key-file=dashboard-key.pem
- --tls-cert-file=dashboard.pem
[root@localhost dashboard]# kubectl apply -f dashboard-controller.yaml #修改之后要更新
注意:重新部署可能会把pod资源分到另一个node节点上,故再次查看
[root@localhost dashboard]# kubectl get pods -n kube-system -o wide
然后,我们访问网站:https://https://192.168.100.136:30001/选择继续前往
选择接受风险并继续,选择令牌:
接下来,我们要做的就是生成令牌,在浏览器中填入即可:
//生成令牌:
[root@master1 dashboard]# kubectl create -f k8s-admin.yaml
serviceaccount/dashboard-admin created
clusterrolebinding.rbac.authorization.k8s.io/dashboard-admin created
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
//查看生成的安全资源名字
[root@master1 dashboard]# kubectl get secret -n kube-system
[root@master1 dashboard]# kubectl describe secret dashboard-admin-token-6ljj6 -n kube-system
而下面,就是生成令牌的一段密文:
我们把这段密文复制,然后粘贴到,浏览器上面的空白处即可:
然后,我们就可以在控制面板上,管理我们的各个组件,查看各类信息和概况等等,非常的方便。