Comments (12)
@lucasecdb alright. So first of all, having a cluster with a single node is a bad idea for kubernetes. The reason this node is tainted because it's acting as a master
. Please see this issue: kubernetes/kubernetes#65473
Because there are no other nodes, k8s is preventing to schedule anything here. You can manually remove the taint via:
kubectl taint nodes $(hostname) node-role.kubernetes.io/master:NoSchedule-
And everything should start work. Next time, make sure to understand these concepts and to use describe
and get
to get an understanding of the healthiness of your kubernetes cluster. Thanks!
from csi-digitalocean.
@fatih Thanks for taking the time to help me out!
from csi-digitalocean.
Thanks @lucasecdb
Can you please provide the following logs:
kubectl logs -l app=csi-provisioner-doplugin -c digitalocean-csi-plugin -n kube-system
kubectl logs -l app=csi-attacher-doplugin -c digitalocean-csi-plugin -n kube-system
kubectl logs -l app=csi-doplugin -c csi-doplugin -n kube-system
Also, you didn't provide the full manifest of your setup. I wrote it here: https://github.com/digitalocean/csi-digitalocean/blob/master/.github/ISSUE_TEMPLATE.md but seems like it was neglected. So who uses this PV? If it's a deployment you should also provide it or you should provide something that is similar and still doesn't work so I can apply it to my cluster and see what's going on.
Thanks
from csi-digitalocean.
@fatih sorry about the manifests, I thought that only the pvc was sufficient, my full setup looks like this.
The image my deployment is using isn't exactly the postgres
as in the gist, but a custom one that's on a private registry (GCR), but it's basically the same, diffing only in the DB schema that's contained in the image.
I can't access my droplet right now, but when I get home it'll be the first thing I'll do.
from csi-digitalocean.
@fatih sorry that it took so long to get back, but the logs didn't return anything. I'm pretty sure I ran the correct command to install the csi (and even updated it now, with v0.1.5) and still it doesn't seem to have anything in the logs.
from csi-digitalocean.
@lucasecdb that's interesting. What's:
kubectl get pods -n kube-system
gives you ?
from csi-digitalocean.
@fatih here's the output
NAME READY STATUS RESTARTS AGE
calico-node-z8bct 2/2 Running 2 3d
coredns-78fcdf6894-2kdml 1/1 Running 1 3d
coredns-78fcdf6894-kcg2m 1/1 Running 1 3d
csi-attacher-doplugin-0 0/2 Pending 0 3d
csi-provisioner-doplugin-0 0/2 Pending 0 3d
etcd-cramkle 1/1 Running 1 3d
kube-apiserver-cramkle 1/1 Running 1 3d
kube-controller-manager-cramkle 1/1 Running 1 3d
kube-proxy-86jzz 1/1 Running 1 3d
kube-scheduler-cramkle 1/1 Running 1 3d
from csi-digitalocean.
And here are the logs of both pods
$ kubectl logs csi-attacher-doplugin-0 -n kube-system
Error from server (BadRequest): a container name must be specified for pod csi-attacher-doplugin-0, choose one of: [csi-attacher digitalocean-csi-plugin]
$ kubectl logs csi-provisioner-doplugin-0 -n kube-system
Error from server (BadRequest): a container name must be specified for pod csi-provisioner-doplugin-0, choose one of: [csi-provisioner digitalocean-csi-plugin]
from csi-digitalocean.
@lucasecdb great, seems like the plugin is not running in your cluster. Which is why it prevent you to create volumes. Can you give me the following information as well:
kubectl describe pods csi-attacher-doplugin-0 -n kube-system
kubectl describe pods csi-provisioner-doplugin-0 -n kube-system
Also please try to give me this information
kubectl cluster-info dump > kubernetes-dump.log
and upload the file to somewhere I can read, such as https://gist.github.com/
from csi-digitalocean.
I'm getting an error when trying to dump the cluster info, I'll search for a fix. Here's the output for the first 2 commands:
$ kubectl describe pods csi-attacher-doplugin-0 -n kube-system
Name: csi-attacher-doplugin-0
Namespace: kube-system
Priority: 0
PriorityClassName: <none>
Node: <none>
Labels: app=csi-attacher-doplugin
controller-revision-hash=csi-attacher-doplugin-5f6bb64659
statefulset.kubernetes.io/pod-name=csi-attacher-doplugin-0
Annotations: <none>
Status: Pending
IP:
Controlled By: StatefulSet/csi-attacher-doplugin
Containers:
csi-attacher:
Image: quay.io/k8scsi/csi-attacher:v0.2.0
Port: <none>
Host Port: <none>
Args:
--v=5
--csi-address=$(ADDRESS)
Environment:
ADDRESS: /var/lib/csi/sockets/pluginproxy/csi.sock
Mounts:
/var/lib/csi/sockets/pluginproxy/ from socket-dir (rw)
/var/run/secrets/kubernetes.io/serviceaccount from csi-attacher-token-ljwps (ro)
digitalocean-csi-plugin:
Image: digitalocean/do-csi-plugin:v0.1.4
Port: <none>
Host Port: <none>
Args:
--endpoint=$(CSI_ENDPOINT)
--token=$(DIGITALOCEAN_ACCESS_TOKEN)
--url=$(DIGITALOCEAN_API_URL)
Environment:
CSI_ENDPOINT: unix:///var/lib/csi/sockets/pluginproxy/csi.sock
DIGITALOCEAN_API_URL: https://api.digitalocean.com/
DIGITALOCEAN_ACCESS_TOKEN: <set to the key 'access-token' in secret 'digitalocean'> Optional: false
Mounts:
/var/lib/csi/sockets/pluginproxy/ from socket-dir (rw)
/var/run/secrets/kubernetes.io/serviceaccount from csi-attacher-token-ljwps (ro)
Conditions:
Type Status
PodScheduled False
Volumes:
socket-dir:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
csi-attacher-token-ljwps:
Type: Secret (a volume populated by a Secret)
SecretName: csi-attacher-token-ljwps
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 3m (x16906 over 1d) default-scheduler 0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.
$ kubectl describe pods csi-provisioner-doplugin-0 -n kube-system
Name: csi-provisioner-doplugin-0
Namespace: kube-system
Priority: 0
PriorityClassName: <none>
Node: <none>
Labels: app=csi-provisioner-doplugin
controller-revision-hash=csi-provisioner-doplugin-6d6b94d986
statefulset.kubernetes.io/pod-name=csi-provisioner-doplugin-0
Annotations: <none>
Status: Pending
IP:
Controlled By: StatefulSet/csi-provisioner-doplugin
Containers:
csi-provisioner:
Image: quay.io/k8scsi/csi-provisioner:v0.2.0
Port: <none>
Host Port: <none>
Args:
--provisioner=com.digitalocean.csi.dobs
--csi-address=$(ADDRESS)
--v=5
Environment:
ADDRESS: /var/lib/csi/sockets/pluginproxy/csi.sock
Mounts:
/var/lib/csi/sockets/pluginproxy/ from socket-dir (rw)
/var/run/secrets/kubernetes.io/serviceaccount from csi-provisioner-token-p7gcp (ro)
digitalocean-csi-plugin:
Image: digitalocean/do-csi-plugin:v0.1.4
Port: <none>
Host Port: <none>
Args:
--endpoint=$(CSI_ENDPOINT)
--token=$(DIGITALOCEAN_ACCESS_TOKEN)
--url=$(DIGITALOCEAN_API_URL)
Environment:
CSI_ENDPOINT: unix:///var/lib/csi/sockets/pluginproxy/csi.sock
DIGITALOCEAN_API_URL: https://api.digitalocean.com/
DIGITALOCEAN_ACCESS_TOKEN: <set to the key 'access-token' in secret 'digitalocean'> Optional: false
Mounts:
/var/lib/csi/sockets/pluginproxy/ from socket-dir (rw)
/var/run/secrets/kubernetes.io/serviceaccount from csi-provisioner-token-p7gcp (ro)
Conditions:
Type Status
PodScheduled False
Volumes:
socket-dir:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
csi-provisioner-token-p7gcp:
Type: Secret (a volume populated by a Secret)
SecretName: csi-provisioner-token-p7gcp
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 3m (x16906 over 1d) default-scheduler 0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.
from csi-digitalocean.
@lucasecdb seems like Kubernetes is not able to schedule any pods to your nodes. Did you somehow taint
them (make them unschedulable) ? Because that's what happening here. Can you run:
kubectl get nodes -o wide
You should see the node maybe is not ready. Do a describe
to the nodes to see what is happening to them. The issue here is that you couldn't deploy the plugin correctly.
from csi-digitalocean.
I don't think I did that, I'm still learning kubernetes and this is actually my first try at deploying an app.
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
cramkle Ready master 3d v1.11.2 142.93.205.191 <none> Ubuntu 16.04.5 LTS 4.4.0-134-generic docker://18.6.1
The first lines in the output of the describe
:
Name: cramkle
Roles: master
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/hostname=cramkle
node-role.kubernetes.io/master=
Annotations: kubeadm.alpha.kubernetes.io/cri-socket=/var/run/dockershim.sock
node.alpha.kubernetes.io/ttl=0
projectcalico.org/IPv4Address=142.93.205.191/20
volumes.kubernetes.io/controller-managed-attach-detach=true
CreationTimestamp: Sun, 26 Aug 2018 21:01:00 +0000
Taints: node-role.kubernetes.io/master:NoSchedule
Unschedulable: false
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
OutOfDisk False Thu, 30 Aug 2018 10:45:46 +0000 Sun, 26 Aug 2018 21:01:00 +0000 KubeletHasSufficientDisk kubelet has sufficient disk space available
MemoryPressure False Thu, 30 Aug 2018 10:45:46 +0000 Sun, 26 Aug 2018 21:01:00 +0000 KubeletHasSufficientMemory kubelet has sufficient memory available
DiskPressure False Thu, 30 Aug 2018 10:45:46 +0000 Sun, 26 Aug 2018 21:01:00 +0000 KubeletHasNoDiskPressure kubelet has no disk pressure
PIDPressure False Thu, 30 Aug 2018 10:45:46 +0000 Sun, 26 Aug 2018 21:01:00 +0000 KubeletHasSufficientPID kubelet has sufficient PID available
Ready True Thu, 30 Aug 2018 10:45:46 +0000 Sun, 26 Aug 2018 21:05:00 +0000 KubeletReady kubelet is posting ready status. AppArmor enabled
from csi-digitalocean.
Related Issues (20)
- Issue creating VolumeSnapshots HOT 3
- Stuck in "Still connecting to unix:///csi/csi.sock" loop
- Problem while existing pod gets updated - multi-attach error. HOT 2
- APIExstension k8s v1beta1 Deprecated
- [Question] privileged vs SYS_ADMIN in the CSI driver deployment
- Deploy as Helm chart HOT 7
- Support for NVMe volumes HOT 9
- [feature request] More forgiveness in rate limiting HOT 9
- PVC - Add do-block-storage-retain storage class with Reclaim policy Retain HOT 4
- Feature request: allow custom snapshot names HOT 1
- Error: waiting for a volume to be created, either by external provisioner "dobs.csi.digitalocean.com" or manually created by system administrator HOT 1
- Round capacity up to minimum supported size HOT 1
- Feature request: Support CSI PV Cloning HOT 5
- Issue with CSI outside of DigitalOcean droplets HOT 1
- Error mounting imported snapshot HOT 5
- Discrepancies with docs about importing snapshots in Kubernetes
- error resizing volume: volume/snapshot capacity limit exceeded HOT 1
- CSI Controller unable to access any API endpoints HOT 1
- Cannot apply csi driver on cis-1.23 hardened rke2 HOT 8
- Feature Request: Support Online PV Resizing
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from csi-digitalocean.