LXD, Kubernetes, and Juju


I’m experiencing grief installing the ‘kubernetes-core’ (or ‘canonical-kubernetes’) Juju bundle using LXD as a backing cloud. I’m posting here because I don’t see the same behaviour on another cloud (I’ve tested with AWS).

juju bootstrap localhost lxd
juju deploy kubernetes-core
mkdir ~/.kube
juju scp kubernetes-master/0:config ~/.kube/config
sudo snap install --classic kubectl

Output to

kubectl describe pods

almost always (it worked once out of 10 tries) gives:

0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.

Full output here:


Ideally I would like to use the staging Charm Store since I want to eventually deploy Kubernetes charms:

juju bootstrap --config charmstore-url=https://api.staging.jujucharms.com/charmstore localhost lxd

I also intend to document this so I’d like to avoid having to download bundles and charms locally.

Can anyone reproduce this issue?


The error was present up to at least 58 minutes after deployment. I came back to my terminal an hour after that to find it gone. Strange. The host is sufficiently resourced (16 GiB; 8 vCPU).


Oh wow. The error came back. Anyone know what’s going on?


what storage are you using with LXD? Plain dir storage is rcommended


See also: https://github.com/juju-solutions/bundle-canonical-kubernetes/wiki/Deploying-on-LXD


That’s some awesome information there. Thank you.


It looks like the ‘kubernetes-core’ and ‘canonical-kubernetes’ bundles cannot be used without all their charms being updated (according to that documentation) using the new LXD profiles support.


These two bundles need conjure-up to assist in setting up the environment properly hacking around the lxd profile bits needed. Once the charms are updated to support the 2.5 lxd profile customization feature they should be able to work on the localhost provided without the conjure-up spell tweaks.