上一篇sealos4.3.5安装手册(二)追加节点讲解了如何追加节点,这篇中我们将看下如何添加看板,可以界面化操作
1. 官方推荐的kubernetes-dashboard
首先,先添加官方推荐的kubernetes-dashboard
在k8s的github上找到需要的版本
下载配置文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
改个名字方便查看版本
mv recommended.yaml recommended-v2.7.0.yaml
修改配置文件
找到对应的部分添加配置,默认 Dashboard 只能在集群内部访问,用户集群外访问
........
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
type: NodePort # 添加一行
........
完成修改,确认无误后执行文件
kubectl apply -f recommended-v2.7.0.yaml
[root@k8s-master1 dashboard]# kubectl apply -f recommended-v2.7.0.yaml
namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created
查看dashboard 状态,默认在 kubernetes-dashboard 名称空间下
kubectl get pods -n kubernetes-dashboard
[root@k8s-master1 dashboard]# kubectl get pods -n kubernetes-dashboard
NAME READY STATUS RESTARTS AGE
dashboard-metrics-scraper-5cb4f4bb9c-szzs7 1/1 Running 0 5m40s
kubernetes-dashboard-6967859bff-zf4kc 1/1 Running 0 5m40s
# 查看ip端口,从网页打开
kubectl get svc -n kubernetes-dashboard
[root@k8s-master1 dashboard]# kubectl get svc -n kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.96.3.67 <none> 8000/TCP 8m20s
kubernetes-dashboard NodePort 10.96.3.139 <none> 443:32430/TCP 8m20s
https://master节点IP+SVCPort
我的master是41,42,43 这3个ip都可以打
https://192.168.1.41:32430/
通过Token令牌登入
获取token
kubectl -n kubernetes-dashboard create token kubernetes-dashboard
[root@k8s-master1 dashboard]# kubectl -n kubernetes-dashboard create token kubernetes-dashboard
eyJhbGciOiJSUzI1NiIsImtpZCI6InBiTjY4WHVXX09tNnUtVzAtanR3cW5KU0dIUjZPRGt6Uy11NFprYjFBdUUifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNjk3MjY0NjQ0LCJpYXQiOjE2OTcyNjEwNDQsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInVpZCI6ImE1N2I1ZmMzLTI2MjMtNDRiOC1hMTU0LTY5YjY1NzIyYjBmMCJ9fSwibmJmIjoxNjk3MjYxMDQ0LCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQifQ.dZx_-hEHmu-lWJS58APmHP-KvMSAtsN_QciPGkCnpVKmrxcSyMwj3nx4v-gl-7O-2BB2qnIUUOIbMehHvJzWSmBNhIX40In5ceuh1FpHzrxSwMk4CTh_U1z8osq4T1-pT1bcqMuL4tC-iBW-VKzVxEF0F2qTGejsPWDgNCskHOjH93CThPxucFgI7J3byFozfChg4QmkGgrbCF1vacSS_14KpUxp8k9TnVogq90ciyrbpBh7nAuLFZ206wt7xOcQMjaWEAS8u_shyuZCFQ5yP276JlUxuuevDU-hJetzRciYKHY6sZTTEJmjLDHvfhgra5UZiz4RcmvLzJ3QX1ByeQ
复制输出的token,进入管理页面
kubernetes-dashboard的管理界面讲解到此结束。
2. 国人开发的kuboard
下面推荐一个国人开发的k8s界面管理插件,对于初次学习k8s的小伙伴有一定的帮助。
kuboard官网
kuboard 中初次学习,推荐的插件安装方式
安装 Kuboard v3 - 内建用户库
先找了一台测试机,安装完docker
该机器上的 docker 版本不低于 19.03
运行docker命令,修改自己对应的ip
docker run -d --restart=unless-stopped --name=kuboard -p 80:80/tcp -p 10081:10081/tcp -e KUBOARD_ENDPOINT="http://192.168.1.38:80" -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" -v /root/kuboard-data:/data eipwork/kuboard:v3
安装完成,在浏览器中访问kuboard
http://192.168.1.38/
默认的登录信息
用户名: admin
密 码: Kuboard123
把k8s集群加入到kuboard中
在master节点中,执行复制的命令
[root@k8s-master1 kuboard]# cat << EOF > kuboard-create-token.yaml
> ---
> apiVersion: v1
> kind: Namespace
> metadata:
> name: kuboard
>
> ---
> apiVersion: v1
> kind: ServiceAccount
> metadata:
> name: kuboard-admin
> namespace: kuboard
>
> ---
> apiVersion: rbac.authorization.k8s.io/v1
> kind: ClusterRoleBinding
> metadata:
> name: kuboard-admin-crb
> roleRef:
> apiGroup: rbac.authorization.k8s.io
> kind: ClusterRole
> name: cluster-admin
> subjects:
> - kind: ServiceAccount
> name: kuboard-admin
> namespace: kuboard
>
> ---
> apiVersion: v1
> kind: Secret
> type: kubernetes.io/service-account-token
> metadata:
> annotations:
> kubernetes.io/service-account.name: kuboard-admin
> name: kuboard-admin-token
> namespace: kuboard
> EOF
[root@k8s-master1 kuboard]#
[root@k8s-master1 kuboard]# kubectl apply -f kuboard-create-token.yaml
»果填入到 kuboard 界面的 Token 字段:\033[0m"
echo -e "\033[31m$(kubectl -n kuboard get secret $(kubectl -n kuboard get secret kuboard-admin-token | grep kuboard-admin-token | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)\033[0m"
namespace/kuboard created
serviceaccount/kuboard-admin created
clusterrolebinding.rbac.authorization.k8s.io/kuboard-admin-crb created
secret/kuboard-admin-token created
[root@k8s-master1 kuboard]# echo -e "\033[1;34m将下面这一行红色输出结果填入到 kuboard 界面的 Token 字段:\033[0m"
将下面这一行红色输出结果填入到 kuboard 界面的 Token 字段:
[root@k8s-master1 kuboard]# echo -e "\033[31m$(kubectl -n kuboard get secret $(kubectl -n kuboard get secret kuboard-admin-token | grep kuboard-admin-token | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)\033[0m"
eyJhbGciOiJSUzI1NiIsImtpZCI6InBiTjY4WHVXX09tNnUtVzAtanR3cW5KU0dIUjZPRGt6Uy11NFprYjFBdUUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJvYXJkIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6Imt1Ym9hcmQtYWRtaW4tdG9rZW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC1hZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjQ4MTMwNGQyLTRlZjgtNDVmYi05OGIyLTlhODdhYTY5NDYwOCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJvYXJkOmt1Ym9hcmQtYWRtaW4ifQ.PYC9l8yuScH-lkCAyC5lj4cLv506oDEJwe5V0jTmkFNj1ek5qQbDPnUvRw5GHGeSh6Kt_oTwImHbZFGdfh2oPq3qPJAVvULRycDcxkGAt15upNld2gjBeEbSEldpjUL06DFN6yADEzIBEKi0t3pIsRDB3klxNDPi4hYoKqpHRKoiCOrBcjoARt5pnSH1NPKdIFsnzO5uCFztsmv_v4U33nxdCVCN8ngA-urpU0xN5T0eOXqNX1jxa3W_MSOq1Qwtz0S09l2J119wBbjmQ1k-LYeEstNvTGgj3ZgiWRnnSKK0s9y-RA--j7rdwoLa6l8DvgmlgzZbt-bK81LvRGo17w
查看apiService
我是在41的master节点上运行的,因此需要将结果中的apiserver.cluster.local修改为自己对应的ip
最终我的apiserver的url是 https://192.168.1.41:6443
cat /etc/kubernetes/kubelet.conf | grep server
[root@k8s-master1 kuboard]# cat /etc/kubernetes/kubelet.conf | grep server
server: https://apiserver.cluster.local:6443
填写相关导入k8s集群的信息
查看添加的集群信息
完成!
到此k8s的安装学习告一段落。