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)