100条k8s命令
- kubectl apply -f [file]:用指定文件中的内容创建或更新资源。
kubectl apply -f deployment.yaml
- kubectl create -f [file]:用指定文件中的内容创建资源。
kubectl create -f pod.yaml
- kubectl delete resource [name]:删除一个资源。
kubectl delete pod my-pod
- kubectl delete -f [file]:从指定文件中删除资源。
kubectl delete -f deployment.yaml
- kubectl edit resource [name]:编辑某个资源的定义。
kubectl edit pod my-pod
- kubectl exec [pod] [command]:在运行的pod中执行一个命令。
kubectl exec my-pod -- ls
- kubectl logs [pod]:查看pod的日志。
kubectl logs my-pod
- kubectl port-forward [pod] [localPort:remotePort]:将pod的端口转发到本地。
kubectl port-forward my-pod 8080:80
- kubectl run [name] --image=[image]:使用指定镜像创建一个pod。
kubectl run my-nginx --image=nginx
- kubectl scale [resource] [name] --replicas=[number]:为某个资源设置副本数。
kubectl scale deployment my-deployment --replicas=3
- kubectl set image [resource] [name] [container]=[image]:为某个资源的某个容器设置镜像。
kubectl set image deployment/my-deployment my-container=my-image
- kubectl rollout status [resource] [name]:查看一个滚动更新的状态。
kubectl rollout status deployment/my-deployment
- kubectl rollout undo [resource] [name]:撤销一个滚动更新。
kubectl rollout undo deployment/my-deployment
- kubectl expose [resource] [name] --port=[port] --target-port=[target-port] --type=[type]:为指定资源创建服务。
kubectl expose deployment/my-deployment --port=80 --target-port=8080 --type=NodePort
- kubectl label [resource] [name] [key]=[value]:为某个资源设置标签。
kubectl label pod my-pod env=prod
- kubectl annotate [resource] [name] [key]=[value]:为某个资源设置注释。
kubectl annotate pod my-pod description="This is a test pod"
- kubectl taint [node] [key]=[value]:[effect]:在节点上设置污点。
kubectl taint node my-node key=value:NoSchedule
- kubectl uncordon [node]: 解除节点的停机维护状态。
kubectl uncordon my-node
- kubectl certificate approve [name]: 批准证书签发请求。
kubectl certificate approve my-csr
- kubectl certificate deny [name]: 拒绝证书签发请求。
kubectl certificate deny my-csr
- kubectl api-versions: 查看API版本。
kubectl api-versions
- kubectl auth can-i [verb] [resource]:查看当前用户是否有指定动作的权限。
kubectl auth can-i list pods
- kubectl cluster-info: 查看集群信息。
kubectl cluster-info
- kubectl config current-context:查看当前上下文的名称。
kubectl config current-context
- kubectl config get-contexts:查看上下文的列表。
kubectl config get-contexts
- kubectl config set-context [name]: 设置当前上下文。
kubectl config set-context my-context
- kubectl config use-context [name]: 切换到指定的上下文。
kubectl config use-context my-context
- kubectl describe [resource] [name]:查看资源的详细信息。
kubectl describe pod my-pod
- kubectl diff -f [file]: 比较本地文件和远程资源之间的区别。
kubectl diff -f deployment.yaml
- kubectl get [resource]:查看资源的列表。
kubectl get pods
- kubectl top [resource] [name]: 查看资源的使用情况。
kubectl top pods my-pod
- kubectl rollout history [resource] [name]: 查看一个滚动更新的历史记录。
kubectl rollout history deployment/my-deployment
- kubectl rollout restart [resource] [name]: 重新启动一个滚动更新。
kubectl rollout restart deployment/my-deployment
- kubectl rollout pause [resource] [name]: 暂停一个滚动更新。
kubectl rollout pause deployment/my-deployment
- kubectl rollout resume [resource] [name]: 恢复一个滚动更新。
kubectl rollout resume deployment/my-deployment
- kubectl exec [pod] [command] -- [arg1] [arg2] ...:在运行的pod中执行一个命令和参数。
kubectl exec my-pod -- ls -a
- kubectl logs [pod] -f:实时查看pod的日志。
kubectl logs my-pod -f
- kubectl port-forward [pod] [localPort:remotePort] --address [address]:将pod的端口转发到指定地址。
kubectl port-forward my-pod 8080:80 --address 0.0.0.0
- kubectl delete resource [name] --force:强制删除一个资源。
kubectl delete pod my-pod --force
- kubectl edit deployment [name] --record:编辑deployment的定义,并记录修改历史。
kubectl edit deployment my-deployment --record
- kubectl diff [resource] [name]:比较当前状态和期望状态之间的区别。
kubectl diff deployment/my-deployment
- kubectl explain [resource]: 查看某个资源的字段说明。
kubectl explain pod
- kubectl get [resource] [name] -o yaml:以YAML格式显示资源的详细信息。
kubectl get pod my-pod -o yaml
- kubectl get [resource] [name] -o json:以JSON格式显示资源的详细信息。
kubectl get pod my-pod -o json
- kubectl label [resource] [name] [key]-:为某个资源移除标签。
kubectl label pod my-pod env-
- kubectl annotate [resource] [name] [key]-:为某个资源移除注释。
kubectl annotate pod my-pod description-
- kubectl taint [node] [key]-=[value]:[effect]:在节点上移除污点。
kubectl taint node my-node key=:NoSchedule-
- kubectl cordon [node]: 将节点设置为停机维护状态。
kubectl cordon my-node
- kubectl certificate renew [name]: 恢复证书签发请求。
kubectl certificate renew my-csr
- kubectl explain [resource].[field]: 查看某个特定字段的说明。
kubectl explain pod.spec.containers.name
- kubectl config view:查看当前的配置。
kubectl config view
- kubectl config set-cluster [name] [key]=[value]: 设置集群的属性。
kubectl config set-cluster my-cluster server=https://my-server.com
- kubectl config set-credentials [name] [key]=[value]: 设置凭据的属性。
kubectl config set-credentials my-creds token=my-token
- kubectl config set-context [name] [key]=[value]: 设置上下文的属性。
kubectl config set-context my-context cluster=my-cluster user=my-creds
- kubectl config unset [property]: 移除指定的配置属性。
kubectl config unset users.my-creds.token
- kubectl describe [resource] [name] --show-events:查看资源的详细信息,并显示相关事件。
kubectl describe pod my-pod --show-events
- kubectl get [resource] [name] -o wide:以宽格式显示资源的详细信息。
kubectl get pod my-pod -o wide
- kubectl get [resource] [name] --watch:实时查看资源的状态。
kubectl get pods --watch
- kubectl rollout history [resource] [name] --revision=[number]: 查看一个滚动更新的特定版本。
kubectl rollout history deployment/my-deployment --revision=2
- kubectl rollout status [resource] [name] --timeout=[duration]: 查看一个滚动更新的状态,并设置超时时间。
kubectl rollout status deployment/my-deployment --timeout=5m
- kubectl rollout undo [resource] [name] --to-revision=[number]: 恢复一个滚动更新到特定版本。
kubectl rollout undo deployment/my-deployment --to-revision=2
- kubectl exec [pod] [command] -it:在运行的pod中执行一个交互式命令。
kubectl exec -it my-pod bash
- kubectl logs [pod] -n [namespace]: 查看另一个命名空间中的pod的日志。
kubectl logs my-pod -n my-namespace
- kubectl port-forward [pod] [localPort:remotePort] --address [address] -n [namespace]: 将另一个命名空间中的pod的端口转发到指定地址。
kubectl port-forward my-pod 8080:80 --address 0.0.0.0 -n my-namespace
- kubectl delete resource [name] --cascade:级联删除某个资源的所有子资源。
kubectl delete deployment my-deployment --cascade
- kubectl delete resource [name] --grace-period=[duration]: 设置删除资源的grace period。
kubectl delete pod my-pod --grace-period=30s
- kubectl edit resource [name] --editor-command=[command]: 使用指定编辑器编辑某个资源的定义。
kubectl edit pod my-pod --editor-command="vi"
- kubectl exec [pod] [command] --container=[name]: 在指定容器中执行一个命令。
kubectl exec my-pod --container=my-container -- ls
- kubectl logs [pod] --tail=[lines]: 查看pod的最后几行日志。
kubectl logs my-pod --tail=100
- kubectl rollout history [resource] [name] --revision=[number] --dry-run:查看特定版本的滚动更新,但不实际向系统应用它。
kubectl rollout history deployment/my-deployment --revision=2 --dry-run
- kubectl rollout undo [resource] [name] --to-revision=[number] --dry-run:将滚动更新恢复到特定版本,但不实际向系统应用它。
kubectl rollout undo deployment/my-deployment --to-revision=2 --dry-run
- kubectl exec [pod] -c [container] -- [command]: 在指定容器中执行一个命令。
kubectl exec my-pod -c my-container -- ls
- kubectl logs [pod] -c [container]:查看指定容器的日志。
kubectl logs my-pod -c my-container
- kubectl scale [resource] [name] --replicas=[number] --current-replicas=[currentReplicas]:为某个资源设置副本数,并指定当前的副本数。
kubectl scale deployment my-deployment --replicas=3 --current-replicas=2
- kubectl edit configmap [name]:编辑配置映射的定义。
kubectl edit configmap my-configmap
- kubectl delete configmap [name] --cascade:级联删除配置映射的所有子资源。
kubectl delete configmap my-configmap --cascade
- kubectl rollout status [resource] [name] --revision=[number]: 查看一个特定版本的滚动更新的状态。
kubectl rollout status deployment/my-deployment --revision=2
- kubectl rollout undo [resource] [name] --to-revision=[number] --dry-run=true: 查看滚动更新恢复到特定版本,但不实际向系统应用它。
kubectl rollout undo deployment/my-deployment --to-revision=2 --dry-run=true
- kubectl exec [pod] [command] --env [key]=[value]: 在运行的pod中执行一个命令,并指定环境变量。
kubectl exec my-pod -- ls --env FOO=bar
- kubectl logs [pod] --since=[duration]: 查看从多久之前开始的pod的日志。
kubectl logs my-pod --since=1h
- kubectl rollout undo [resource] [name] --to-revision=[number] --dry-run=false: 恢复一个滚动更新到特定版本,并向系统应用它。
kubectl rollout undo deployment/my-deployment --to-revision=2 --dry-run=false
- kubectl patch [resource] [name] -p [patch]: 使用json patch更新现有资源。
kubectl patch pod my-pod -p '{"spec":{"containers":[{"name":"my-container","image":"nginx:latest"}]}}'
- kubectl apply -f [dir]: 用指定目录中的所有文件创建或更新资源。
kubectl apply -f manifests/
- kubectl create configmap [name] --from-file=[path]: 使用文件创建配置映射。
kubectl create configmap my-configmap --from-file=my-config.json
- kubectl delete configmap [name] --grace-period=[duration]: 设置删除配置映射的grace period。
kubectl delete configmap my-configmap --grace-period=30s
- kubectl explain [resource].[field].[subfield]: 查看某个字段的子字段说明。
kubectl explain pod.spec.containers.livenessProbe.httpGet
- kubectl get [resource] [name] -o yaml --export: 以YAML格式导出资源的详细信息。
kubectl get pod my-pod -o yaml --export
- kubectl get [resource] --all-namespaces: 查看所有命名空间中的资源的列表。
kubectl get pods --all-namespaces
- kubectl rollout undo [resource] [name] --dry-run=true: 查看滚动更新恢复到上一个版本,但不实际向系统应用它。
kubectl rollout undo deployment/my-deployment --dry-run=true
- kubectl exec [pod] [command] --namespace=[namespace]: 在指定命名空间中运行的pod中执行一个命令。
kubectl exec my-pod --namespace=my-namespace -- ls
- kubectl logs [pod] --previous: 查看pod的上一个容器的日志。
kubectl logs my-pod --previous
- kubectl rollout undo [resource] [name] --dry-run=false: 恢复一个滚动更新到上一个版本,并向系统应用它。
kubectl rollout undo deployment/my-deployment --dry-run=false
- kubectl exec [pod] [command] --stdin --tty:在运行的pod中执行一个交互式命令,并分配一个伪终端。
kubectl exec my-pod --stdin --tty -- bash
- kubectl logs [pod] -c [container] --follow: 实时查看指定容器的日志。
kubectl logs my-pod -c my-container --follow
- kubectl get [resource] --export: 导出所有资源的详细信息。
kubectl get pods --export
- kubectl rollout status [resource] [name] --revision-history-max=[number]: 查看滚动更新历史中最多多少个版本的状态。
kubectl rollout status deployment/my-deployment --revision-history-max=5
- kubectl rollout undo [resource] [name] --to-revision=[number] --dry-run=false --record=true: 恢复一个滚动更新到特定版本,并记录修改历史。
kubectl rollout undo deployment/my-deployment --to-revision=2 --dry-run