Welcome to the Linux Foundation Forum!

kubeadm init

kubeadm init --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.out

W0206 18:09:08.995885 39990 strict.go:54] error unmarshaling configuration schema.GroupVersionKind{Group:"kubeadm.k8s.io", Version:"v1beta2", Kind:"ClusterConfiguration"}: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal number into Go struct field ClusterConfiguration.networking of type v1beta2.Networking
v1beta2.ClusterConfiguration.Networking: readObjectStart: expect { or n, but found 6, error found in #10 byte of ...|working":6,"podSubne|..., bigger context ...|ation","kubernetesVersion":"1.16.1","networking":6,"podSubnet":""}|...
To see the stack trace of this error execute with --v=5 or higher

who could help me.


  • Hi @etofran810,

    Similar errors have been reported when the kubeadm-config.yaml file was not properly formatted. During the copy/paste process, the line numbers (1 through 6) may get copied over, causing errors during the YAML to JSON conversion. In other cases, the last line of the file may end up left-aligned, when it should be indented two spaces to the right.

    Please review your file and ensure there are no line numbers, and that all fields are specified and indented as expected.


  • ok , I modified file and now I have the follow error

    error converting YAML to JSON: yaml: line 6: mapping values are not allowed in this context

    apiVersion: kubeadm.k8s.io/v1beta2
    kind: ClusterConfiguration
    kubernetesVersion: 1.16.1 #<-- Use the word stable for newest version
    controlPlaneEndpoint: "k8smaster:6443" #<-- Use the node alias not the IP
    networking: 6

    my IP is ens33 inet

  • chrispokorni
    chrispokorni Posts: 2,015
    edited February 2020

    Your file includes extra characters, producing YAML parsing errors.
    Also, the podSubnet: ... line seems to not be indented as expected, but it could be just the forum editor removing the two expected blank spaces when pasting the text in the comment field.

    It also appears that your host IP overlaps the pod subnet. This could cause serious issues when bootstrapping your cluster. In order to avoid such issues, I would suggest modifying either your host IPs in your hypervisor's configuration, OR keep the host IPs as they are but modify the podSubnet: value in the kubeadm-config.yaml file together with the value of CALICO_IP4POOL_CIDR in the calico.yaml file, which is presented in the YAML code block of step 9 of lab exercise 3.1.


  • Hi @chrispokorni,
    Sorry to comment on this old thread but seeing same issue while trying to run a command:
    kubeadm init --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.out

    ****result is an error, like below:****

    _root@cp:~# kubeadm init --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.out
    could not interpret GroupVersionKind; unmarshal error: error converting YAML to JSON: yaml: line 4: could not find expected ':'
    To see the stack trace of this error execute with --v=5 or higher
    root@cp:~# _

    The kubeadm-config.yaml contents is below and I see same while comparing to the PDF that is in the course.

    Could you please point me what is wrong with this content that the command is complaining about?


  • It had a number (1 through 6) in the contents and was seeing same error. I didn't had a space in line 4 betwen ':' and quote before and was seeing same error. Now removed numbers and gave a space and same error. Actually I have tried multiple times and could get it work. However, if I just run a command:

    sudo kubeadm init --pod-network-cidr=

    then I am able to proceed further.

  • chrispokorni
    chrispokorni Posts: 2,015
    edited September 2021

    Hi @gaurav4978,

    As you can see, YAML syntax for Kubernetes follows very strict rules for spacing, indentation, and it is case sensitive.

    The line numbers, expected space after ':', the missing 2 spaces before 'podSubnet', they all collectively caused YAML to JSON conversion error message.

    These errors are common when the content is extracted from the PDF lab guide via copy/paste. In order to prevent these types of issues, you have a SOLUTIONS tarball that you may have downloaded in an earlier step, which includes config files, scripts, and definition files needed for labs. I would recommend navigating through the content of the SOLUTIONS subdirectory to familiarize yourself and find desired artifacts.

    The short command to init the control-plane works as a last resort, but it does not initialize the cluster in a manner consistent with the exercises in the lab guide, and you will get to see different results for some steps, while others may not work as intended. This is why the kubeadm-config.yaml file was provided, to customize the cluster's bootstrapping process.


  • Thanks Chris!
    I have heard about this "SOLUTIONS tarball" being used before. But I am noob on this that I could not locate it at all.

    This is how it looks on my end in web GUI. Could you help me to point where I should be looking to find this file, scripts, profiles whatever it is.
    Thank you!

  • Hi @gaurav4978,

    If you compare closely the YAML content provided earlier with the content from the PDF, you will see there are differences critical to the expected format of the kubeadm-config.yaml file.

    If you read carefully the Overview section of Lab Exercise 3.1, you will find instructions on how to download the tarball and how to extract it.


  • etofran810
    etofran810 Posts: 50
    edited March 2022

    hi, I neep help, I have executed kubeadm init and have the follow issue

    I modified the file and now is ok

  • edsonz
    edsonz Posts: 3

    Hi there,

    Hi all,

    I'm facing a similar problem and can't seem to get past it. Here's how my file looks like:
    root...~# cat kubeadm-config.yaml
    apiVersion: kubeadm.k8s.io/v1beta3
    kind: ClusterConfiguration
    kubernetesVersion: 1.24.1
    controlPlaneEndpoint: "k8scp:6443"

    root...~# kubeadm init --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.out
    [init] Using Kubernetes version: v1.24.1
    [preflight] Running pre-flight checks
    [WARNING SystemVerification]: missing optional cgroups: blkio
    error execution phase preflight: [preflight] Some fatal errors occurred:
    [ERROR CRI]: container runtime is not running: output: time="2023-03-05T02:28:30Z" level=fatal msg="validate service connection: CRI v1 runtime API is not implemented for endpoint \"unix:///var/run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService"
    , error: exit status 1
    [preflight] If you know what you are doing, you can make a check non-fatal with --ignore-preflight-errors=...
    To see the stack trace of this error execute with --v=5 or higher

    Thanks for any tips

  • chrispokorni
    chrispokorni Posts: 2,015

    Hi @edsonz,

    Your issue seems to be different, related to the runtime configuration.

    Please download the latest release of the lab guide from 03-01-2023, and follow the updated installation steps, paying close attention to the containerd runtime installation and configuration steps prior to installing Kubernetes components and initializing the control plane.



Upcoming Training