YAZONG 我的开源

Kubernetes(四)kubespray方式(4.5)访问dashboard

  , , ,
0 评论0 浏览

创建service

[root@node-1 ~]# cat > dashboard-svc.yaml <<EOF
apiVersion: v1
kind: Service
metadata:
  namespace: kube-system
  name: dashboard
  labels:
    app: dashboard
spec:
  type: NodePort
  selector:
    k8s-app: kubernetes-dashboard
  ports:
  - name: https
    nodePort: 30000
    port: 443
    targetPort: 8443
EOF

[root@node-1 ~]#  kubectl apply -f dashboard-svc.yaml
service/dashboard created

image.png

访问dashboard

为了集群安全,从 1.7 开始,dashboard 只允许通过 https 访问,我们使用nodeport的方式暴露服务,可以使用 https://NodeIP:NodePort 地址访问 。
关于自定义证书 默认dashboard的证书是自动生成的,肯定是非安全的证书,如果大家有域名和对应的安全证书可以自己替换掉。
使用安全的域名方式访问dashboard。 在dashboard-all.yaml中增加dashboard启动参数,可以指定证书文件,其中证书文件是通过secret注进来的。

----如果没有的话,dashboard提供默认的。作者使用的Firefox浏览器,Google浏览器还得加以信任比较麻烦。

要使用https的话,就要使用到证书,否则提示浏览器不安全。如果要有证书和域名的话,就可以使用上述四个方法来指定dashboard的启动参数,去通过安全证书的方式去访问,
如果没有自己的域名和证书的话,会有默认生成的,可以使用 https://NodeIP:NodePort 地址访问就可以了。
换一个Firefox浏览器,因为chrome浏览器非安全证书比较麻烦,需要添加各种安全信任。
我这里还是使用chrome浏览器。

[root@node-1/2/3 ~]# netstat -lntup|grep 30000
tcp        0      0 0.0.0.0:30000           0.0.0.0:*               LISTEN      2445/kube-proxy   

#这里用的外网node-3(用其他IP还得重新生成TOKEN)
访问:”https://10.0.0.23:30000/”,一定要带https,用哪台机器都行。

image.png

#这里要一个token,那么在下一步去创建token,然后粘进去,再登录。

登录dashboard

Dashboard 默认只支持 token 认证,所以如果使用 KubeConfig 文件,需要在该文件中指定 token,我们这里使用token的方式登录

#注意了:下述的所有操作是在node-1节点上执行的!

# 创建service account
[root@node-1 ~]# kubectl create sa dashboard-admin -n kube-system
serviceaccount/dashboard-admin created

# 创建角色绑定关系
[root@node-1 ~]# kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
clusterrolebinding.rbac.authorization.k8s.io/dashboard-admin created
cluster-admin是之前就存在的角色。
serviceaccount是刚才创建的账户kube-system。

# 查看dashboard-admin的secret名字
[root@node-1 ~]# ADMIN_SECRET=$(kubectl get secrets -n kube-system | grep dashboard-admin | awk '{print $1}')

# 打印secret的token
[root@node-1 ~]# kubectl describe secret -n kube-system ${ADMIN_SECRET} | grep -E '^token' | awk '{print $2}'
#这个千万不要暴露出去!
xxx

#粘进去token继续。这里还是用node-3访问的,用其他的节点访问还需要再次生成TOKEN。

image.png

#这里访问成功。绿色是健康状态,这里默认为在default命名空间下,可以看到这个命名空间下的所有的资源类型。

#仅仅是管理员查看的界面。

image.png

image.png

#比如还可以对POD查看日志、在POD中运行、编辑与删除操作。

#不过对于熟悉K8S命令的管理员来说,并不需要在这个浏览器中这么干。

image.png


标题:Kubernetes(四)kubespray方式(4.5)访问dashboard
作者:yazong
地址:https://blog.llyweb.com/articles/2022/11/02/1667322163256.html