当前位置:   article > 正文

k8s 命令行参考_kubernetes get 缩写

kubernetes get 缩写

基操:

缩写:

  1. # kubectl get option 缩写
  2. -namespace -n
  3. --all-namespaces -A
  4. --filename=[] -f
  5. --kustomize='' -k
  6. --label-columns -L
  7. --output='' -o
  8. --recursive -R
  9. --selector -l
  10. --watch -w
  11. # kubectl create option 缩写
  12. 和get基本一致
  13. # kubectl delete option 缩写
  14. 和get基本一致
  15. # kubectl logs option 缩写
  16. --container -c
  17. --follow -f
  18. --previous -p
  19. --selector -l
  20. # 对象缩写
  21. NAME SHORTNAMES APIGROUP NAMESPACED KIND
  22. bindings true Binding
  23. componentstatuses cs false ComponentStatus
  24. configmaps cm true ConfigMap
  25. endpoints ep true Endpoints
  26. events ev true Event
  27. limitranges limits true LimitRange
  28. namespaces ns false Namespace
  29. nodes no false Node
  30. persistentvolumeclaims pvc true PersistentVolumeClaim
  31. persistentvolumes pv false PersistentVolume
  32. pods po true Pod
  33. podtemplates true PodTemplate
  34. replicationcontrollers rc true ReplicationController
  35. resourcequotas quota true ResourceQuota
  36. secrets true Secret
  37. serviceaccounts sa true ServiceAccount
  38. services svc true Service
  39. mutatingwebhookconfigurations admissionregistration.k8s.io false MutatingWebhookConfiguration
  40. validatingwebhookconfigurations admissionregistration.k8s.io false ValidatingWebhookConfiguration
  41. customresourcedefinitions crd,crds apiextensions.k8s.io false CustomResourceDefinition
  42. apiservices apiregistration.k8s.io false APIService
  43. controllerrevisions apps true ControllerRevision
  44. daemonsets ds apps true DaemonSet
  45. deployments deploy apps true Deployment
  46. replicasets rs apps true ReplicaSet
  47. statefulsets sts apps true StatefulSet
  48. tokenreviews authentication.k8s.io false TokenReview
  49. localsubjectaccessreviews authorization.k8s.io true LocalSubjectAccessReview
  50. selfsubjectaccessreviews authorization.k8s.io false SelfSubjectAccessReview
  51. selfsubjectrulesreviews authorization.k8s.io false SelfSubjectRulesReview
  52. subjectaccessreviews authorization.k8s.io false SubjectAccessReview
  53. horizontalpodautoscalers hpa autoscaling true HorizontalPodAutoscaler
  54. cronjobs cj batch true CronJob
  55. jobs batch true Job
  56. certificatesigningrequests csr certificates.k8s.io false CertificateSigningRequest
  57. leases coordination.k8s.io true Lease
  58. events ev events.k8s.io true Event
  59. daemonsets ds extensions true DaemonSet
  60. deployments deploy extensions true Deployment
  61. ingresses ing extensions true Ingress
  62. networkpolicies netpol extensions true NetworkPolicy
  63. podsecuritypolicies psp extensions false PodSecurityPolicy
  64. replicasets rs extensions true ReplicaSet
  65. ingresses ing networking.k8s.io true Ingress
  66. networkpolicies netpol networking.k8s.io true NetworkPolicy
  67. runtimeclasses node.k8s.io false RuntimeClass
  68. poddisruptionbudgets pdb policy true PodDisruptionBudget
  69. podsecuritypolicies psp policy false PodSecurityPolicy
  70. clusterrolebindings rbac.authorization.k8s.io false ClusterRoleBinding
  71. clusterroles rbac.authorization.k8s.io false ClusterRole
  72. rolebindings rbac.authorization.k8s.io true RoleBinding
  73. roles rbac.authorization.k8s.io true Role
  74. priorityclasses pc scheduling.k8s.io false PriorityClass
  75. csidrivers storage.k8s.io false CSIDriver
  76. csinodes storage.k8s.io false CSINode
  77. storageclasses sc storage.k8s.io false StorageClass
  78. volumeattachments storage.k8s.io false VolumeAttachment

kubectl get 操作:

  1. # 显示当前进程所有pods
  2. kubectl get pods (default namespace 下所有pod)
  3. kubectl get pods -n namespace podname (指定namespace下的pod)
  4. kubectl get pods -A (所有namespace下的所有pod)
  5. # 显示pods详细信息
  6. kubectl get pods -o [format] # 详细显示,format可以是json|yaml|wide|name|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...
  7. # 显示RC的信息
  8. kubectl get replicationcontroller rcname
  9. # 显示Deployment信息
  10. kubectl get deployments.v1.apps -o [format]
  11. # 查询单个pod信息
  12. kubectl get pod podname -o [format]
  13. # 用yaml文件查询
  14. kubectl get -f pod.yaml -o [format]
  15. # 使用目录下的yaml文件查询,可以有多个yaml文件
  16. kubectl get -k dir/ # -k 不能和 -f -R同用
  17. # Return only the phase value of the specified pod.
  18. kubectl get -o template pod/web-pod-13je7 --template={{.status.phase}}
  19. # 在自定义列中列出资源信息
  20. kubectl get pod podname -o custom-columns=CONTAINER:.spec.containers[0].name,IMAGE:.spec.containers[0].image
  21. # 一起查询所有 RC和Service
  22. kubectl get rc,services
  23. # 通过类型和名称列出一个或多个资源
  24. kubectl get rc/web service/frontend pods/web-pod-13je7

