我有一个部署,其中有两个容器。
apiVersion: apps/v1
kind: Deployment
metadata:
name: ol000dep
spec:
selector:
matchLabels:
app: ol000kube
replicas : 2
template:
metadata:
labels:
app: ol000kube
spec:
containers:
- name: django
image: django:local
ports:
- containerPort: 8011
containers:
- name: nginx
image: nginx:local
ports:
- containerPort: 80
这就形成了两个复制舱,据我所知,每个舱都有两个容器。
kubectl get pods
NAME READY STATUS RESTARTS AGE
ol000dep-bc96bfc98-r9lrj 1/1 Running 0 21m
ol000dep-bc96bfc98-t6flw 1/1 Running 0 21m
现在我可以登录了
kubectl exec -it ol000dep-bc96bfc98-r9lrj /bin/bash
那我就想
Pod中的此登录不是Container吗??
如果是,我如何选择我想要登录的容器?
2条答案
按热度按时间wpx232ag1#
有意思即使你提供的yaml是不正确的(
.spec.containers
Map键必须是唯一的),k8s似乎可以接受。在您的示例中,pod启动时仅第二个容器(名称:nginx)在其中。
Pod中的此登录不是Container吗??
容器。
因此,使用
kubectl exec -it ol000dep-bc96bfc98-r9lrj /bin/bash
,您可以登录/exec进入nginx容器。在纠正yaml之后,两个容器将在pod中启动,您可以通过其名称登录到所需的容器(e.例如
name: django
)。登录:
请注意,如果不指定容器的名称(通过省略
-c CONTAINER_NAME
),则默认情况下将登录到第一个定义的容器(在本例中为django
)。kb5ga3dv2#
试试这个: