I'm trying to build a local bare metal kubernetes cluster on ubuntu.
Following step by step guide (https://www.youtube.com/watch?v=UWg3ORRRF60) I've managed to install kubernetes master and have got the success message "Your Kubernetes master has initialized successfully!" after initializing the cluster with 'kubeadm init --pod-network-cidr=10.0.0.0/16 --apiserver-advertise-address=10.0.0.20' command.
Now the next step is to deploy a pod network so I have used calico, running the following command:
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml --validate=false
And I get the output:
unable to recognize "https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml": no matches for kind "ConfigMap" in version "v1"
unable to recognize "https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml": no matches for kind "DaemonSet" in version "extensions/v1beta1"
unable to recognize "https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml": no matches for kind "Service" in version "v1"
unable to recognize "https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml": no matches for kind "DaemonSet" in version "extensions/v1beta1"
unable to recognize "https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml": no matches for kind "Deployment" in version "extensions/v1beta1"
unable to recognize "https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml": no matches for kind "ClusterRoleBinding" in version "rbac.authorization.k8s.io/v1beta1"
unable to recognize "https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml": no matches for kind "ClusterRole" in version "rbac.authorization.k8s.io/v1beta1"
unable to recognize "https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml": no matches for kind "ServiceAccount" in version "v1"
unable to recognize "https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml": no matches for kind "ClusterRoleBinding" in version "rbac.authorization.k8s.io/v1beta1"
unable to recognize "https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml": no matches for kind "ClusterRole" in version "rbac.authorization.k8s.io/v1beta1"
unable to recognize "https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml": no matches for kind "ServiceAccount" in version "v1"
My kubectl version output is:
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.1", GitCommit:"b1b29978270dc22fecc592ac55d903350454310a", GitTreeState:"clean", BuildDate:"2018-07-17T18:53:20Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Error from server (NotFound): the server could not find the requested resource
Would appreciate any help, even some advice for self debugging. Thanks.
You have to use separate ranges for your pod-network-cidr and apiserver-advertise-address as it is stated in this post. Please try to remove the cluster and reinit it again with different network configuration:
Start with:
Run this to revert any changes made to this host by 'kubeadm init' or 'kubeadm join'.
kubeadm reset
Then init the cluster again (IP address is a safe example).
kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=10.0.0.20
Also if you are running that as in the tutorial you've linked on the master node you can skip --apiserver-advertise-address as it uses the default gateway of the current machine.
Run the standard commands from the kubeadm documentation
To make kubectl work for your non-root user, run these commands, which are also part of the
kubeadm init
output:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the
root
user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
After that install the network add-on: For Calico:
In order for Network Policy to work correctly, you need to pass
--pod-network-cidr=192.168.0.0/16
tokubeadm init
. Note that Calico works onamd64
only.
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml
You can also start from scratch with official Kubernetes documentation on how to install kubeadm.
If kubernete version is above 1.16 then please use to following link to install calico.
kubectl apply -f https://docs.projectcalico.org/v3.9/manifests/calico.yaml
Please check the node status to confirm if calico is installed successfully.
coredns and calico should be in running state.