Preq-reqs:
- You need a node
- Your node's OS should be Linux
- It should be a good Linux distro (Ubuntu 15.10)
- Not a bad one
- It should have Docker running
- It should be disposable
- It shouldn't have been previously traumatized
This is the formula for terminating k8s nodes that have a bad kubelet. This effectively fences nodes that are unable to unmount/detach their own storage.
Early testing shows that this may not work if a node is rebooted in response to a kubelet/system issue. Therefore the action taken in response to a problem on a kubernetes node MUST BE to terminate it.
Make LB like this:
"HealthCheck": {
Summarizing 16 Failures: | |
[Fail] [k8s.io] EmptyDir volumes [It] should support (non-root,0777,default) [Conformance] | |
/Users/eorodrig/oss/kubernetes-elsonrodriguez/_output/local/go/src/k8s.io/kubernetes/test/e2e/framework/util.go:1617 | |
[Fail] [k8s.io] EmptyDir volumes [It] should support (root,0644,tmpfs) [Conformance] | |
/Users/eorodrig/oss/kubernetes-elsonrodriguez/_output/local/go/src/k8s.io/kubernetes/test/e2e/framework/util.go:1617 | |
[Fail] [k8s.io] EmptyDir volumes [It] volume on default medium should have the correct mode [Conformance] | |
/Users/eorodrig/oss/kubernetes-elsonrodriguez/_output/local/go/src/k8s.io/kubernetes/test/e2e/framework/util.go:1617 |
Summarizing 20 Failures: | |
[Fail] [k8s.io] ConfigMap [It] should be consumable from pods in volume as non-root [Conformance] | |
/Users/elsonrodriguez/oss/kubernetes-elsonrodriguez/_output/local/go/src/k8s.io/kubernetes/test/e2e/framework/util.go:1620 | |
[Fail] [k8s.io] EmptyDir volumes [It] should support (non-root,0777,default) [Conformance] | |
/Users/elsonrodriguez/oss/kubernetes-elsonrodriguez/_output/local/go/src/k8s.io/kubernetes/test/e2e/framework/util.go:1620 | |
[Fail] [k8s.io] EmptyDir volumes [It] should support (root,0644,tmpfs) [Conformance] | |
/Users/elsonrodriguez/oss/kubernetes-elsonrodriguez/_output/local/go/src/k8s.io/kubernetes/test/e2e/framework/util.go:1620 |
{ | |
"metadata": { | |
"name": "pachyderm", | |
"creationTimestamp": null, | |
"labels": { | |
"app": "", | |
"suite": "pachyderm" | |
} | |
}, | |
"secrets": null, |
--- | |
kind: DaemonSet | |
apiVersion: extensions/v1beta1 | |
metadata: | |
labels: | |
app: ceph | |
daemon: mon | |
name: ceph-mon | |
namespace: ceph | |
spec: |
apiVersion: apps/v1alpha1 | |
kind: PetSet | |
metadata: | |
labels: | |
name: mongo | |
name: mongo | |
spec: | |
replicas: 1 | |
serviceName: mongo | |
volumeClaimTemplates: |
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: flink-jobmanager | |
labels: | |
app: flink-jobmanager | |
spec: | |
replicas: 1 | |
template: | |
metadata: |
##This grabs what should be the only interface's ip address. | |
#set ip_suffix = $interfaces.itervalues().next()['ip_address'].split(".",2)[2] | |
[Service] | |
ExecStart= | |
ExecStart=/usr/bin/docker daemon -H fd:// --bip=10.$ip_suffix.1/24 --storage-driver=overlay |