kubectl create 操作:

  1. # 使用当前目录的pod.json创建
  2. kubectl create -f ./pod.json
  3. # 使用文件输入流,定向到创建命令
  4. cat pod.json | kubectl create -f -
  5. # 先以json格式编辑yaml,然后使用编辑后的yaml创建
  6. kubectl create -f docker-registry.yaml --edit -o json

kubectl delete 操作:

  1. # 使用文件删除
  2. kubectl delete -f ./pod.json
  3. # 使用目录下的yaml删除
  4. kubectl delete -k dir
  5. # 使用文件输入流,重定向到删除命令
  6. cat pod.json | kubectl delete -f -
  7. # 使用同名的 pod(baz)、service(foo),进行删除
  8. kubectl delete pod,service baz foo
  9. # 使用label删除pod和service
  10. kubectl delete pods,services -l name=myLabel
  11. # 最小延迟的删除
  12. kubectl delete pod foo --now
  13. # 强制删除死节点上的pod
  14. kubectl delete pod foo --grace-period=0 --force
  15. # 删除所有pod
  16. kubectl delete pods --all

kubectl logs 操作:

  1. # 用于输出Pod中的容器或者特定资源的日志信息,如果Pod中只有一个容器,那就可以忽略容器名称。
  2. # logs == log
  3. # 显示名称为nginx的Pod中只有一个容器的日志
  4. kubectl logs nginx
  5. # 显示名称为nginxPod中的多个容器的日志
  6. kubectl logs nginx --all-containers=true
  7. # 显示label app=nginx,的所有容器日志
  8. kubectl logs -lapp=nginx --all-containers=true
  9. # 打开之前停掉的名称为web-1的pod中的名称为ruby的容器的日志
  10. kubectl logs -p -c ruby web-1
  11. # 打开名称为web-1的pod中的名称为ruby的容器的日志流
  12. kubectl logs -f -c ruby web-1
  13. # Begin streaming the logs from all containers in pods defined by label app=nginx
  14. kubectl logs -f -lapp=nginx --all-containers=true
  15. # 显示名称为nginx的pod中的,最近20行日志
  16. kubectl logs --tail=20 nginx
  17. # 显示名称为nginx的pod中,最近一小时的全部日志
  18. kubectl logs --since=1h nginx
  19. # 显示名称为hello的job中的第一个容器的日志
  20. kubectl logs job/hello
  21. # 显示名称为nginx的deployment中的容器叫做nginx-1的日志
  22. kubectl logs deployment/nginx -c nginx-1

kubectl describe 操作:

  1. # 显示指定资源的详细信息(命名空间是default)
  2. # 描述一个node信息
  3. kubectl describe nodes kubernetes-node-emt8.c.myproject.internal
  4. # 描述名称为nginx的pod的信息
  5. kubectl describe pods/nginx
  6. # 通过pod.json描述pod信息
  7. kubectl describe -f pod.json
  8. # 描述所有pod信息
  9. kubectl describe pods
  10. # 通过label描述
  11. kubectl describe po -l name=myLabel # po是缩写,参考上面的缩写部分
  12. # Describe all pods managed by the 'frontend' replication controller (rc-created pods
  13. # get the name of the rc as a prefix in the pod the name).
  14. kubectl describe pods frontend

kubectl scale 操作: 

  1. # Scale a replicaset named 'foo' to 3.
  2. kubectl scale --replicas=3 rs/foo
  3. # Scale a resource identified by type and name specified in "foo.yaml" to 3.
  4. kubectl scale --replicas=3 -f foo.yaml
  5. # If the deployment named mysql's current size is 2, scale mysql to 3.
  6. kubectl scale --current-replicas=2 --replicas=3 deployment/mysql
  7. # Scale multiple replication controllers.
  8. kubectl scale --replicas=5 rc/foo rc/bar rc/baz
  9. # Scale statefulset named 'web' to 3.
  10. kubectl scale --replicas=3 statefulset/web

查看namespace列表:

kubectl get namespaces

查看指定Pod信息:

kubectl get pods [-n namespace] podName 

查看所有Pod:

 kubectl get pods --all-namespaces

查看Pod启动状态:

kubectl describe pod [-n namespace] podName

查看Pod日志信息:

kubectl logs [-n namespace] api-gw

创建对象:

kubectl create -f xxx.yaml

删除对象:

kubectl delete xxx.yaml

查看Pod启动yaml

kubectl get pod [-n namespace] podName -o yaml

打标签:

kubectl label nodes nodeName slave=153

