nginx - 将 Kubernetes 与 Artifactory/Nginx 代理一起使用

标签 nginx docker proxy kubernetes artifactory

我几乎是在问如何设置 yaml/kubernetes 以使用我的 Artfiactory 来提取图像。

我是 Kubernetes 的新手,并且已经根据 tutorial 在我的私有(private)机器上成功安装了我想要做的事情。 .

在工作中,我想使用 Kubernetes 来让开发人员快速部署和扩展 docker 镜像,但是我们在一个隔离的环境中工作。我们有 Nginx 和 Artifactory 目前正在与我们的 docker 客户端一起使用,如果我手动下载,则可以下载所有需要的图像。

安装 Kubernetes 和创建/链接 pod 和发送作业一切正常;但是,当我尝试运行 selenium-hub-rc.yaml 时,当我检查该 pod 的描述 pod 时出现错误,

"Failed to "Startcontainer" for "POD" with ErrImagePull: "image pull failed for registry.access.redhat.com/rhel7/pod-infrastructure, this may be because there are no credentials on this request. details: (unable to ping registry endpoint https ://registry.access.redhat.com/v0/\nv2 ping attempt failed with error: get https ://regitry.access.redhat.com/v2: bad request \n v1 ping attemp failed with error: Get https ://registry.access.redhat.com/v1/_ping: Bad Request)"



现在我相信这里发生的事情是对 seleium 图像的依赖,pod-infrastructure 正试图通过公共(public)存储库而不是我的 Artifactory 存储库下载。

这就是我的问题所在,我一直在尝试找到一种方法,以便我的节点对图像的请求将直接发送到我的 Artifactory。我目前尝试了多种方法,但都失败了。

这是我正在使用的一些配置。

我的 nginx 也设置为监听 8088 以获取正常的 docker 请求并将它们转发到名为 docker-remote 的 Artifactory 存储库
它还设置为在 8089 上监听 registry.access.redhat.com 请求并将其转发到 red-remote repo

显然,我在 docker-remote 上为 docker.io 提供了 docker 的 Artifactory 存储库,在 redhat 存储库中拥有 red-remote

节点/pod 具有将 red-myproxy.mylab.lab 指向 nginx 代理 myproxy.mylab.lab 的 Hosts 文件和要包含的 docker.conf 文件

INSECURE_REGISTRY='--insecure-registry myproxy.mylab.lab:8088' INSECURE_REGISTRY='--insecure-registry red-myproxy.mylab.lab:8089'



到目前为止一切正常,所以当我构建图像时,我使用
Seleium-hub-rc.yaml 用于创建 docker 镜像
# selenium-hub-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
  name: selenium-hub
spec:
  replicas: 1
  selector:
    name: selenium-hub
  template:
    metadata:
      labels:
        name: selenium-hub
    spec:
      containers:
        - name: selenium-hub
          image: myproxy.mylab.lab:8088/selenium/hub
          ports:
            - containerPort: 4444 

差不多就是这样。我运行 yaml,它给了我那个错误。我试过在 docker.conf 和 fannel.conf 中设置一个代理,看看我是否可以给任何默认请求一个指向我的 repo 的指针

HTTP_PROXY="http://red-proxy.mylab.lab:8089"



但失败了,我试图弄清楚 yaml 是如何做到的,但找不到任何东西,并且在想也许我需要直接编辑 selenium 图像来这样做?

我真的被这个难住了,但我确信其他人使用 kunbernetes 隔离环境就好了,并为它试图提取的 docker 图像设置了多个 repo。

感谢您抽出时间查看我的问题,希望您能提供帮助!

最佳答案

我找到了答案,编辑 /etc/kubernetes/kubelet文件的行 # pod infrastructure container #KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=re‌​gistry.access.redhat‌​.com/rhel7/pod-infra‌​structure:latest"在 kubernetes 节点本身上并更新它们以将 registry.redhat.com 的路径更改为我的代理服务器 red-proxy.mylab.lab:8089 工作!我很高兴这个头痛已经解决了:)

归功于 wiki.christophchamp.com/index.php?title=Kubernetes

关于nginx - 将 Kubernetes 与 Artifactory/Nginx 代理一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41700626/

相关文章:

java - Spring 框架 : No BeanFactory available anymore (probably due to serialization)

django - Nginx+uWsgi+Django 'Permission denied while connecting to upstream'(套接字)

docker - 使用 Docker 时如何在 Traefik 中使用 STS header

bash - 如何使用/bin/sh编写docker命令并将结果分配给变量?

Dockerfile, 如何安装 snap, snapd : unrecognized service

django - nginx子域和域重写w代理pass

java - 如何配置代理设置以便 eclipse indigo 可以安装新插件

ruby-on-rails - 利用 Nginx 的浏览器缓存问题

url - Nginx是否在路径中支持原始unicode?

apache - 10 个内部重定向 - 可以提高这个限制吗?