引子
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/v1
kind: Role
metadata:
creationTimestamp: null
name: role1
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- create
- apiGroups:
- apps
resources:
- deployments
verbs:
- get
[root@vms31 1-secure]# kubectl get role
NAME CREATED AT
role1 2021-09-07T02:33:48Z
[root@vms31 1-secure]# kubectl describe role role1
Name: role1
Labels: <none>
Annotations: <none>
PolicyRule:
Resources Non-Resource URLs Resource Names Verbs
--------- ----------------- -------------- -----
pods [] [] [get create]
deployments.apps [] [] [get]
2 创建limitrange,满足如下要求:
1)名字为mylimit。
2)对容器进行限制。
3)最高只能消耗800M内存
官方网站,寻找模板
修改模板为下面内容:
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 LIMIT
myquota 19s pods: 0/6, services: 0/6
[root@vms31 1-secure]#
[root@vms31 1-secure]#
[root@vms31 1-secure]# cat myquota.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
name: myquota
spec:
hard:
pods: "6"
services: "6"
4.创建一个名字为mysa的serviceaccount
创建后会连同创建对应的secret
评论区