- 1、kubectl create
- 语法
- 示例
- 2、kubectl create clusterrole
- 语法
- 示例
- 3、kubectl create clusterrolebinding
- 语法
- 示例
- 4、kubectl create configmap
- 语法
- 示例
- 5、kubectl create deployment
- 语法
- 示例
- 6、kubectl create namespace
- 语法
- 示例
- 7、kubectl create poddisruptionbudget
- 举例说明
- 语法
- 示例
- 8、kubectl create quota
- 语法
- 示例
- 9、kubectl create role
- 语法
- 示例
- 10、kubectl create rolebinding
- 语法
- 示例
通过配置文件名或stdin创建一个集群资源对象。
语法支持JSON和YAML格式的文件。
$ create -f FILENAME示例
通过pod.json文件创建一个pod。
kubectl create -f ./pod.json
通过stdin的JSON创建一个pod。
cat pod.json | kubectl create -f -
API版本为v1的JSON格式的docker-registry.yaml文件创建资源。
kubectl create -f docker-registry.yaml --edit --output-version=v1 -o json2、kubectl create clusterrole
语法创建一个ClusterRole(集群角色)。创建后的ClusterRole需通过ClusterRoleBinding来与user、group和serviceaccount进行绑定。
$ clusterrole NAME --verb=verb --resource=resource.group [--resource-name=resourcename] [--dry-run]示例
创建一个名为“pod-reader”的ClusterRole,允许用户在pod上执行“get”,“watch”和“list”
kubectl create clusterrole pod-reader --verb=get,list,watch --resource=pods
创建一个名为“pod-reader”的ClusterRole,其中指定了ResourceName
kubectl create clusterrole pod-reader --verb=get,list,watch --resource=pods --resource-name=readablepod --resource-name=anotherpod
在指定的API Group中创建为"foo"的ClusterRole
kubectl create clusterrole foo --verb=get,list,watch --resource=rs.extensions
创建一个名为“foo”的ClusterRole,并指定SubResource
kubectl create clusterrole foo --verb=get,list,watch --resource=pods,pods/status
使用指定的NonResourceURL创建名称“foo”的ClusterRole
kubectl create clusterrole "foo" --verb=get --non-resource-url=/logs/*3、kubectl create clusterrolebinding
语法为特定的ClusterRole创建ClusterRoleBinding。
$ clusterrolebinding NAME --clusterrole=NAME [--user=username] [--group=groupname] [--serviceaccount=namespace:serviceaccountname] [--dry-run]示例
在集群范围将cluster-admin ClusterRole授予用户user1,user2和group1。
kubectl create clusterrolebinding cluster-admin --clusterrole=cluster-admin --user=user1 --user=user2 --group=group14、kubectl create configmap
根据配置文件、目录或指定的literal-value创建configmap 。
存储配置文件或密钥文件等,可以将 configmap 直接绑定给对象(pod、deployment等),对象就可以直接使用。
configmap 用来保存一个或多个key/value信息。
当基于配置文件创建configmap时,key将默认为文件的基础名称,value默认为文件文本内容。如果基本名称的key无效,则可以指定另一个key。
语法当基于目录创建configmap时,key还是文件的基础名称,目录中每个配置文件名都被设置为key,文件内容设置为value。
$ configmap NAME [--from-file=[key=]source] [--from-literal=key1=value1] [--dry-run]示例
根据文件创建一个名为my-config的configmap
kubectl create configmap my-config --from-file=path/to/bar
使用指定的keys创建一个名为my-config的configmap
kubectl create configmap my-config --from-file=key1=/path/to/bar/file1.txt --from-file=key2=/path/to/bar/file2.txt
使用key1 = config1和key2 = config2创建一个名为my-config的configmap
kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2
从文件中的key = value对创建一个名为my-config的configmap
kubectl create configmap my-config --from-file=path/to/bar
从env文件创建一个名为my-config的configmap
kubectl create configmap my-config --from-env-file=path/to/bar.env5、kubectl create deployment
语法创建具有指定名称的deployment 。
$ deployment NAME --image=image [--dry-run]示例
创建一个名为my-dep的deployment,运行busybox镜像。
kubectl create deployment my-dep --image=busybox6、kubectl create namespace
语法创建一个具有指定名称的namespace。
$ namespace NAME [--dry-run]示例
创建一个名为my-namespace的namespace
kubectl create namespace my-namespace7、kubectl create poddisruptionbudget
举例说明使用指定的name、selector和所需的最小pod数量,创建一个pod disruption budget(PDB)。
例如:一个服务由有10个pod,指定最少需要8个(80%)pod在运行,那么在删除的时候最多就只能删除2个pod。为了保证在删除pod的同时,不影响服务正常运行。
语法$ poddisruptionbudget NAME --selector=SELECTOR --min-available=N [--dry-run]示例
创建名为my-pdb的pod disruption budget,使用app = rails label #来选择所有pod,要求至少1个Pod可用。
kubectl create poddisruptionbudget my-pdb --selector=app=rails --min-available=1
创建名为my-pdb的pod disruption budget,使用app = nginx label #选择所有pod,要求至少50%Pod可用。
kubectl create pdb my-pdb --selector=app=nginx --min-available=50%8、kubectl create quota
语法创建具有指定名称、hard限制和可选scopes的resourcequota,主要是用来限制CPU、内存、磁盘等配置。
$ quota NAME [--hard=key1=value1,key2=value2] [--scopes=Scope1,Scope2] [--dry-run=bool]示例
创建名为my-quota的resourcequota
kubectl create quota my-quota --hard=cpu=1,memory=1G,pods=2,services=3,replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10
创建名为best-effort的resourcequota
kubectl create quota best-effort --hard=pods=100 --scopes=BestEffort9、kubectl create role
语法使用单一规则创建Role。再通过RoleBinding将Role绑定给user、group和serviceaccount。
$ role NAME --verb=verb --resource=resource.group/subresource [--resource-name=resourcename] [--dry-run]示例
创建名为“pod-reader”的Role ,允许用户在pod上执行“get”,“watch”和“list”
kubectl create role pod-reader --verb=get --verb=list --verb=watch --resource=pods
创建名为“pod-reader”的Role,并指定ResourceName
kubectl create role pod-reader --verb=get,list,watch --resource=pods --resource-name=readablepod --resource-name=anotherpod
使用指定的API Group 创建名为“foo”的Role
kubectl create role foo --verb=get,list,watch --resource=rs.extensions
使用指定的SubResource创建名为“foo”的Role
kubectl create role foo --verb=get,list,watch --resource=pods,pods/status10、kubectl create rolebinding
语法为特定Role或ClusterRole创建RoleBinding。
$ rolebinding NAME --clusterrole=NAME|--role=NAME [--user=username] [--group=groupname] [--serviceaccount=namespace:serviceaccountname] [--dry-run]示例
将admin ClusterRole授予user1,user2和group1。
kubectl create rolebinding admin --clusterrole=admin --user=user1 --user=user2 --group=group1
参考文档:Kubernetes中文文档



