分享好友 最新动态首页 最新动态分类 切换频道
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

最新文章
站长必备高效工具,助力网站运营效率大幅提升
  在当今数字化时代,网站运营效率对于任何一个站长来说都是至关重要的。一个高效运营的网站不仅可以提升用户体验,还能增加网站的流量和收益。为了实现这一目标,站长们可以借助一些必备工具来提升网站的运营效率。  一个优秀的网站分
欧洲杯克罗地亚队11威尔士队(2020欧洲杯克罗地亚国家队阵容)
1、克罗地亚vs威尔士比分2、世界足球国家队排名前三十3、欧洲杯积分榜排名4、欧洲杯都有哪些国家5、2024欧洲杯预选赛积分榜最新6、克罗地亚和威尔士哪个强年3月22日03:45,以色列VS冰岛,比分2:2。2024年3月22日03:45,威尔士VS芬兰,比
路由器助手
《路由器助手》是款非常好用的路由器连接助手,适用于路由器的PPPoE协议拨号,让你在手机一键轻松设置密码。你还等什么?赶快下载体验吧。本软件为Android手机端路由器连接助手,适用于路由器的PPPoE协议拨号。为了软件体验及质量,我们不投
SLAM优化算法:图优化和凸优化算法的区别
小白:师兄师兄,最近我在看SLAM的优化算法,有种方法叫“图优化”,以前学习算法的时候还有一个优化方法叫“凸优化”,这两个不是一个东西吧?师兄:哈哈,这个问题有意思,虽然它们中文发音一样,但是意思差别大着呢!我们来看看英文表达
"赛博演猿:全球领先的人工智能数字人AIGC平台" – 技术分享
网址:https://www.zr-ai.com/在数字化时代,人工智能和数字人技术正在重塑我们的互动方式和内容创作。赛博演猿,作为全球领先的人工智能数字人AIGC平台,正以其自主研发的创新技术,为数字人领域带来革命性的变化。一、集成前沿技术的数字
美术画架双面画板儿童学习画板益智玩具多功能带画纸白板黑板0918信息
产品详细说明:产品名称:美术画架双面画板儿童学习画板益智玩具多功能带画纸白板黑板0918产品货号:SXR-0918产品规格:73x56x8CM玩具启迪:1、画画可以发挥孩子的想象力,是一种表达感情的方式。2、画画可以锻炼孩子小手的灵活性和协调性,
从群晖Web Station安装WordPress&PhpMyAdmin看shell的使用
创作立场声明:我再本文中描述的文字内容,为本人亲手创作。感谢小米机械键盘,感谢lg显示器,感谢mac系统,感谢chrome浏览器为本文做的贡献。借着最近蜗牛比较火,我也跟风买了一台,相对其他nas系统来说比较方便,如果你有公网IP可以尝试
www.131pk.com
通过本工具可以快速查询到您站点的谷歌(www.google.com)、百度(www.baidu.com)、必应(cn.bing.com)、雅虎(cn.yahoo.com)、搜搜(www.soso.com)、搜狗(www.sogou.com)、有道(www.youdao.com)等搜索引擎收录情况及反向链接;可以快速查询到谷
Sonar软件下载指南,一键获取使用教程与安装步骤,轻松上手!
Sonar下载指南,提供简单易懂的教程和安装步骤,让您轻松获取使用Sonar的方法。本指南详细介绍了Sonar软件的下载、安装和使用过程,帮助您快速掌握Sonar软件的使用技巧,提高工作效率。无论您是初学者还是专业人士,都能通过本指南轻松上手
ourplay游戏加速器 7.4.4 更新:2024-12-13备案号:沪ICP备17010969号-9A
ourplay安卓版,智能全局搜索,随时随地体验全球精品游戏和应用。ourplay游戏加速器,一般又称OurPlay,谷歌加速器。PUBG NEW STATE抢先畅玩,得限量版跑车皮肤, 11月11日开放测试!OurPlay加速器是一款自带谷歌服务框架的免费加速器,智能
相关文章
推荐文章
发表评论
0评