首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >默认容器“容器-1”外:容器-1,容器-2

默认容器“容器-1”外:容器-1,容器-2
EN

Stack Overflow用户
提问于 2022-11-23 20:18:36
回答 2查看 49关注 0票数 0

在K8s中,我正在练习示例6.1。一个装有两个容器的吊舱,它的容量相同: fortune-pod.yaml,出自“kubernetes in Action”一书。在容量概念中,我的吊舱包含2个容器,其中一个容器没有运行,请指导我做错了什么。才能成功运行吊舱。在检查容器的日志时,我得到以下错误:

代码语言:javascript
复制
Defaulted container "fortune-cont" out of: fortune-cont, web-server 

但是,就像在豆荚描述事件中,它看起来是这样的。

代码语言:javascript
复制
Events:
  Type     Reason     Age                  From               Message
  ----     ------     ----                 ----               -------
  Normal   Scheduled  40m                  default-scheduler  Successfully assigned book/vol-1-fd556f5dc-8ggj6 to minikube
  Normal   Pulled     40m                  kubelet            Container image "nginx:alpine" already present on machine
  Normal   Created    40m                  kubelet            Created container web-server
  Normal   Started    40m                  kubelet            Started container web-server
  Normal   Created    39m (x4 over 40m)    kubelet            Created container fortune-cont
  Normal   Started    39m (x4 over 40m)    kubelet            Started container fortune-cont
  Normal   Pulled     38m (x5 over 40m)    kubelet            Container image "xxxx/fortune:v1" already present on machine
  Warning  BackOff    25s (x188 over 40m)  kubelet            Back-off restarting failed container

这是我的部署文件

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: vol-1
  namespace: book
spec:
  replicas: 1
  selector:
    matchLabels:
      name: fortune-vol-1
      type: volume
  template:
    metadata:
      labels:
        name: fortune-vol-1
        type: volume
    spec:
      containers:
      - image: ****/fortune:v1
        name: fortune-cont
        volumeMounts:
        - name: html 
          mountPath: /var/htdocs
      - image: nginx:alpine
        name: web-server
        volumeMounts:
        - name: html
          mountPath: /usr/share/nginx/html
          readOnly: true
        ports:
        - containerPort: 80
          protocol: TCP
      volumes:
        - name: html
          emptyDir: {}

这是我的容器的吊舱描述。

代码语言:javascript
复制
Containers:
  fortune-cont:
    Container ID:   docker://3959e47a761b670ee826b2824efed09d8f5d6dfd6451c4c9840eebff018a3586
    Image:          prav33n/fortune:v1
    Image ID:       docker-pullable://prav33n/fortune@sha256:671257f6387a1ef81a293f8aef27ad7217e4281e30b777a7124b1f6017a330f8
    Port:           <none>
    Host Port:      <none>
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Thu, 24 Nov 2022 02:05:26 +0530
      Finished:     Thu, 24 Nov 2022 02:05:26 +0530
    Ready:          False
    Restart Count:  17
    Environment:    <none>
    Mounts:
      /var/htdocs from html (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-spdq4 (ro)
  web-server:
    Container ID:   docker://37d831a2f7e97abadb548a21ecb20b5c784b5b3d6102cf8f939f2c13cdfd08c0
    Image:          nginx:alpine
    Image ID:       docker-pullable://nginx@sha256:455c39afebd4d98ef26dd70284aa86e6810b0485af5f4f222b19b89758cabf1e
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Thu, 24 Nov 2022 01:02:55 +0530
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /usr/share/nginx/html from html (ro)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-spdq4 (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  html:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     
    SizeLimit:  <unset>
  kube-api-access-spdq4:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason   Age                    From     Message
  ----     ------   ----                   ----     -------
  Warning  BackOff  4m20s (x281 over 64m)  kubelet  Back-off restarting failed container
EN

回答 2

Stack Overflow用户

发布于 2022-11-23 20:30:45

名为vol-1的Pod有两个容器

名为fortune-cont

  • One web-server

如果运行kubectl logs vol-1,Kubernetes不知道您询问的是哪个容器,因此它必须选择一个,并告诉您:

默认容器"fortune-cont“退出: fortune-cont,web-server

可以使用-c选项显式地选择容器:

代码语言:javascript
复制
kubectl logs vol-1 -c web-server
票数 0
EN

Stack Overflow用户

发布于 2022-11-24 17:12:27

您的“财富”容器在退出代码0启动后立即终止。如果不知道它会做什么,就很难分辨出出了什么问题。退出代码0通常表示正常退出,没有错误。在kubernetes中,这通常是从init容器中排出的。那么,你的Pod规格是否错了,因为你的财富应该是一个独立的容器?如果没有,可以使用-p标志显示以前终止的容器的注销输出:

代码语言:javascript
复制
kubectl logs vol-1 -c fortune-cont -p

也许这给了你一个提示,为什么它会退出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74552547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档