一、集群管理
kubectl cluster-info:查看集群的基本信息,包括API服务器地址、默认命名空间等。
kubectl config view:展示当前kubeconfig文件的内容,该文件存储了与K8s集群交互所需的认证、授权及集群访问信息。
kubectl config set-context context-name:切换或设置当前使用的上下文(context),便于在同一客户端中管理多个K8s集群。
二、资源对象管理
kubectl get resource-type resource-name:查询指定类型(如pod、deployment、service等)的资源对象,可选指定具体名称。例如,"kubectl get pods"列出所有Pod。
kubectl describe resource-type resource-name:详细描述特定资源对象的状态、事件、配置等信息,有助于故障排查。
kubectl create -f yaml-file:根据指定的YAML或JSON文件创建资源对象。这是部署应用的主要方式。
kubectl apply -f yaml-file:对已存在的资源对象进行更新或创建新资源。相较于"create",apply能更好地处理配置变更。
kubectl delete resource-type resource-name:删除指定的资源对象。也可结合"-f"参数删除由YAML或JSON文件定义的多个资源。
三、Pod管理
kubectl exec pod-name -- command:在指定Pod内执行命令,如进入容器内部进行调试。
kubectl logs pod-name -c container-name:查看Pod中容器的日志输出,可选指定特定容器。
kubectl port-forward pod-name local-port:container-port:建立本地端口到Pod内指定容器端口的转发,便于直接访问应用服务。
四、Deployment与ReplicaSet管理
kubectl scale deployment deployment-name --replicas=count:调整Deployment的副本数,实现水平伸缩。
kubectl rollout status deployment deployment-name:监控Deployment的滚动更新进度。
kubectl rollout undo deployment deployment-name:回滚到Deployment的前一个版本,用于快速恢复故障。
五、Service与Ingress管理
kubectl expose deployment deployment-name --type=LoadBalancer --port=port --target-port=container-port:为Deployment创建外部可访问的服务,自动分配ClusterIP或LoadBalancer IP。
kubectl get services:查看所有Service及其IP、端口映射等信息。
kubectl apply -f ingress.yaml:创建或更新Ingress规则,实现七层路由和外部流量管理。
六、Namespace管理
kubectl create namespace namespace-name:创建新的命名空间,以便对资源进行逻辑隔离。
kubectl get namespaces:查看所有命名空间及其状态。
kubectl set context --namespace=namespace-name:临时切换当前操作的命名空间。