标签: kubernetes-pod

当我编辑并保存 pod yaml 时,如何修复“map[] 不包含声明的合并键:名称”错误?

我正在尝试从私人注册表中提取图像。但 pod 的状态是“ImagePullBackOff”,这意味着我需要向 pod 添加一个 Secret。

Events:
  Type     Reason   Age                  From                                          Message
  ----     ------   ----                 ----                                          -------
  Normal   Pulling  52m (x255 over 22h)  kubelet, cn-huhehaote.i-hp3fkfzlcf1u9cigq2h7  pulling image "xxx/fcp"
  Normal   BackOff  8m (x5597 over 22h)  kubelet, cn-huhehaote.i-hp3fkfzlcf1u9cigq2h7  Back-off pulling image "xxx/fcp"
  Warning  Failed   3m (x5618 over 22h)  kubelet, cn-huhehaote.i-hp3fkfzlcf1u9cigq2h7  Error: ImagePullBackOff
Run Code Online (Sandbox Code Playgroud)

所以我在 pod yaml 中添加了以下代码。

spec:
      containers:
      - name: private-reg-container
        image: <your-private-image>
      imagePullSecrets:
      - name: my-secret
Run Code Online (Sandbox Code Playgroud)

然后我得到了

error: map: map[] does not contain declared merge key: name
Run Code Online (Sandbox Code Playgroud)

我找到的解决方案是删除“imagePullSecret”,这对我不起作用。我想知道如何修复该错误。谁能帮我?

kubectl 版本是

 kubectl …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-pod kubernetes-secrets

8
推荐指数
2
解决办法
2万
查看次数

如何获取“准备好”的豆荚列表?

我正在使用 kubectl 来检索 pod 列表:

 kubectl get pods --selector=artifact=boot-example -n my-sandbox  
Run Code Online (Sandbox Code Playgroud)

我得到的结果是:

NAME                           READY   STATUS    RESTARTS   AGE
boot-example-757c4c6d9c-kk7mg   0/1     Running   0          77m
boot-example-7dd6cd8d49-d46xs   1/1     Running   0          84m
boot-example-7dd6cd8d49-sktf8   1/1     Running   0          88m
Run Code Online (Sandbox Code Playgroud)

我只想得到那些“准备好”的豆荚(通过了readinessProbe)。是否有任何 kubectl 命令只返回“就绪”pods?如果不是 kubectl 命令,那么也许是其他方式?

kubernetes kubectl kubernetes-pod

8
推荐指数
3
解决办法
6530
查看次数

如何在特定命名空间中创建 K8S 部署?

我在用 kubectl apply -f https://k8s.io/examples/controllers/nginx-deployment.yaml创建部署。

我想在我的命名空间中创建部署 examplenamespace

我怎样才能做到这一点?

kubernetes kubernetes-pod

8
推荐指数
2
解决办法
4995
查看次数

Kubernetes 中 Pod 之间的通信。服务对象还是集群网络?

我是 Kubernetes 的初学者,我遇到以下情况:我有两个不同的 Pod:PodAPodB。首先,我想将PodA暴露给外界,所以我为PodA创建了一个Service(类型为 NodePort 或 LoadBalancer),这对我来说并不难理解。

然后我希望PodAPodB进行通信,经过几个小时的谷歌搜索,我发现答案是我还需要为 PodB 创建一个服务(如果我想让PodB 仅在集群内可见,请键入 ClusterIP) ,如果我这样,我可以让PodAPodB互相通信。但问题是我也找到了这篇文章。根据这个网页,他们说同一节点上的 Pod 之间的通信可以通过网桥来完成cbr0或者不同节点上的 Pod 之间的通信可以通过route table集群的一个来完成,但他们没有提及任何内容Service对象(这意味着我们不需要Service对象???)。

其实我也看了K8s的文档,在集群网络中找到

集群网络
...
2. Pod 到 Pod 通信:这是本文档的主要焦点。
...

他们还关注Pod 到 Pod 的通信,但没有与Service对象相关的内容。

所以,我现在真的很困惑,我的问题是:您能否向我解释一下文章中的这些内容与Service …

kubernetes google-kubernetes-engine kubernetes-pod azure-aks

8
推荐指数
1
解决办法
6288
查看次数

如何查看k8s pod启动的时间?

我想知道在 Kubernetes 中启动我的 pod 需要多长时间。我的 Pod 有3 Init Containers9 actual Containers。到目前为止,这是我尝试过的:

  • 方法一:启动 pod 并进行监控,直到有 9/9 个容器在运行。该AGEinkubectl describe pod <pod_name>将给出启动时间的想法。
  • 方法二:kubectl events使用或查看 pod 的事件kubectl describe。问题是并非所有容器都存在事件。此外,没有明确的方法来了解 pod 处于READY状态所需的时间。

在此输入图像描述

