kubernetes资源对象-RBAC控制:以练促学(四)

引子

kubernetes的资源对象是kubernetes体系中的重要组成部分,简单理解就是生成的kubernetes的系统应用,用来调度、编排我们的业务应用。是我们的业务应用与kubernetes的kube-controller组件,如:apiserver、kube-controller、kube-scheduler等之间的中间层,起到承上启下的作用。

将kubernetes的资源对象简单的分类为以下几种资源对象:

类别

名称

资源对象

Pod、ReplicaSet、ReplicationController、Deployment、StatefulSet、DaemonSet、Job、CronJob、HorizontalPodAutoscaling、Node、Namespace、Service、Ingress、Label、CustomResourceDefinition

存储对象

Volume、PersistentVolume、Secret、ConfigMap

策略对象

SecurityContext、ResourceQuota、LimitRange

身份对象

ServiceAccount、Role、ClusterRole

学习kubernetes的资源对象对入门kubernetes是十分重要的,但kubernetes的资源对象比较多,概念繁杂,容易让人困惑。

单单从理论出发,也容易让人无法留下较深的印象,故本系列直接从各种小练习出发,以练促学,在实践中加深对kubernetes资源对象的理解。同时也在实践找那个插入响应的理论讲解,理论与实践相辅相成,相辅促进。

关于kubernetes的简单入门,以及搭建一个简单的kubernetes集群,百度或者其他资讯平台都有很好的教程。关注作者,私信留言(kubernetes)直接赠送。

1.创建一个role,满足如下需求:

1)名字为role1。

2)此角色对pod具有get、create权限。

3)此角色对deployment具有get权限。

创建角色的yaml模板文件,然后进行修改

修改内容如下

[root@vms31 1-secure]# kubectl apply -f role1.yaml role.rbac.authorization.k8s.io/role1 created[root@vms31 1-secure]# [root@vms31 1-secure]# [root@vms31 1-secure]# cat role1.yaml apiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata:  creationTimestamp: null  name: role1rules:- apiGroups:  - ""  resources:  - pods  verbs:  - get  - create- apiGroups:  - apps  resources:  - deployments  verbs:  - get[root@vms31 1-secure]# kubectl get roleNAME    CREATED ATrole1   2021-09-07T02:33:48Z[root@vms31 1-secure]# kubectl describe role role1 Name:         role1Labels:       Annotations:  PolicyRule:  Resources         Non-Resource URLs  Resource Names  Verbs  ---------         -----------------  --------------  -----  pods              []                 []              [get create]  deployments.apps  []                 []              [get]

2创建limitrange,满足如下要求:

1)名字为mylimit。

2)对容器进行限制。

3)最高只能消耗800M内存

官方网站,寻找模板

https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/#create-a-limitrange-and-a-pod

修改模板为下面的内容:

3.创建resourcequota,满足如下要求:

1)名字为myquota。 2)在命名空间里,最多只能创建6个pod、6个svc。

实验开始:

首先,官方网站复制模板 https://kubernetes.io/zh/docs/tasks/administer-cluster/manage-resources/quota-pod-namespace/

[root@vms31 1-secure]# kubectl apply -f myquota.yaml resourcequota/myquota created[root@vms31 1-secure]# [root@vms31 1-secure]# [root@vms31 1-secure]# kubectl get resourcequotas NAME      AGE   REQUEST                    LIMITmyquota   19s   pods: 0/6, services: 0/6   [root@vms31 1-secure]# [root@vms31 1-secure]# [root@vms31 1-secure]# cat myquota.yaml apiVersion: v1kind: ResourceQuotametadata:  name: myquotaspec:  hard:    pods: "6"    services: "6"

4.创建一个名字为mysa的serviceaccount

创建后会连同创建对应的secret



发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章