小编mpa*_*bo7的帖子

Kubernetes:通过本地部署从内部注册表中提取映像

tl;drPod当镜像来自托管在同一 k8s 集群上的私有 docker 注册表且没有单独的注册表 DNS 条目时,如何在 Kubernetes 中引用该镜像?

在本地 Kubernetes 部署中,我使用stable/docker-registry helm 图表和自签名证书设置了一个私有 Docker 注册表。这是本地部署的,我无法设置 DNS 记录来为注册表提供其自己的 URL。我希望使用这些清单作为模板,因此我不想对任何特定于环境的配置进行硬编码。

docker 注册表服务的类型ClusterIP如下所示:

apiVersion: v1
kind: Service
metadata:
  name: docker-registry
  labels:
    app: docker-registry
spec:
  type: ClusterIP
  ports:
    - port: 443
      protocol: TCP
      name: registry
      targetPort: 5000
  selector:
    app: docker-registry
Run Code Online (Sandbox Code Playgroud)

如果我手动将图像推送到此注册表(或将来通过 Jenkins 构建管道),我将如何在规范中引用该图像Pod

我努力了:

containers:
- name: my-image
  image: docker-registry.devops.svc.cluster.local/my-image:latest
  imagePullPolicy: IfNotPresent
Run Code Online (Sandbox Code Playgroud)

但我收到了有关节点主机无法解析的错误docker-registry.devops.svc.cluster.local。我认为 k8s 节点上的 Docker 守护进程无法解析该 URL,因为它是内部 k8s DNS 记录。

Warning  Failed     20s …
Run Code Online (Sandbox Code Playgroud)

docker kubernetes

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

如何在 kubernetes yaml 文件的环境变量中分配集群、命名空间和 pod 名称

我需要将集群、命名空间和 pod 名称从我部署在 Kubernetes 集群中的容器传递给 AppDynamics 代理。

我尝试了以下内容,但这不起作用。

containers:
      - env:
        - name: JAVA_OPTS
          value: -Dappdynamics.agent.nodeName=$HOST-$spec.nodeName-spec.PodName
Run Code Online (Sandbox Code Playgroud)

- name: appdynamics.agent.nodeName
  value= $HOST-$spec.nodeName-spec.PodName
Run Code Online (Sandbox Code Playgroud)

任何人都可以在这里帮助我如何收集详细信息并传递给AppD。提前致谢。

appdynamics kubernetes kubernetes-namespace kubernetes-pod

2
推荐指数
1
解决办法
6847
查看次数