天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
K8S搭建(ubuntu)系列:
k8s搭建(详细演示完整一篇)
k8s搭建(二、k8s组件安装)
K8S搭建(centos)系列:
K8S搭建(centos)完整版
K8S搭建(centos)一、环境准备
K8S搭建(centos)二、服务器设置
K8S搭建(centos)三、安装Docker
K8S搭建(centos)四、安装K8S
K8S搭建(centos)五、初始化(master节点)
K8S搭建(centos)六、搭建集群
K8S搭建(centos)七、节点加入集群
K8S搭建(centos)八、从节点中使用kubectl命令
K8S搭建(centos)九、集群节点的删除
K8S搭建(centos)十、Dashboard配置(主节点)
使用dashboard作为可视化界面管理k8s集群
在主节点k8s-master中下载dashboard的配置文件安装dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
创建用户文件dash.yml
vim dash-user.yml
然后将以下内容复制到文件中
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
如果上方的文件内容复制后格式发生变化,建议将格式手动校准,不然可能应用时会报错
应用文件,生效
kubectl apply -f dash-user.yaml
访问所需的token用以下命令生成
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
或用以下命令,不过下方这个命令的token内容与用户名挤在一起,还是用上面那个命令吧
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"
token内容:
eyJhbGciOiJSUzI1NiIsImtpZCI6Im1MSmVsZGdNWlBaLVlMM180eXp3WXpuMDhOZ1YzV0s2RUNEYzJzT0R0QWsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWh0Nm5wIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJjMjg3OTIwZi1iYjMzLTQxNzQtOWE4NS1kYTJjODAzYzhhZTYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.dNKHA0x-Vh8i31USt-IhP5PNRnghpCEVrnw6EoL_L1I_Xt2pPQ40kGoAA3WRjKOr6RzxhiYIbx2Jfnd8aZpgo6RgFNzjKHXtk7h2zJ2RjZ8yuEk8RmpzpZqbOc_qBCeuNG9h5gL_xDOGa7zyg6CMkm7yuTI7rYjhMwapIw_SrdMYaQsZqj3BE0nIfiFzBHdp4y10Tukk4K2hE74FobHqyHyQp3exrz8SbGsCW7sw4Bun6-CAhRlwHiy5LoYoVSj-cuVldCmhD9jdNzeD0b3KsOmcGXnDTVxBqcH_u3OoMriRVQ-KCNfixnb9_x43G94NqvW6CKuA0x1ac520Cv6oUw
因为本篇为生产环境搭建,所以使用代理方式访问,不暴露ip和端口
参考:https://segmentfault.com/a/1190000023130407
k8s-master主节点上启动kube-proxy
kubectl proxy --address='0.0.0.0' --accept-hosts='^\*$' &
本地跳板机
首先查看dashboard服务的端口
kubectl get svc -n kubernetes-dashboard
或
kubectl get service kubernetes-dashboard -n kubernetes-dashboard
此时只有443,且只能集群内部访问,由于三台服务器均为server版,只有黑窗口,无法访问可视化界面
故需要将其端口映射到别的端口,并将权限改为其他地址可访问
修改service的type为NodePort,暴露到外部进行访问
kubectl -n kubernetes-dashboard edit service kubernetes-dashboard
然后再次查看端口,可以看到端口号已经被映射到新的端口,32353
获取服务所在的节点的IP地址
kubectl get pods -n kubernetes-dashboard -o wide | grep kubernetes-dashboard
如图可知服务运行在k8s-worker2节点上,ifconfig命令查看该节点的ip该节点的ip,为172.30.0.222
根据以上查询到的端口号和服务运行所在节点的ip地址
访问dashboard的地址为ip+端口号
https://172.30.0.222:32353
注:
一定要加上https://
前缀,不然可能只会返回一串字符Client sent an HTTP request to an HTTP server.
访问链接后提示您的连接不是私密连接,可选高级,然后继续前往连接即可
出现如下界面
将token复制粘贴进去
登录成功后可正常使用
在集群中找到Nodes可查看集群节点相关信息
感谢阅读,祝君暴富!