k8s 常用命令

admin
2024-03-28 / 0 评论 / 190 阅读 / 正在检测是否收录...

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

评论 (0)

取消