Thoughts on Kubernetes
Just a collection of annoyances on Kubernetes:
kubectl config and multiple namespaces
Seriously! The shear amount of YAML duplication if you have a large number of namespaces and clusters it quite rapidly becomes very annoying, do remember that this is YAML so you could have (ab)used anchors to copy commonly used fragments:
apiVersion: v1
clusters:
- cluster:
server: https://cluster1.example.com
name: cluster1
contexts:
- context: &bar-ns
cluster: cluster1
namespace: bar-namespace
user: "cluster1-user"
name: cluster1-bar-namespace
- context:
<<: *bar-ns
namespace: foo-namespace
name: cluster1-foo-namespace
- context:
<<: *bar-ns
namespace: kube-system
name: cluster1-kubesystem
current-context: cluster1-foo-namespace
kind: Config
preferences: {}
users: []
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* cluster1-foo-namespace cluster1 foo-namespace
cluster1-kubesystem cluster1 kube-system
cluster1-bar-namespace cluster1 bar-namespace
Except: as soon as you use kubectl config use-context
it goes and
helpfully writes back the expanded YAML structure. This makes sense but is
remarkably unhelpful as it goes.
You can of course template a number of ~/.kube/CONFIG_FILES and then use the following to switch:
$ export KUBECONFIG=~/.kube/config-a
$ kubectl get pods
Documentation
Maybe it’s the rapid pace of change within the software, but it’s full of holes, and yes I should raise pull requests for changes to the documentation, but look at the CentOS instructions
Where the repo contains packages for Kubernetes 1.1.0 - from 2015!
DNS
Headless services without selectors are very helpful, but unfortunately a TTL of 30 seconds that is currently fixed can be limiting.