kubectl

kubectl #

kubectl 是 Kubernetes 的命令行工具,用于控制 Kubernetes 集群。它允许用户部署应用程序、检查和管理集群资源以及查看日志等。

语法 #

kubectl [命令] [类型] [名称] [标志]

常用命令 #

命令 描述
create 从文件或标准输入创建资源
get 显示一个或多个资源
describe 显示资源的详细信息
delete 删除资源
apply 从文件或标准输入应用配置更改
exec 在容器中执行命令
logs 打印容器的日志
scale 更新指定资源的副本数
rollout 管理资源的部署
port-forward 将本地端口转发到 Pod
config 修改 kubeconfig 文件
version 显示客户端和服务器版本信息

资源类型 #

常见的资源类型包括:

  • pods (po)
  • services (svc)
  • deployments (deploy)
  • replicasets (rs)
  • nodes (no)
  • namespaces (ns)
  • configmaps (cm)
  • secrets
  • persistentvolumes (pv)
  • persistentvolumeclaims (pvc)

示例 #

  1. 获取所有命名空间中的所有 Pod:
kubectl get pods --all-namespaces
  1. 获取特定命名空间中的所有服务:
kubectl get services -n kube-system
  1. 描述特定 Pod:
kubectl describe pod my-pod
  1. 从 YAML 文件创建资源:
kubectl apply -f deployment.yaml
  1. 删除资源:
kubectl delete deployment my-deployment
  1. 查看 Pod 日志:
kubectl logs my-pod
  1. 在 Pod 中执行命令:
kubectl exec -it my-pod -- /bin/bash
  1. 将本地端口转发到 Pod:
kubectl port-forward my-pod 8080:80
  1. 扩展部署副本数:
kubectl scale deployment my-deployment --replicas=5
  1. 查看部署状态:
kubectl rollout status deployment my-deployment
  1. 编辑资源:
kubectl edit deployment my-deployment
  1. 查看集群信息:
kubectl cluster-info

配置 #

kubectl 使用 kubeconfig 文件来配置集群访问信息。默认情况下,kubectl 会查找 $HOME/.kube/config 文件。

设置当前上下文:

kubectl config use-context my-context

查看配置:

kubectl config view

常用标志 #

  • -n, --namespace: 指定命名空间
  • -o, --output: 指定输出格式(如 json、yaml、wide)
  • --all-namespaces: 包括所有命名空间
  • -l, --selector: 使用标签选择器过滤
  • --field-selector: 使用字段选择器过滤

相关命令 #

  • docker - Docker 容器管理
  • minikube - 本地 Kubernetes 集群
  • helm - Kubernetes 包管理器