分享好友 最新动态首页 最新动态分类 切换频道
k8s service管理之WEB管理工具Dashboard
2024-12-26 23:03

- Dashboard是基于网页的Kubernetes用户界面。

- Dashboard同时展示了Kubernetes集群中的资源状态信息和所有报错信息。

- 可以使用Dashboard将应用部署到集群中,也可以对容器应用排错,还能管理集群资源。列如,你可以对应用弹性伸缩、发起滚动升级、重启等等。

- Dashboard官网:https://github.com/kubernetes/dashboard

# 导入Ingress镜像到私有仓库

[root@master dashboard]# docker load -i dashboard.tar.xz

[root@master dashboard]# docker images|while read i t _;do

  [[ "${t}" == "TAG" ]] && continue

  [[ "${i}" =~ ^"harbor:443/".+ ]] && continue

  docker tag ${i}:${t} harbor:443/plugins/${i##*/}:${t}

  docker push harbor:443/plugins/${i##*/}:${t}

  docker rmi ${i}:${t} harbor:443/plugins/${i##*/}:${t}

done

# 修改配置文件

[root@master dashboard]# sed -ri 's,^(s*image: )(.*/)?(.+),1harbor:443/plugins/3,' recommended.yaml

193:   image: harbor:443/plugins/dashboard:v2.7.0

278:   image: harbor:443/plugins/metrics-scraper:v1.0.8

[root@master dashboard]# kubectl apply -f recommended.yaml

[root@master dashboard]# kubectl -n kubernetes-dashboard get pods

NAME                                                                  READY   STATUS   RESTARTS

dashboard-metrics-scraper-66f6f56b59-b42ng   1/1           Running   0

kubernetes-dashboard-65ff57f4cf-lwtsk              1/1           Running   0

# 查看服务状态

[root@master dashboard]# kubectl -n kubernetes-dashboard get service

NAME                       TYPE       CLUSTER-IP       PORT(S)

dashboard-metrics-scraper   ClusterIP   10.245.205.236   8000/TCPkubernetes-dashboard       ClusterIP   10.245.215.40    443/TCP

# 获取服务资源对象文件

[root@master dashboard]# vim dashboard-svc.yaml

---

kind: Service

apiVersion: v1

metadata:

  labels:

    k8s-app: kubernetes-dashboard

  name: kubernetes-dashboard

  namespace: kubernetes-dashboard

spec:

  type: NodePort

  ports:

     - port: 443

       nodePort: 30443

       targetPort: 8443

  selector:

     k8s-app: kubernetes-dashboard

[root@master dashboard]# kubectl apply -f dashboard-svc.yaml

service/kubernetes-dashboard configured

[root@master dashboard]# kubectl -n kubernetes-dashboard get service

NAME                                        TYPE         CLUSTER-IP         PORT(S)

dashboard-metrics-scraper       ClusterIP    10.245.205.236     8000/TCP

kubernetes-dashboard              NodePort    10.245.215.40       443:30443/TC

- 使用云平台将弹性公网IP绑定到任意节点,就可以通过浏览器访问服务 

- 所有Kubernetes集群都有两类用户:由Kubernetes管理的服务帐号和普通用户。

- 普通用户是以证书或密钥形式签发,主要用途是认证和鉴权,集群中并不包含用来代表普通用户帐号的对象,普通用户的信息无法调用和查询。

- 服务帐号是Kubernetes API所管理的用户。它们被绑定到特定的名称空间,与一组Secret凭据相关联,供Pod调用以获得相应的授权。

# 资源对象模板

[root@master ~]# kubectl -n kubernetes-dashboard create serviceaccount kube-admin --dry-run=client -o yaml

[root@master ~]# vim admin-user.yaml

---

kind: ServiceAccount

apiVersion: v1

metadata:

  name: kube-admin

  namespace: kubernetes-dashboard

[root@master ~]# kubectl apply -f admin-user.yaml

serviceaccount/kube-admin created

[root@master ~]# kubectl -n kubernetes-dashboard get serviceaccounts

NAME                              SECRETS   AGE

default                               0                 16m

kube-admin                       0                 11s

kubernetes-dashboard      0                 16m 

# 使用token登录dashboard

[root@master ~]# kubectl -n kubernetes-dashboard create token kube-admin

<Base64 编码的令牌数据>

如果想访问和管理kubernetes集群,就要对身份以及权限做验证,kubernetes支持的鉴权模块有Node、RBAC、ABAC、Webhook API。

- Node:一种特殊用途的鉴权模式,专门对kubelet发出的请求进行鉴权。

- RBAC:是一种基于组织中用户的角色来控制资源使用的方法。

- ABAC:基于属性的访问控制,是一种通过将用户属性与权限组合在一起像用户授权的方法。

- Webhook:是一个HTTP回调。

# 查询当前集群使用的鉴权方法

[root@master ~]# kubectl cluster-info dump |grep authorization-mode

                           "--authorization-mode=Node,RBAC",

# 查询资源对象的权限信息

[root@master ~]# kubectl api-resources -o wide

NAME                               NAMESPACED         KIND                            VERBS

bindings                             true                           Binding                        [create]

componentstatuses           false                          ComponentStatus       [get list]

configmaps                        true                           ConfigMap                   [create delete deletecollection get list patch update watch]

RBAC声明了 四种Kubernetes对象

- Role:用来在某一个名称空间内创建授权角色,创建Role时,必须指定所属的名称空间的名字。

- ClusterRole:可以和Role相同完成授权。单属于集群范围,对所有名称空间有效。

- RoleBinding:是将角色中定义的权限赋予一个或者一组用户,可以使用Role或ClusterRole完成授权。

- ClusterRoleBinding:在集群范围执行授权,对所有名称空间有效,只能使用ClusterRole完成授权。

资源对象角色与作用域

资源对象描述作用域ServiceAccount服务账号,为 Pod 中运行的进程提供了一个身份单一名称空间Role角色,包含一组代表相关权限的规则单一名称空间ClusterRole角色,包含一组代表相关权限的规则全集群RoleBinding将权限赋予用户,Role、ClusterRole 均可使用单一名称空间ClusterRoleBinding将权限赋予用户,只可以使用 ClusterRole全集群

资源对象权限: 

createdeletedeletecollectiongetlistpatchupdatewatch创建删除删除集合获取属性获取列表补丁更新监控

[root@master ~]# kubectl -n default create role myrole --resource=pods --verb=get,list --dry-run=client -o yaml

[root@master ~]# kubectl -n default create rolebinding kube-admin-role --role=myrole --serviceaccount=kubernetes-dashboard:kube-admin --dry-run=client -o yaml

[root@master ~]# vim myrole.yaml

---

kind: Role

apiVersion: rbac.authorization.k8s.io/v1

metadata:

  namespace: default

  name: myrole # 角色名称

rules: # 规则

- apiGroups: # 资源对象所属组信息

  - "" # 分组信息

  resources: # 要设置权限的资源对象

  - pods # 授权资源对象名称

  verbs: # 权限设置

  - get # 权限

  - list # 权限

---

kind: RoleBinding

apiVersion: rbac.authorization.k8s.io/v1

metadata:

  namespace: default

  name: kube-admin-role                         # 授权策略名称

roleRef:                                                   # 关联权限

  apiGroup: rbac.authorization.k8s.io      # 角色对象

  kind: Role                                              # 角色对象

  name: myrole                                        # 角色名称

subjects:                                                  # 授权信息

- kind: ServiceAccount                            # 帐号资源对象

  name: kube-admin                                # 帐号名称

  namespace: kubernetes-dashboard     # 帐号所在的名称空间

[root@master ~]# kubectl apply -f myrole.yaml

role.rbac.authorization.k8s.io/myrole created

rolebinding.rbac.authorization.k8s.io/kube-admin-role created

[root@master ~]# kubectl delete -f myrole.yaml

role.rbac.authorization.k8s.io "myrole" deleted

rolebinding.rbac.authorization.k8s.io "kube-admin-role" deleted

[root@master ~]# kubectl get clusterrole

NAME                             CREATED AT

admin                              2022-06-24T08:11:17Z

cluster-admin                  2022-06-24T08:11:17Z

... ...

# 资源对象模板

[root@master ~]# kubectl create clusterrolebinding kube-admin-role --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:kube-admin --dry-run=client -o yaml

[root@master ~]# vim admin-user.yaml

---

kind: ServiceAccount

apiVersion: v1

metadata:

  name: kube-admin

  namespace: kubernetes-dashboard

---

kind: ClusterRoleBinding

apiVersion: rbac.authorization.k8s.io/v1

metadata:                                                # 元数据

  name: kube-admin-role                         # 授权策略名称

roleRef:                                                    # 关联权限

  apiGroup: rbac.authorization.k8s.io       # 角色对象组

  kind: ClusterRole                                   # 角色对象

  name: cluster-admin                              # 角色名称

subjects:                                                   # 授权信息

- kind: ServiceAccount                             # 帐号资源对象

  name: kube-admin                                 # 帐号名称

  namespace: kubernetes-dashboard      # 帐号所在的名称空间

[root@master ~]# kubectl apply -f admin-user.yaml

serviceaccount/kube-admin unchanged

最新文章
厦门一站式网站建设服务,打造专业高效在线平台
在当今互联网时代,拥有一个专业的网站对于企业来说至关重要,厦门,这座美丽的海滨城市,同样需要一套全面、高效的网站建设服务来助力企业的发展,本文将为您详细介绍厦门全套网站建设的相关内容,帮助您了解如何打造一个专业、高效的在线
油腻妹的运动套装晒单真人秀 女生运动套装分享
之前在张大妈发了个《不做油腻男》的专题晒单,本来想塑造干净清爽的正面形象。不幸留下油腻叔的形象,如此以往,我怎么在张大妈美妆时尚界立足!痛定思痛,暂缓一期发自己的东西,先帮“油腻叔他老妹”发下晒单真人秀,希望大家忘记过去的
红魔5G游戏手机评测:我们测试了9款游戏,最终得到一个答案
3月12日,预热许久的红魔5G游戏手机终于发布,这是红魔首款5G智能旗舰,也是红魔游戏手机的堆料极致之作。IT之家第一时间拿到了这款产品,本篇文章将和小伙伴们一起分享一下红魔5G游戏手机的实际体验。第一部分:外观游戏手机,外观可以不
告诉你制作一个类似闲鱼的商城小程序需要多少钱?
一、制作一个类似制作一个类似二、制作一个类似小程序需要多少钱? 这个是要根据大家的小程序开发需求来决定的,就跟大家买车一样为什么有的价格贵,有的价格便宜,影响车的价格因素也有很多,例如车的配置、性能、外形、质量等,类似闲鱼
中国每年在沙特进口多少石油?
2020年我国进口石油总量达到了54239万吨,同比增长7.3%。即石油对外依存度在2020年升至73.56%。我国进口石油的前十大来源国——按进口量大小排序,前十名依次是:沙特阿拉伯、俄罗斯、伊拉克、巴西、安哥拉、阿曼、阿联酋、科威特、美国、
跨境电商快速发展 亚马逊发力“低价”与AI选品
  2024年前三季度,中国进出口额达到1.88万亿元人民币,同比增长11.5%,创下历史新高。  数据也显示,过去一年,中国卖家通过全球站点向消费者以及企业和机构客户所售出的商品数量,同比增长超过20%;过去两年,在全球站点销售额超100
腾讯云轻量应用服务器安装WordPress教程
最近想搭建一个个人博客网站,自己写代码开发还是有点麻烦,所以想基于 WordPress 快速搭建一个博客。趁着双十一搞活动,在腾讯云购买了一个轻量应用服务器,很便宜只需要80元一年,适合搭建个人网站。轻量
福州专业做网站的公司/沙洋县seo优化排名价格
大家可能已经听说过比特币、莱特币、以太币等等,以及它们作为一种新货币在市场上的潜力。 有趣的是,很多投资比特币的人也提到了区块链之类的东西。 显然,这项技术是比特币等其他东西的"基础"。 就好像比特币
百度资源(站长)平台怎么提交收录?
数据集提供了关于新私家车注册和燃料类型的详细统计数据。这个数据集包含了不同国家或地区在一定时期内新注册的私家车数量,以及这些车辆所使用的燃料类型分布。这些信息对于分析汽车市场趋势、能源消耗模式以及环境影响等方面具有重要价值
加拿大起酥油报关代理公司,进口食品原料上海港清关
2015年02月10日钱小玮1000上海代理报关,上海报关公司,上海港进口报关公司从事货物及技术进出口业务,预包装食品(含熟食卤味、冷冻冷藏)的批发非实物方式,酒类、化工原料及产品(除危险化学品、监控化学品、烟花爆竹、民用爆炸物品、易制
相关文章
推荐文章
发表评论
0评