Search code examples
ibm-cloud

How to use docker hub registery with IKS deployed on VPC Gen2 infra?


I created a k8s cluster on IBM VPC Gen2 Infrastructure. When I deployed my application then it can't pull an image from docker hub. I'm getting below error. Port 443 is enabled under VPC Infrastucture/All Security groups/Rules. I can't find any documents which can help with this. All the docs are talking about setting up IBM registry and then push the docker image to this registry.

Error

Failed to pull image "metacontrollerio/metacontroller:v1.4.0": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/metacontrollerio/metacontroller:v1.4.0": failed to resolve reference "docker.io/metacontrollerio/metacontroller:v1.4.0": failed to do request: Head "https://registry-1.docker.io/v2/metacontrollerio/metacontroller/manifests/v1.4.0": dial tcp 107.23.X.X:443: i/o timeout

Mode of deployment

deployed using CLI with the help of kustomize

Metacontroller yaml file

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  labels:
    app.kubernetes.io/name: metacontroller
  name: metacontroller
  namespace: metacontroller
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: metacontroller
  serviceName: ""
  template:
    metadata:
      labels:
        app.kubernetes.io/name: metacontroller
    spec:
      serviceAccountName: metacontroller
      containers:
      - name: metacontroller
        image: metacontrollerio/metacontroller:v1.4.0
        command: ["/usr/bin/metacontroller"]
        args:
        - --logtostderr
        - -v=4
        - --discovery-interval=20s
  volumeClaimTemplates: []

Please help.


Solution

    1. Go to https://cloud.ibm.com/vpc-ext/network/subnet.
    2. Select your VPC.
    3. Enable Public gateway(bottom corner) to allow worker nodes to access public internet.