一、集群管理
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]:临时切换当前操作的命名空间。