kubernetes 常用命令
以下是一些常用的Kubernetes命令:
查看集群信息和节点状态:
kubectl cluster-info
:查看集群信息。kubectl get nodes
:查看所有节点的状态。
查看和管理资源:
kubectl get pods
:查看所有Pod的状态。kubectl get deployments
:查看所有部署的状态。kubectl get services
:查看所有服务的状态。kubectl get namespaces
:查看所有命名空间的状态。kubectl describe <resource_type> <resource_name>
:查看特定资源的详细信息。kubectl delete <resource_type> <resource_name>
:删除特定资源。
创建和管理资源:
kubectl create -f <yaml_file>
:使用YAML文件创建资源。kubectl apply -f <yaml_file>
:使用YAML文件创建或更新资源。kubectl expose <resource_type> <resource_name> --port=<port>
:将服务暴露到集群内部。kubectl scale <resource_type> <resource_name> --replicas=<count>
:调整副本数。
进入Pod和容器:
kubectl exec -it <pod_name> --container=<container_name> -- /bin/bash
:进入特定Pod的容器。kubectl logs <pod_name>
:查看特定Pod的日志。
调试和故障排查:
kubectl describe pod <pod_name>
:查看Pod的详细信息,包括事件和状态。kubectl logs <pod_name> -c <container_name>
:查看特定容器的日志。kubectl get events
:查看集群中的事件。kubectl rollout status <deployment_name>
:查看部署的滚动更新状态。
调试和故障排查:
kubectl describe <resource_type> <resource_name>
:查看特定资源的详细信息,如Pod、Deployment等。kubectl logs <pod_name> -c <container_name>
:查看特定容器的日志。kubectl get events
:查看集群中的事件。kubectl rollout status <deployment_name>
:查看部署的滚动更新状态。
端口转发和代理:
kubectl port-forward <pod_name> <local_port>:<pod_port>
:将本地端口与Pod的端口进行转发,用于访问Pod内部服务。kubectl proxy
:在本地启动一个代理,使您可以通过API访问集群中的服务。
配置管理:
kubectl create configmap <configmap_name> --from-file=<path_to_file>
:从文件创建ConfigMap。kubectl create secret generic <secret_name> --from-literal=<key>=<value>
:从字面值创建Secret。kubectl edit <resource_type> <resource_name>
:编辑特定资源的配置。
扩展和自动化:
kubectl autoscale <deployment_name> --min=<min_replicas> --max=<max_replicas> --cpu-percent=<cpu_percentage>
:为Deployment创建自动扩展配置。kubectl apply -f <manifest_file> --prune
:使用YAML文件进行部署,并自动删除已不存在的资源。
描述和验证资源配置:
kubectl explain <resource_type>
:查看特定资源类型的详细说明。kubectl apply -f <manifest_file> --dry-run=client
:验证YAML文件的语法和资源配置是否正确。
状态查询和监控:
kubectl top <resource_type>
:查看特定资源的资源使用情况,如kubectl top pods
查看Pod的资源使用情况。kubectl get pods --watch
:持续监视Pod的状态变化。kubectl get pods -o wide
:显示更详细的Pod信息,包括节点和IP地址。
调度和节点管理:
kubectl drain <node_name>
:从节点上驱逐Pod,并将它们迁移到其他节点。kubectl cordon <node_name>
:标记节点为不可调度状态,阻止新的Pod被调度到该节点。kubectl uncordon <node_name>
:取消节点的不可调度状态。
部署和滚动更新:
kubectl apply -f <manifest_file>
:使用YAML文件创建或更新资源,如果资源已存在,则更新。kubectl rollout history <resource_type> <resource_name>
:查看特定资源的部署历史。kubectl rollout undo <resource_type> <resource_name>
:回滚部署到先前的版本。
认证和授权:
kubectl config get-contexts
:查看Kubernetes集群的上下文配置。kubectl config use-context <context_name>
:切换到指定的上下文配置。kubectl auth can-i <verb> <resource_type>
:检查当前用户是否具有执行特定操作的权限。
清理和删除资源:
kubectl delete <resource_type> <resource_name>
:删除特定的资源。kubectl delete namespace <namespace_name>
:删除命名空间及其所有的资源。kubectl delete pods --all
:删除所有的Pod。
安全管理:
kubectl create role <role_name> --verb=<verb> --resource=<resource_type> --namespace=<namespace>
:创建角色。kubectl create rolebinding <rolebinding_name> --role=<role_name> --user=<user> --namespace=<namespace>
:创建角色绑定。kubectl create serviceaccount <serviceaccount_name> --namespace=<namespace>
:创建服务账号。kubectl create clusterrole <clusterrole_name> --verb=<verb> --resource=<resource_type>
:创建集群角色。kubectl create clusterrolebinding <clusterrolebinding_name> --clusterrole=<clusterrole_name> --user=<user>
:创建集群角色绑定。
日志和调试:
kubectl logs <pod_name> -f
:实时查看Pod的日志。kubectl port-forward <pod_name> <local_port>:<pod_port>
:将本地端口与Pod的端口进行转发。kubectl attach <pod_name> -c <container_name>
:将终端附加到运行中的容器。
集群管理和扩展:
kubectl get componentstatuses
:查看集群组件的状态。kubectl get cs
:查看集群组件的状态(简写)。kubectl scale deployment <deployment_name> --replicas=<replica_count>
:调整部署的副本数。kubectl scale statefulset <statefulset_name> --replicas=<replica_count>
:调整StatefulSet的副本数。
插件和扩展:
kubectl krew install
:安装Krew插件管理器。kubectl krew search
:搜索可用的Krew插件。kubectl plugin <plugin_name>
:运行特定的Kubectl插件。
版本和更新:
kubectl version
:查看Kubernetes客户端和服务器版本信息。kubectl get nodes --show-labels
:查看节点的标签信息。
运行和管理作业(Job):
kubectl create job <job_name> --image=<image_name>
:创建一个作业。kubectl get jobs
:查看所有作业的状态。kubectl delete job <job_name>
:删除一个作业。
运行和管理批处理任务(CronJob):
kubectl create cronjob <cronjob_name> --image=<image_name> --schedule=<cron_expression>
:创建一个定时任务。kubectl get cronjobs
:查看所有定时任务的状态。kubectl delete cronjob <cronjob_name>
:删除一个定时任务。
运行和管理DaemonSet:
kubectl create daemonset <daemonset_name> --image=<image_name>
:创建一个DaemonSet。kubectl get daemonsets
:查看所有DaemonSet的状态。kubectl delete daemonset <daemonset_name>
:删除一个DaemonSet。
网络和服务发现:
kubectl get services
:查看所有服务的状态。kubectl expose deployment <deployment_name> --port=<port> --target-port=<target_port>
:将部署暴露为服务。kubectl get ingress
:查看所有Ingress的状态。
状态检查和健康检查:
kubectl get pods --field-selector=status.phase=<phase>
:根据状态检索Pod。kubectl get pods --selector=<label_selector>
:根据标签选择器检索Pod。kubectl describe pod <pod_name>
:查看Pod的详细信息,包括事件和状态。
故障排查和日志分析:
kubectl logs <pod_name>
:查看Pod的日志。kubectl describe <resource_type> <resource_name>
:查看特定资源的详细信息,如Pod、Deployment等。kubectl exec -it <pod_name> -- /bin/bash
:在Pod内部执行交互式Shell命令。
状态和监控:
kubectl top <resource_type>
:查看特定资源的资源使用情况,如kubectl top pods
查看Pod的资源使用情况。kubectl describe <resource_type> <resource_name>
:查看特定资源的详细信息,如Pod、Deployment等。kubectl get events
:查看集群中的事件。kubectl get metrics
:查看集群的度量指标。
存储和卷管理:
kubectl get storageclasses
:查看所有存储类的状态。kubectl get pv
:查看所有持久卷的状态。kubectl get pvc
:查看所有持久卷声明的状态。kubectl create pvc <pvc_name> --volume=<volume_name>
:创建持久卷声明。
调度和亲和性:
kubectl describe nodes
:查看节点的详细信息,包括标签和亲和性设置。kubectl taint nodes <node_name> <taint_key>=<taint_value>:<taint_effect>
:为节点添加污点。kubectl label nodes <node_name> <label_key>=<label_value>
:为节点添加标签。
安全和权限:
kubectl create role <role_name> --verb=<verb> --resource=<resource_type> --namespace=<namespace>
:创建角色。kubectl create rolebinding <rolebinding_name> --role=<role_name> --user=<user> --namespace=<namespace>
:创建角色绑定。kubectl create clusterrole <clusterrole_name> --verb=<verb> --resource=<resource_type>
:创建集群角色。kubectl create clusterrolebinding <clusterrolebinding_name> --clusterrole=<clusterrole_name> --user=<user>
:创建集群角色绑定。
配置管理:
kubectl create configmap <configmap_name> --from-file=<path_to_file>
:从文件创建ConfigMap。kubectl create secret generic <secret_name> --from-literal=<key>=<value>
:从字面值创建Secret。kubectl edit <resource_type> <resource_name>
:编辑特定资源的配置。kubectl get configmaps
:查看所有ConfigMap的状态。kubectl get secrets
:查看所有Secret的状态。
扩展和自动化:
kubectl autoscale <deployment_name> --min=<min_replicas> --max=<max_replicas> --cpu-percent=<cpu_percentage>
:为Deployment创建自动扩展配置。kubectl apply -f <manifest_file> --prune
:使用YAML文件进行部署,并自动删除已不存在的资源。kubectl apply -f <manifest_file> --validate
:使用YAML文件进行部署,并验证配置的正确性。kubectl apply -f <manifest_file> --dry-run=client
:验证YAML文件的语法和资源配置是否正确。
描述和验证资源配置:
kubectl explain <resource_type>
:查看特定资源类型的详细说明。kubectl apply -f <manifest_file> --dry-run=client
:验证YAML文件的语法和资源配置是否正确。kubectl apply -f <manifest_file> --validate
:使用YAML文件进行部署,并验证配置的正确性。kubectl diff -f <manifest_file>
:比较YAML文件中的配置与当前集群中的配置的差异。
清理和删除资源:
kubectl delete <resource_type> <resource_name>
:删除特定的资源。kubectl delete namespace <namespace_name>
:删除命名空间及其所有的资源。kubectl delete pods --all
:删除所有的Pod。kubectl delete --all <resource_type>
:删除所有的指定资源类型。
资源扩展和自定义:
kubectl apply -f <custom_resource_definition>
:创建自定义资源定义(Custom Resource Definition,CRD)。kubectl get crd
:查看所有自定义资源定义的状态。kubectl get <custom_resource>
:查看特定自定义资源的状态。
网络策略和访问控制:
kubectl create networkpolicy <networkpolicy_name> --namespace=<namespace> --from=<source_selector> --to=<destination_selector> --port=<port>
:创建网络策略。kubectl get networkpolicies
:查看所有网络策略的状态。
执行和管理任务:
kubectl create job <job_name> --image=<image_name>
:创建一个作业。kubectl get jobs
:查看所有作业的状态。kubectl delete job <job_name>
:删除一个作业。
集群信息和调试:
kubectl cluster-info
:查看集群信息。kubectl describe node <node_name>
:查看特定节点的详细信息。kubectl describe pod <pod_name>
:查看特定Pod的详细信息。kubectl describe service <service_name>
:查看特定服务的详细信息。
水平扩展和自动伸缩:
kubectl scale deployment <deployment_name> --replicas=<replica_count>
:调整部署的副本数。kubectl scale statefulset <statefulset_name> --replicas=<replica_count>
:调整StatefulSet的副本数。kubectl autoscale deployment <deployment_name> --min=<min_replicas> --max=<max_replicas> --cpu-percent=<cpu_percentage>
:为Deployment创建自动扩展配置。
备份和恢复:
kubectl get pv
:查看所有持久卷的状态。kubectl get pvc
:查看所有持久卷声明的状态。kubectl get snapshot
:查看所有快照的状态。
评论 (0)