K8S Pod 和 Container常用命令与用法

K8S Pod 和 Container常用命令与用法

根据最佳实践,您应该始终尝试每个 Pod 有一个容器,这是最常见的 Kubernetes 用例。然而,一个 Pod 可以包含多个容器,其主要原因是支持辅助主应用程序的辅助应用程序。

下面简洁明了的介绍如何使用kubectl命令获取 Pod Container,以及如何获取日志和登录Pod Container。

列出Pod

使用以下命令之一获取 Pod 并找出您要列出的容器的名称:

$ kubectl get pods
$ kubectl get pods --all-namespaces 
$ kubectl get pods --namespace 
- sample output -
NAME                         READY     STATUS    RESTARTS   AGE
runner-ctrl-71c8ff88-bc9pq   2/2       Running   0          5m5s

列出所有Container

$ kubectl describe pod 
- example -
$ kubectl describe pod runner-ctrl-71c8ff88-bc9pq
- sample output -
...
Containers:
  runner: ←
    Container ID:   ...
    Image:          ...
    ...
  proxy: ←
    Container ID:   ...
    Image:          ...
    ...
...

列出单个Pod内的Container

$ kubectl get pod  -o jsonpath='{.spec.containers[*].name}'
- example -
$ kubectl get pod runner-ctrl-71c8ff88-bc9pq -o jsonpath='{.spec.containers[*].name}'
- sample output -
runner ← proxy ←

获取 Pod 容器日志

如果知道 Pod 内运行的容器的名称,则可以检查特定容器的日志:

$ kubectl logs pod/ -c 
- example -
$ kubectl logs pod/runner-ctrl-71c8ff88-bc9pq -c runner

登录 Pod 容器

可以登录到特定容器并使用以下命令在其中启动 shell 会话:

$ kubectl exec -it  -c  -- /bin/bash
$ kubectl exec -it  -c  -- /bin/sh
- example -
$ kubectl exec -it runner-ctrl-71c8ff88-bc9pq -c runner -- /bin/sh

你可能感兴趣的:(K8S Pod 和 Container常用命令与用法)