从容器复制文件到本地目录

  1. kubectl cp podName:workDir/path1/path2/file.txt /home/emg/target_file.txt
  2. # 需要知道exec进入容器之后的工作目录是什么,如果是文件,需要指向一个本地的文件,这里使用workDir表示进入容器后的pwd

YAML 样例

nginx.yaml:

  1. apiVersion: v1
  2. kind: Pod # 对象类型为Pod,类型为k8s自定义,区分大小写
  3. metadata: # 元数据描述
  4. name: nginx # 对象名称,自定义
  5. labels: # 对象标签,用于其它类型对象绑定时使用,例如下面的Service对象
  6. app: nginx
  7. spec: # Pod对象中具体哪些内容详情
  8. containers: # 容器部分
  9. - name: nginx # 容器名称
  10. image: nginx # 启动容器用的镜像的名称
  11. imagePullPolicy: IfNotPresent # 镜像拉取策略:Never、Always(默认)、IfNotPresent(没有才拉取)
  12. ports: # 容器端口
  13. - containerPort: 80
  14. restartPolicy: Always # 重启策略,详见docker restart策略
  15. ---
  16. apiVersion: v1
  17. kind: Service # 对象类型为Service
  18. metadata: # 元数据描述
  19. name: nginx-service
  20. spec:
  21. type: NodePort # 一种端口映射策略
  22. sessionAffinity: ClientIP # session维持
  23. selector: # 选择器,对应label
  24. app: nginx
  25. ports:
  26. - port: 80 # 对应容器的端口
  27. nodePort: 30001 # 此node对应的外部访问port The range of valid ports is 30000-32767

nodejsApp.yaml 普通Pod部署:

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: api
  5. namespace: kube-public # 指定namespace,如果没有,需要提前创建
  6. labels:
  7. app: api
  8. spec:
  9. containers:
  10. - name: api
  11. image: registry.local/projectGroup/api:v1 # 此处是私有镜像库,需要进行配置,下面有说明
  12. imagePullPolicy: IfNotPresent
  13. volumeMounts: # 需要挂载配置文件
  14. - name: config-path # 对应下面的volumes的name
  15. mountPath: /home/ # 容器的路径
  16. readOnly: true # 是否只读
  17. ports:
  18. - containerPort: 3000
  19. volumes: # 挂载目录集合
  20. - name: config-path # 名称,用于被挂载
  21. hostPath: # 使用的 hostPath,还有 empDir等配置
  22. path: /data/config/api/ # 宿主机目录(node机器的目录)
  23. nodeSelector:
  24. slave: "184" # 指定调度到某台机器,slave=184是通过label命令给node机器打过label的
  25. ---
  26. apiVersion: v1
  27. kind: Service
  28. metadata:
  29. name: api-service
  30. namespace: kube-public
  31. spec:
  32. type: NodePort
  33. selector:
  34. app: api
  35. ports:
  36. - port: 3000
  37. nodePort: 30003 # 默认使用

nodeApp.yaml 多副本集部署:

  1. apiVersion: apps/v1 # Deployment对象,需要这个版本
  2. kind: Deployment
  3. metadata:
  4. name: api-gw
  5. namespace: kube-public
  6. labels:
  7. app: api-Gateway
  8. spec:
  9. replicas: 2
  10. selector:
  11. matchLabels:
  12. app: apigw # 表明Deployment需要如何寻找需要管理的Pod
  13. template:
  14. metadata:
  15. labels:
  16. app: apigw # 要被管理的资源
  17. spec:
  18. containers:
  19. - name: api-gw
  20. image: registry.local/project/api-gw:v1 # 私有镜像库
  21. imagePullPolicy: IfNotPresent
  22. volumeMounts:
  23. - name: config-path
  24. mountPath: /home/
  25. readOnly: true
  26. ports:
  27. - containerPort: 3000 # 镜像启动的容器内部进程,端口号
  28. volumes:
  29. - name: config-path
  30. hostPath:
  31. path: /data/config/api-gw/
  32. ---
  33. apiVersion: v1
  34. kind: Service
  35. metadata:
  36. name: api-service
  37. namespace: kube-public
  38. spec:
  39. type: NodePort
  40. selector:
  41. app: apigw # service需要绑定selector,而不是绑定deployment
  42. ports:
  43. - port: 3000 # 对应容器内部进程端口号
  44. nodePort: 30003

使用私有库:

  1. 保证有一台机器可以成功拉取私有库镜像
  2. 执行 echo $HOME找到home目录
  3. home/.docker/config.json 文件复制到 node机器的 /var/lib/kubelet/
  4. 拉取镜像时需要带上repository名称(例如 docker.io/nginx:latest。docker.io就是repository名称)
  5. 参考文档:https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry

Master VS Node

  1. master 只负责调度控制,对机器要求并不高
  2. master 在不将自己当作node添加到master中的情况下,master不会将pod调度到自己身上
  3. node是实际工作的机器,根据实际要求,可能需要较高的配置
  4. 所有node节点都需要有docker、k8s环境(node部分)

网络问题:

  1.  
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/671774
推荐阅读
相关标签
  

闽ICP备14008679号