前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cluster Setup - GUI Elements GUI仪表盘

Cluster Setup - GUI Elements GUI仪表盘

原创
作者头像
对你无可奈何
修改2021-03-11 17:58:01
1.2K0
修改2021-03-11 17:58:01
举报
文章被收录于专栏:运维专栏

1. 前言

https://cloud.tencent.com/act?from=10680

https://cloud.tencent.com/act/season?from=14065

https://cloud.tencent.com/?from=10680

(照旧加几个腾讯云连接)

这部分主要讲了kubernetes的Gui工具 dashboard。

1. 关于 GUI元素的访问控制

1. GUI元素和仪表盘
2. 外部访问仪表盘的方法
3. 访问的限制

2. GUI元素和仪表盘遵循的原则

1. 只在需要时向外部公开服务
2. 集群内部服务/仪表板也可以使用kubectl port-forward端口转发访问。
3. 需要开启rbac权限控制,否则蒋导致权限过大
4. 对外暴露不是必须的

2. 代理的方式

1. 关于 Kubectl porxy方式

代码语言:javascript
复制
1. create a proxy server between localhost and the kubernetes api server   在               localhost和kubernetes api服务器之间创建代理服务器
2. uses connection as configured in the kubeconfig  使用kubeconfig中配置的连接
3. allows to access api locally just over http and without authentication  允许通过HTTP本地访问api,无需身份验证

2. 关于kubectl port-forward

代码语言:javascript
复制
1. 将本地主机端口的连接转发到pod端口
2. 比使用kubectl代理更为通用
3. 可以用于所有tcp通信而不仅仅是http

3. ingress代理的方式,ingress-nginx traefik等等都可以

3. 安装和登陆dashboard gui

1.安装dashboard
代码语言:javascript
复制
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.1.0/aio/deploy/recommended.yaml
2. 使dashboard对外暴露(使用http的方式,在生产中这是禁止的)
代码语言:javascript
复制
root@cks-master:~/work/dashboard# kubectl get pod,svc -n kubernetes-dashboard
NAME                                             READY   STATUS    RESTARTS   AGE
pod/dashboard-metrics-scraper-79c5968bdc-mbgk7   1/1     Running   0          19m
pod/kubernetes-dashboard-6568c7684c-9n6vp        1/1     Running   3          3m41s

NAME                                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/dashboard-metrics-scraper   ClusterIP   10.97.159.164   <none>        8000/TCP         19m
service/kubernetes-dashboard        NodePort    10.97.34.204    <none>        9090:32740/TCP   19m

NodePort端口可以用master或者work节点任意一IP+端口方式访问

4. 练习-用于仪表板的RBAC

我觉得关于rolebinding clusterrolebinding两个的区别有必要强调一下啊,一个是针对于命名空间的,另外一个是针对所有空间的。

代码语言:javascript
复制
 #针对与一个命名空间
kubectl -n kubernetes-dashboard create rolebinding insecure --serviceaccount kubernetes-dashboard:kubernetes-dashboard --clusterrole view 


#针对于所有空间
kubectl create clusterrolebinding insecure --serviceaccount kubernetes-dashboard:kubernetes-dashboard --clusterrole view

5. so正常的部署方式

代码语言:javascript
复制
#部署
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.1.0/aio/deploy/recommended.yaml
#修改网络类型NodePort
kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard

https方式登陆

获取token

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

将token复制进去 oK登陆成功

至于kuberconfig的方式就不去试了,因为config里面都设置的内网ip。apiserver没有对外暴露

4. 总结:

  1. 尽在你需要的时候对外暴露,并且要保障足够的安全
  2. 弃用RBAC限制
  3. 实施用户认证
  4. 凭据要经常更改

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 前言
    • 1. 关于 GUI元素的访问控制
      • 1. GUI元素和仪表盘
      • 2. 外部访问仪表盘的方法
      • 3. 访问的限制
    • 2. GUI元素和仪表盘遵循的原则
      • 1. 只在需要时向外部公开服务
      • 2. 集群内部服务/仪表板也可以使用kubectl port-forward端口转发访问。
      • 3. 需要开启rbac权限控制,否则蒋导致权限过大
      • 4. 对外暴露不是必须的
  • 2. 代理的方式
    • 1. 关于 Kubectl porxy方式
      • 2. 关于kubectl port-forward
        • 3. ingress代理的方式,ingress-nginx traefik等等都可以
          • 1.安装dashboard
          • 2. 使dashboard对外暴露(使用http的方式,在生产中这是禁止的)
      • 3. 安装和登陆dashboard gui
      • 4. 练习-用于仪表板的RBAC
      • 5. so正常的部署方式
      • 4. 总结:
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档