目录
- 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
- 语法
- 示例
1. kubectl create
kubectl create
是 Kubernetes 中一个常用的命令,用于通过配置文件或 stdin 创建集群资源对象。该命令支持 JSON 和 YAML 格式的文件。
语法
kubectl create -f FILENAME
示例
通过配置文件创建一个 Pod:
kubectl create -f ./pod.json
通过 stdin 的 JSON 创建一个 Pod:
cat pod.json | kubectl create -f -
创建具有特定 API 版本的 JSON 格式的 docker-registry.yaml 文件:
kubectl create -f docker-registry.yaml --edit --output-version=v1 -o json
2. kubectl create clusterrole
kubectl create clusterrole
用于创建一个 ClusterRole(集群角色)。创建后的 ClusterRole 需要通过 ClusterRoleBinding 与用户、组和 ServiceAccount 进行绑定。
语法
kubectl create 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
kubectl create clusterrolebinding
用于为特定的 ClusterRole 创建 ClusterRoleBinding。
语法
kubectl create 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=group1
4. kubectl create configmap
kubectl create configmap
用于根据配置文件、目录或指定的 literal-value 创建 ConfigMap。
语法
kubectl create 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-literal=key1=value1 --from-literal=key2=value2
5. kubectl create deployment
kubectl create deployment
用于创建一个具有指定名称的 Deployment。
语法
kubectl create deployment NAME --image=image [--dry-run]
示例
创建一个名为 my-dep 的 Deployment,使用 busybox 镜像:
kubectl create deployment my-dep --image=busybox
6. kubectl create namespace
kubectl create namespace
用于创建一个具有指定名称的 Namespace。
语法
kubectl create namespace NAME [--dry-run]
示例
创建一个名为 my-namespace 的 Namespace:
kubectl create namespace my-namespace
7. kubectl create poddisruptionbudget
kubectl create poddisruptionbudget
用于使用指定的名称、selector 和所需的最小 Pod 数量创建一个 PodDisruptionBudget(PDB)。
语法
kubectl create poddisruptionbudget NAME --selector=labelname --min-available=count [--dry-run]
示例
创建一个名为 my-pdb 的 PodDisruptionBudget,使用 label “app=rails” 的 Pod,并确保至少有一个可用的 Pod:
kubectl create poddisruptionbudget my-pdb --selector=app=rails --min-available=1
8. kubectl create quota
kubectl create quota
用于创建具有指定名称、硬限制和可选 scopes 的 ResourceQuota。
语法
kubectl create quota NAME --hard=resource=quantity[,resource=quantity] [--scopes=Scope1,Scope2] [--dry-run]
示例
创建一个名为 my-quota 的 ResourceQuota,设置硬限制如下:
- cpu: 1
- memory: 1G
- pods: 2
- services: 3
- replicationcontrollers: 2
- resourcequotas: 1
- secrets: 5
- persistentvolumeclaims: 10
kubectl create quota my-quota --hard=cpu=1,memory=1G,pods=2,services=3,replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10
9. kubectl create role
kubectl create role
用于使用单一规则创建 Role,并通过 RoleBinding 将其绑定到用户、组或 ServiceAccount 上。
语法
kubectl create role NAME --verb=verb --resource=resource.group [--resource-name=resourcename] [--dry-run]
示例
创建一个名为 “pod-reader” 的 Role,允许用户在 Pod 上执行 “get”、“watch” 和 “list” 操作:
kubectl create role pod-reader --verb=get,list,watch --resource=pods
创建一个名为 “pod-reader” 的 Role,并指定 ResourceName:
kubectl create role pod-reader --verb=get,list,watch --resource=pods --resource-name=readablepod --resource-name=anotherpod
10. kubectl create rolebinding
kubectl create rolebinding
用于为特定的 Role 或 ClusterRole 创建 RoleBinding。
语法
kubectl create rolebinding NAME --role=NAME [--user=username] [--group=groupname] [--serviceaccount=namespace:serviceaccountname] [--dry-run]
示例
为名为 admin 的 Role 创建一个名为 “admin” 的 RoleBinding,并将其绑定到用户 user1、user2 和 group1:
kubectl create rolebinding admin --clusterrole=admin --user=user1 --user=user2 --group=group1
这些是关于 kubectl create 命令的一些示例和用法,您可以根据您的需求使用不同的选项和参数来创建各种资源对象。请注意,这只是一部分常见的用法,kubectl create 命令还支持其他选项和资源类型。如果您需要更详细的信息,请查阅 Kubernetes 官方文档。
参考文档:Kubernetes中文文档