why is Kuberenetes kubeadm init command unable to pull the images from the repository k8s.gcr.io

7/18/2018

I have 2 vms that run a kubernetes master and a slave node that i have setup locally. Till now everything was working fine but suddenly it started giving errors when I try to start the master with kubeadm init command.I have cpppied the error below.

shayeeb@ubuntu:~$ sudo kubeadm init
[init] using Kubernetes version: v1.11.1
[preflight] running pre-flight checks
I0718 11:04:57.038464   20370 kernel_validator.go:81] Validating kernel version
I0718 11:04:57.038896   20370 kernel_validator.go:96] Validating kernel config
[preflight/images] Pulling images required for setting up a Kubernetes cluster
[preflight/images] This might take a minute or two, depending on the speed of your internet connection
[preflight/images] You can also perform this action in beforehand using 'kubeadm config images pull'
[preflight] Some fatal errors occurred:
[ERROR ImagePull]: failed to pull image [k8s.gcr.io/kube-apiserver-amd64:v1.11.1]: exit status 1
[ERROR ImagePull]: failed to pull image [k8s.gcr.io/kube-controller-manager-amd64:v1.11.1]: exit status 1
[ERROR ImagePull]: failed to pull image [k8s.gcr.io/kube-scheduler-amd64:v1.11.1]: exit status 1
[ERROR ImagePull]: failed to pull image [k8s.gcr.io/kube-proxy-amd64:v1.11.1]: exit status 1
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
-- Shayeeb Ahmed
kubeadm
kubernetes

4 Answers

7/18/2018

The latest version(v1.11.1) is not pulling. You can try specifying the version like

kubeadm config images pull --kubernetes-version=v1.11.0

-- Rishi0405
Source: StackOverflow

7/18/2018

You can also run following command rather than writing the yaml,

kubeadm init --kubernetes-version=1.11.0 --apiserver-advertise-address=<public_ip> --apiserver-cert-extra-sans=<private_ip>

If you are using flannel network run following commad,

kubeadm init --kubernetes-version=1.11.0 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=<public_ip> --apiserver-cert-extra-sans=<internal_ip> 
-- Abhaya Ghatkar
Source: StackOverflow

7/18/2018

The image seems to have been removed :

https://console.cloud.google.com/gcr/images/google-containers/GLOBAL/kube-apiserver-arm64?gcrImageListsize=50&gcrImageListquery=%255B%257B_22k_22_3A_22_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22v1.11_5C_22_22%257D%255D

As a workaround, pull the latest available images and ignore pre flight errors

kubeadm config images pull --kubernetes-version=v1.11.0
kubeadm init [args] --ignore-preflight-errors=all
-- Joji Antony
Source: StackOverflow

7/18/2018

Try this approach as it is working:

You can create config.yaml file, for example

cat config.yaml
    apiVersion: kubeadm.k8s.io/v1alpha1
    kind: MasterConfiguration
    api:
      advertiseAddress: 10.44.70.201
    networking:
      podSubnet: 192.168.0.0/16
    kubernetesVersion: 1.11.0

and run kubeadm init --config=kubeadm-config.yaml

-- Sukhwinder Singh
Source: StackOverflow