I'm new to kubernetes and I'm struggling with starting my frist pods. I installed kubernetes on my Ubuntu virtual machine, proceeded with
kubeadm init
followed by other instuctions
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
I can see that the node is up and running
kubectl get nodes
NAME STATUS ROLES AGE VERSION
vm24740 Ready master 12m v1.10.0
Nevertheless my pods won't start:
kubectl get pods
NAME READY STATUS RESTARTS AGE
myappdeployment-588bc8ddf4-28jzj 0/1 Pending 0 11m
myappdeployment-588bc8ddf4-9bbb9 0/1 Pending 0 11m
myappdeployment-588bc8ddf4-fptft 0/1 Pending 0 11m
myappdeployment-588bc8ddf4-lxj8p 0/1 Pending 0 11m
myappdeployment-588bc8ddf4-xhg5f 0/1 Pending 0 11m
This is a detailed view on a pod:
kubectl describe pod myappdeployment-588bc8ddf4-28jzj
Name: myappdeployment-588bc8ddf4-28jzj
Namespace: default
Node: <none>
Labels: app=myapp
pod-template-hash=1446748890
Annotations: <none>
Status: Pending
IP:
Controlled By: ReplicaSet/myappdeployment-588bc8ddf4
Containers:
myapp:
Image: jamesquigley/exampleapp:v1.0.0
Port: 9000/TCP
Host Port: 0/TCP
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-6rcjb (ro)
Conditions:
Type Status
PodScheduled False
Volumes:
default-token-6rcjb:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-6rcjb
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 1m (x37 over 11m) default-scheduler 0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.
Would somebody more experienced than me know, why the pods don't start?
Seem like you are running single node (master) k8s:
From Documentation :
Master Isolation
By default, your cluster will not schedule pods on the master for security reasons. If you want to be able to schedule pods on the master, eg for a single-machine Kubernetes cluster for development, run:
kubectl taint nodes --all node-role.kubernetes.io/master-
With output looking something like:
node "test-01" untainted taint key="dedicated" and effect="" not found. taint key="dedicated" and effect="" not found
node "test-01" untainted taint key="dedicated" and effect="" not found. taint key="dedicated" and effect="" not found
.This will remove
the node-role.kubernetes.io/master
taint from any nodes that have it, including the master node, meaning that the scheduler will then be able to schedule pods everywhere.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.