栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Kubernetes学习---kubectl命令使用(2)(create系列)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kubernetes学习---kubectl命令使用(2)(create系列)

目录
  • 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

通过配置文件名或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 json
2、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=group1
4、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.env
5、kubectl create deployment

创建具有指定名称的deployment 。

语法
$ deployment NAME --image=image [--dry-run]
示例

创建一个名为my-dep的deployment,运行busybox镜像。

kubectl create deployment my-dep --image=busybox
6、kubectl create namespace

创建一个具有指定名称的namespace。

语法
$ namespace NAME [--dry-run]
示例

创建一个名为my-namespace的namespace

kubectl create namespace my-namespace
7、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 #来选择所有po​​d,要求至少1个Pod可用。

kubectl create poddisruptionbudget my-pdb --selector=app=rails --min-available=1

创建名为my-pdb的pod disruption budget,使用app = nginx label #选择所有po​​d,要求至少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=BestEffort
9、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/status
10、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中文文档

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/679926.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号