您能否将Docker映像直接拉入IBM Cloud Kubernetes群集?

您能否将Docker映像直接拉入IBM Cloud Kubernetes群集?,docker,kubernetes,namespaces,ibm-cloud,ibm-cloud-infrastructure,Docker,Kubernetes,Namespaces,Ibm Cloud,Ibm Cloud Infrastructure,TL:DR-抱歉,如果这是基本的东西,我正在学习Kubernetes。 我试图在IBM云中创建Kubernetes部署,但失败了。该部署在本地minikube上运行良好,但在IBM云中失败。我是否需要使用IBMCloud名称空间进行部署,还是应该能够从Docker公共产品中将Docker映像拉入IBMCloud 长版本 我正在学习有关IBM Cloud Kubernetes服务()的本课程 在prereqs中,我需要为留言簿数据库部署Redis 这些步骤是: 1.复制回购协议 $ clone

TL:DR-抱歉,如果这是基本的东西,我正在学习Kubernetes。 我试图在IBM云中创建Kubernetes部署,但失败了。该部署在本地minikube上运行良好,但在IBM云中失败。我是否需要使用IBMCloud名称空间进行部署,还是应该能够从Docker公共产品中将Docker映像拉入IBMCloud

长版本

我正在学习有关IBM Cloud Kubernetes服务()的本课程

在prereqs中,我需要为留言簿数据库部署Redis

这些步骤是: 1.复制回购协议

$  clone https://github.com/IBM/guestbook.git
  • cd至/guestbook/v2

  • 为主设备和从设备创建Redis控制器和服务:

    $kubectl create-f redis-master-deployment.yaml

  • 问题是,当我运行时:

    $ kubectl create -f redis-master-deployment.yaml
    
    部署失败:

    $ kubectl get deployments -o wide
    NAME           READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS     IMAGES        SELECTOR
    redis-master   0/1     1            0           10m   redis-master   redis:3.2.9   app=redis,role=master
    
    $ kubectl get pods -o wide
    NAME                           READY   STATUS             RESTARTS   AGE   IP              NODE          NOMINATED NODE   READINESS GATES
    redis-master-577bc6fbb-b4trd   0/1     ImagePullBackOff   0          14m   172.30.113.18   10.241.0.11   <none>           <none>
    

    所以我只需要一个指向错误方向的点。

    多亏了@bhpratt,才发现了问题

    工作节点所在的子网没有公共IP。它们确实有代理资源,但必须在子网本身上启用

    这被关掉了。翻转开关并成功创建展开

    $ kubectl get deployments -o wide
    NAME           READY   UP-TO-DATE   AVAILABLE   AGE     CONTAINERS     IMAGES        SELECTOR
    redis-master   1/1     1            1           4m50s   redis-master   redis:3.2.9   app=redis,role=master
    

    谢谢你的补充信息。答案是您的工作节点需要公共访问才能从公共docker中提取。三种解决方案:

  • 使用公共和私有IP创建工作节点
  • 创建启用网关的群集:
  • 将docker映像推送到IBM Cloud容器注册表, 更新YAML以从容器注册表中提取,并部署 容器。您的集群可以从专用网络从IBM云注册表中提取映像

  • 简单的回答是肯定的,您可以将公共docker映像直接拉入IKS集群。有几个问题:1)您是否可以将其他公共docker映像拉入集群,或者所有映像都失败了?2) 您的工作节点上既有公用IP,也有专用IP吗?3) 您的帐户上有防火墙吗?工作节点都有专用IP。我在不公开的情况下设置了它们,以尽量减少安全问题,但我认为它们有代理来处理此类请求。我还没试过提取任何其他图像。没有防火墙。我确实怀疑可能有一个网络组件我错过了什么地方。
    $ kubectl create -f ./redis-master-deployment.yaml 
    deployment.apps/redis-master created
    
    
    $ kubectl get deployments -o wide
    NAME           READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS     IMAGES        SELECTOR
    redis-master   1/1     1            1           14s   redis-master   redis:3.2.9   app=redis,role=master
    
    $ kubectl get deployments -o wide
    NAME           READY   UP-TO-DATE   AVAILABLE   AGE     CONTAINERS     IMAGES        SELECTOR
    redis-master   1/1     1            1           4m50s   redis-master   redis:3.2.9   app=redis,role=master