apt update && apt upgrade -y
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt install linux-image-extra-virtual ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt update
apt install docker-ce kubelet kubeadm kubectl kubernetes-cni -y
kubeadm init --pod-network-cidr 192.168.0.0/16 --service-cidr 10.96.0.0/12 --service-dns-domain "k8s" --apiserver-advertise-address $(ifconfig eth0 | grep 'inet addr'| cut -d':' -f2 | awk '{print $1}')
You should get information back on initiating commands as a normal user, as well as the network that you need to deploy as well as how to join worker nodes to the cluster.
As a normal user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config | tee -a ~/.bashrc
As a normal user, deploy a pod network:
kubectl apply -f http://docs.projectcalico.org/v2.3/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml
# latest:
# kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml
apt update && apt upgrade -y
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt install linux-image-extra-virtual ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt update
apt install docker-ce kubelet kubeadm kubectl kubernetes-cni -y
As a normal user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config | tee -a ~/.bashrc
From the output of the kubeadm init, you received a join token, which we will be running from the node that we would like to join:
kubeadm join --token 51e20a.40a4599dbe3ca2e0 172.31.39.193:6443 --discovery-token-ca-cert-hash sha256:[long-string]
kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-172-31-32-88 Ready <none> 16m v1.8.4
ip-172-31-39-193 Ready master 23m v1.8.4
kubectl get all --namespace=kube-system
List the containers thats currently running:
kubectl get pods
NAME READY STATUS RESTARTS AGE
guids-6d7b75568d-sndbd 0/1 ContainerCreating 0 5s
Lets deploy a service into our kubernetes cluster:
kubectl run guids --image=alexellis2/guid-service:latest --port 9000
deployment "guids" created
kubectl get pods
NAME READY STATUS RESTARTS AGE
guids-6d7b75568d-sndbd 1/1 Running 0 15s
Describe the Pod and get the IP:
kubectl describe pod guids-6d7b75568d-sndbd | grep IP
IP: 192.168.144.66
kubectl describe services kubernetes-dashboard --namespace=kube-system
curl 192.168.144.66:9000/guid
{"guid":"dde5c4f1-d412-4acf-9ab3-bd81b347bc4f","container":"guids-6d7b75568d-sndbd"}
kubectl logs guids-6d7b75568d-sndbd
kubectl exec -it guids-6d7b75568d-sndbd sh
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
kubectl describe services kubernetes-dashboard --namespace=kube-system
kubectl proxy --address 0.0.0.0 --port 8001 --accept-hosts='^*$'
# or if using localhost:
ssh -L 8001:127.0.0.1:8001 -N
Deploy a Web Application:
kubectl create namespace sock-shop
kubectl apply -n sock-shop -f "https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml?raw=true"
kubectl -n sock-shop get svc front-end
kubectl get pods --namespace=sock-shop
## Resources:
- https://github.com/kubernetes/kubernetes/tree/master/examples
- http://blog.pichuang.com.tw/Installing-Kubernetes-on-Linux-with-kubeadm/
- https://blog.alexellis.io/kubernetes-in-10-minutes/
- http://alexander.holbreich.org/kubernetes-on-ubuntu/
- http://alesnosek.com/blog/2017/02/14/accessing-kubernetes-pods-from-outside-of-the-cluster/
i able to join onw of mya worker node but when i ran
kubectl get nodesi got these status on my clusterNAME STATUS ROLES AGE VERSION
master NotReady master 15m v1.13.1
node02 NotReady 12m v1.13.1
is there anyone faceing the same problem as me