kubernetes常用的基础命令

kubernetes常用的基础命令_第1张图片
kubernetes常用的基础命令_第2张图片

1.create
kubectl create deployment nginx --image=nginx --namespace=default
创建一个deployment类型的控制器nginx,并且容器镜像为nginx,命名空间default(也可以创建命名空间)
kubectl create -f xxx.yaml 指定文件创建

命名空间的管控
1.创建一个命名空间 kubectl create namespace xxx
2.创建pod和service都需要指定新的命名空间 kubectl create deployment nginx --image=nginx --namespace=xxx service同理
3.命名空间删除以后下面的所有pod以及service或者其他的全部清空

kubectl delete namespaces xxx
2.expose
kubectl expose deployment nginx --port=80 --type=NodePort --target-port=80
kubectl expose -f xxx.yaml
创建service对应nginx控制器
port:service暴露在Cluster IP上面的端口,是提供给集群内部客户访问service的入口
target port:是pod上的端口
nodeport:是kubernetes提供给集群外部客户访问的一种方式
3.set
作用于修改信息只不过跟edit方式不是很一样
kubectl set image deployment/nginx nginx=nginx:1.15
更换nginx所有镜像为nginx1.15
4.edit
给一个vi编辑器,进入pod或者service所使用的yaml文件中,进行修改,如果修改错误,会无法退出,修改成功以后,会按照你改的拉起一个新的service或者pod,完全拉起以后,删除旧的
kubectl edit deployment nginx
5.delete
格式:Kubectl delete 资源类型 资源
kubectl delete deployment nginx
删除deployment类型的控制器nginx
6.rollout
kubectl rollout history deployment nginx
查看历史更改
kubectl rollout undo deployment nginx
版本回滚
kubectl rollout pause deployment nginx
暂停某个更新

7.scale(水平伸缩)
kubectl scale deployment --replicas=3 nginx
给某些资源做水平的伸缩扩展
8.autoscale
kubectl autoscale deployment nginx --max=5 --min=3 --name=xxx
给某些资源做水平的伸缩,伸缩带弹性,当压力大的时候增加,压力小的时候缩小,如上所示,最大为5,最小为3,指定名字为xxx,
删除姿势
kubectl delete horizontalpodautoscalers.autoscaling/nginx
查看姿势
kubectl get horizontalpodautoscalers.autoscaling

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: nginx
spec:
  maxReplicas: 5
  minReplicas: 1
  scaleTargetRef:
    apiVersion: v1
    kind: Deployment
    name: nginx
  targetCPUUtilizationPercentage: 50

#deployment的nginx cpu如果负荷超过百分至50那么就会扩容最大为5,最小为1
9.describe
kubectl describe deployment nginx
查询详细事件信息
10.logs
kubectl logs nginx-554b9c67f9-tf625
查询具体某个容器的服务日志
11.exec
与docker的exec类似
kubectl exec -it nginx-554b9c67f9-tf625 bash #进入容器
kubectl exec nginx-554b9c67f9-tf625 ls #在容器中执行命令,打印在当前
如果一个pod中跑了多个容器那么要进入xx个pod的x个容器
Kubectl exec -it pod -c 容器 /bin/bash
12.apply
主要用于通过文件更新
kubectl apply -f 2.yaml
通过文件对已经运行的容器以及其他资源进行增加限制或者其他的
13.label
kubectl label deployment nginx ttt=aaa

标签: 一个资源可拥有不止一个标签 同一个标签也可以被添加多个资源对象 标签可以在资源创建添加,也可以创建之后增删改 可以从多个维度来定义

版本标签:稳定版 开发板 等等 key=value key和value 不能超过63 key:只能使用字母、数字、、.、-
只能以字母数字开头 value:可以为空,只能以字母和数字开头及结尾,中间可以使用 字母、数字、
、.、- 要做到简明之意,不能乱贴
kubectl get pod -n kube-system -L k8s-app L表示制定资源对象下所有对象的的标签对应的值
l标签过滤 查看只拥有xxx个标签的 kubectl label pod xxx xxx=xxx 改标签
标签选择器:
等值关系:=,==,!= 集合关系: KEY in (VALUE1,VALUE2,…) KEY notin (VALUE1,VALUE2,…)
KEY !KEY
许多资源支持内嵌字段定义其使用的标签选择器: matchLabels:直接给定键值 matchExpressions:基于给定的表达式来定义使用标签选择器,{key:“KEY”, operator:“OPERATOR”,
values:[VAL1,VAL2,…]} 操作符: In,
NotIn:values字段的值必须为非空列表; Exists,
NotExists:values字段的值必须为空列表; nodeSelector
节点标签选择器, nodeName
annotations:
与label不同的地方在于,它不能用于挑选资源对象,仅用于为对象提供“元数据”

14.get
用于查看信息
kubectl get svc,pod,ep,ns
–show-label 可以查看标签

你可能感兴趣的:(kubernetes,命令行)