问: Kubernetes 是否提供了确定整个 Pod 启动时间的方法?

kubernetes kubernetes-pod

8
推荐指数
1
解决办法
1万
查看次数

为什么我不能将具有不同子路径的相同 PVC 挂载到单个 pod 两次?

为什么我不能进行如下设置。我想将 vol1 映射到具有不同子路径 xyz 的 pod,将 vol2 映射到具有子路径 abc 的同一 pod。

  volumes:
  - name:vol1
    persistentVolumeClaim:
      claimName: testclaim
  - name: vol2
    persistentVolumeClaim:
      claimName: testclaim
Run Code Online (Sandbox Code Playgroud)

容器体积安装:

  volumeMounts:
    - name: vol1
      mountPath: /test/
      subPath: abc
    - name: vol2
      mountPath: /test2/
      subPath: xyz
Run Code Online (Sandbox Code Playgroud)

这种设置的替代方案是什么?

kubernetes google-kubernetes-engine persistent-volumes kubernetes-pod

8
推荐指数
1
解决办法
6167
查看次数

在kubernetes pod中执行多个命令(或从shell脚本执行)

我正在编写一个shell脚本,需要登录pod并在kubernetes pod中执行一系列命令.

下面是我的sample_script.sh

kubectl exec octavia-api-worker-pod-test -c octavia-api bash unset http_proxy https_proxy mv /usr/local/etc/octavia/octavia.conf /usr/local/etc/octavia/octavia.conf-orig /usr/local/bin/octavia-db-manage --config-file /usr/local/etc/octavia/octavia.conf upgrade head

运行此脚本后,我没有得到任何输出.任何帮助将不胜感激

kubernetes kubernetes-pod

7
推荐指数
3
解决办法
2万
查看次数

无法删除kubernetes中的Pod

我尝试使用kubernetes安装dgraph(单个服务器)。现在我需要删除的是已创建的Pod。我使用kubectl delete pod pod-name删除了它,结果显示“ pod delete”,但是pod又重新创建了自己,并继续复制。我需要从Kubernetes中取出那些豆荚。我现在应该怎么做?

kubernetes kubectl kubernetes-deployment kubernetes-pod

7
推荐指数
3
解决办法
4075
查看次数

如何在 Kubernetes 的容器中设置环境变量?

我想ENV_VAR_VALUE在通过 Kubernetes 部署期间为容器设置一个环境变量(我只是命名)。

我在 pod yaml 配置中有以下内容:

...
...
    spec:
      containers:
      - name: appname-service
        image: path/to/registry/image-name
        ports:
        - containerPort: 1234
        env:
        - name: "ENV_VAR_VALUE"
          value: "some.important.value"
...
...
Run Code Online (Sandbox Code Playgroud)

容器需要使用ENV_VAR_VALUE的值。
但是在容器的应用程序日志中,它的值总是为空。
所以,我尝试从容器内部检查它的值:

$ kubectl exec -it appname-service bash
root@appname-service:/# echo $ENV_VAR_VALUE
some.important.value
root@appname-service:/# 
Run Code Online (Sandbox Code Playgroud)

因此,该值已成功设置。

我想这是因为在容器已经初始化之后设置了从 Kubernetes 定义的环境变量。

因此,我尝试从 pod yaml 配置中覆盖容器的 CMD:

...
...
    spec:
      containers:
      - name: appname-service
        image: path/to/registry/image-name
        ports:
        - containerPort: 1234
        env:
        - name: "ENV_VAR_VALUE"
          value: "some.important.value"
        command: ["/bin/bash"]
        args: ["-c", …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-pod

7
推荐指数
1
解决办法
6576
查看次数

错误:升级失败:验证“”时出错:验证数据时出错:ValidationError(Ingress.spec.rules[0].http):缺少必填字段“路径”

我对使用 Helm Chart 非常陌生,不知道为什么在尝试安装 Helm Chart 时会出现此错误。我正在使用 --set 和 helm install 命令来设置 ingress.hosts[0].host 处的主机名。我不明白为什么它说缺少路径,而“路径”已经存在。

入口.yaml

{{- if .Values.ingress.enabled -}}
{{- $fullName := include "project.fullname" . -}}
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: {{ $fullName }}
  labels:
    app.kubernetes.io/name: {{ include "project.name" . }}
    helm.sh/chart: {{ include "project.chart" . }}
    app.kubernetes.io/instance: {{ .Release.Name }}
    app.kubernetes.io/managed-by: {{ .Release.Service }}
  {{- with .Values.ingress.annotations }}
  annotations:
    {{- toYaml . | nindent 4 }}
  {{- end }}
spec:
{{- if .Values.ingress.tls }}
  tls:
  {{- range .Values.ingress.tls …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-helm kubernetes-ingress kubernetes-pod

7
推荐指数
1
解决办法
5537
查看次数