Arron的博客

导航

k8s常用命令

语法

kubectl [command] [TYPE] [NAME] [flags]

其中:

  • command:对资源执行的操作,如  create、get、describe、delete。
  • TYPE:资源类型,不区分大小写,可以是单数、复数或缩写形式,以下命令输出结果相同:
    • kubectl get pod pod1
    • kubectl get pods pod1
    • kubectl get po pod1
  • NAME:资源名称,区分大小写,省略则显示所有资源的详细信息,如 kubectl get pods。对多个资源操作时,可以按类型和名称指定每个资源,或指定一个或多个文件
    • 类型相同的资源,如:kubectl get pod example-pod1 example-pod2
    • 多个资源类型,如:kubectl get pod/example-pod1 replicationcontroller/example-rc1
    • 一个或多个文件,如:kubectl get -f pod1.yaml -f pod2.yaml
  • flags:可选参数,如,使用 -s 或 --server 参数指定 Kubernetes API 服务器的地址和端口。

常用命令

kubectl get

kubectl get pods -A  # 查看所有命名空间下的所有pod,-A与--all-namespaces效果相同
kubectl get pods -n namespace1 pod1    # 查看命名空间namespace1下的指定pod
kubectl get pods -o wide    # 查看默认命名空间下的所有pod,并包含附加信息,如节点名
kubectl get rc,svc -A # 查看所有副本控制器和服务
kubectl get pods -o yaml  # 查看默认命名空间下的所有pod,以yaml格式显示
kubectl get ns  # 查看命名空间列表
kubectl get nodes  # 节点和服务版本信息
kubectl get deploy -A # 查看所有部署

kubectl apply

kubectl apply -f example-service.yaml    # 使用 example-service.yaml 中的定义应用或更新服务
kubectl apply -f <directory>  # 应用资源,该目录下的所有 .yaml, .yml, 或 .json 文件都会被使用

kubectl describe

kubectl describe pods/nginx  # 描述名称为nginx的pod的信息
kubectl describe po -l name=label0 # 描述label名为label0的pod信息

kubectl delete

kubectl delete -k dir  # 使用目录下的yaml删除
kubectl delete -f pod.yaml  # 使用 pod.yaml 文件中指定的类型和名称删除 pod
kubectl delete pod,svc -l name=myLabel  # 删除label名为myLabel的pod和service
kubectl delete pods --all  # 删除所有pod,包括未初始化的pod

kubectl exec

kubectl exec <pod-name> -c <container-name> -- date  # 运行输出 'date' 获取在 Pod <pod-name> 中容器 <container-name> 的输出。
kubectl exec -ti <pod-name> -- /bin/bash  # 获取一个交互 TTY 并在 Pod  <pod-name> 中运行 /bin/bash。默认情况下,输出来自第一个容器。

kubectl logs

kubectl logs nginx  # 查看名称为nginx的Pod中只有一个容器的日志
kubectl logs -f -c ruby web-1  # 查看名称为web-1的pod中的名称为ruby的容器的日志流
kubectl logs --since=1h nginx  # 显示名称为nginx的pod中,最近一小时的全部日志
kubectl logs deployment/nginx -c nginx-1  # 查看名称为nginx的deployment中的容器叫做nginx-1的日志

kubectl scale

kubectl scale --replicas=3 rs/foo  # 将名为foo的pod副本数设置为3
kubectl scale --replicas=3 -f foo.yaml  # 将由“foo.yaml”配置文件中指定的资源对象和名称标识的Pod资源副本设为3。
kubectl scale --current-replicas=2 --replicas=3 deployment/mysql  # 如果当前副本数为2,则将其扩展至3。
kubectl scale --replicas=5 rc/foo rc/bar rc/baz  # 设置多个RC中Pod副本数量。

 kubectl expose

kubectl expose deployment tomcat6 --port=80 --target-port=8080 --type=NodePort  # Pod的80端口映射容器的8080;service会代理Pod的80并开放一个随机端口供集群外部访问服务

 

 

posted on 2022-07-02 13:46  aaron_shu  阅读(390)  评论(0编辑  收藏  举报