创建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
访问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,用哪台机器都行。
#这里要一个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。
#这里访问成功。绿色是健康状态,这里默认为在default命名空间下,可以看到这个命名空间下的所有的资源类型。
#仅仅是管理员查看的界面。
#比如还可以对POD查看日志、在POD中运行、编辑与删除操作。
#不过对于熟悉K8S命令的管理员来说,并不需要在这个浏览器中这么干。
标题:Kubernetes(四)kubespray方式(4.5)访问dashboard
作者:yazong
地址:https://blog.llyweb.com/articles/2022/11/02/1667322163256.html