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)名字为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] 1)名字为mylimit。
2)对容器进行限制。
3)最高只能消耗800M内存
官方网站,寻找模板
https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/#create-a-limitrange-and-a-pod
修改模板为下面的内容:
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"创建后会连同创建对应的secret
| 留言与评论(共有 0 条评论) “” |