diff --git a/docs/high-availability.md b/docs/high-availability.md index d3ef621fdbd..8e5df0c73cf 100644 --- a/docs/high-availability.md +++ b/docs/high-availability.md @@ -77,12 +77,12 @@ First, hit the etcd discovery service to create a new token: curl https://discovery.etcd.io/new?size=3 ``` -On each node, copy the [etcd.manifest](high-availability/etcd.manifest) file into ```/etc/kubernetes/manifests/etcd.manifest``` +On each node, copy the [etcd.yaml](high-availability/etcd.yaml) file into ```/etc/kubernetes/manifests/etcd.yaml``` The kubelet on each node actively monitors the contents of that directory, and it will create an instance of the ```etcd``` -server from the definition of the pod specified in ```etcd.manifest```. +server from the definition of the pod specified in ```etcd.yaml```. -Note that in ```etcd.manifest``` you should substitute the token URL you got above for ```${DISCOVERY_TOKEN}``` on all three machines, +Note that in ```etcd.yaml``` you should substitute the token URL you got above for ```${DISCOVERY_TOKEN}``` on all three machines, and you should substitute a different name (e.g. ```node-1```) for ${NODE_NAME} and the correct IP address for ```${NODE_IP}``` on each machine. @@ -140,7 +140,7 @@ Next, you need to create a ```/srv/kubernetes/``` directory on each node. This The easiest way to create this directory, may be to copy it from the master node of a working cluster, or you can manually generate these files yourself. ### Starting the API Server -Once these files exist, copy the [kube-apiserver.manifest](high-availability/kube-apiserver.manifest) into ```/etc/kubernetes/manifests/``` on each master node. +Once these files exist, copy the [kube-apiserver.yaml](high-availability/kube-apiserver.yaml) into ```/etc/kubernetes/manifests/``` on each master node. The kubelet monitors this directory, and will automatically create an instance of the ```kube-apiserver``` container using the pod definition specified in the file. @@ -178,13 +178,13 @@ touch /var/log/kube-controller-manager.log ``` Next, set up the descriptions of the scheduler and controller manager pods on each node. -by copying [kube-scheduler.manifest](high-availability/kube-scheduler.manifest) and [kube-controller-manager.manifest](high-availability/kube-controller-manager.manifest) into the ```/srv/kubernetes/``` +by copying [kube-scheduler.yaml](high-availability/kube-scheduler.yaml) and [kube-controller-manager.yaml](high-availability/kube-controller-manager.yaml) into the ```/srv/kubernetes/``` directory. ### Running the podmaster -Now that the configuration files are in place, copy the [podmaster.manifest](high-availability/podmaster.manifest) config file into ```/etc/kubernetes/manifests/``` +Now that the configuration files are in place, copy the [podmaster.yaml](high-availability/podmaster.yaml) config file into ```/etc/kubernetes/manifests/``` -As before, the kubelet on the node monitors this directory, and will start an instance of the podmaster using the pod specification provided in ```podmaster.manifest```. +As before, the kubelet on the node monitors this directory, and will start an instance of the podmaster using the pod specification provided in ```podmaster.yaml```. Now you will have one instance of the scheduler process running on a single master node, and likewise one controller-manager process running on a single (possibly different) master node. If either of these processes fail, diff --git a/docs/high-availability/etcd.manifest b/docs/high-availability/etcd.manifest deleted file mode 100644 index 3567a6f4a4f..00000000000 --- a/docs/high-availability/etcd.manifest +++ /dev/null @@ -1,104 +0,0 @@ -{ -"apiVersion": "v1beta3", -"kind": "Pod", -"metadata": {"name":"etcd-server"}, -"spec":{ -"hostNetwork": true, -"containers":[ - { - "name": "etcd-container", - "image": "gcr.io/google_containers/etcd:2.0.9", - "command": [ - "/usr/local/bin/etcd", - "--name", "${NODE_NAME}", - "--initial-advertise-peer-urls", - "http://${NODE_IP}:2380", - "--listen-peer-urls", - "http://${NODE_IP}:2380", - "--advertise-client-urls", - "http://${NODE_IP}:4001", - "--listen-client-urls", - "http://127.0.0.1:4001", - "--data-dir", - "/var/etcd/data", - "--discovery", - "${DISCOVERY_TOKEN}" - ], - "ports":[ - { "name": "serverport", - "containerPort": 2380, - "hostPort": 2380},{ - "name": "clientport", - "containerPort": 4001, - "hostPort": 4001} - ], - "volumeMounts": [ - { "name": "varetcd", - "mountPath": "/var/etcd", - "readOnly": false}, - { "name": "etcssl", - "mountPath": "/etc/ssl", - "readOnly": true}, - { "name": "usrsharessl", - "mountPath": "/usr/share/ssl", - "readOnly": true}, - { "name": "varssl", - "mountPath": "/var/ssl", - "readOnly": true}, - { "name": "usrssl", - "mountPath": "/usr/ssl", - "readOnly": true}, - { "name": "usrlibssl", - "mountPath": "/usr/lib/ssl", - "readOnly": true}, - { "name": "usrlocalopenssl", - "mountPath": "/usr/local/openssl", - "readOnly": true}, - { "name": "etcopenssl", - "mountPath": "/etc/openssl", - "readOnly": true}, - { "name": "etcpkitls", - "mountPath": "/etc/pki/tls", - "readOnly": true} - ] - } -], -"volumes":[ - { "name": "varetcd", - "hostPath": { - "path": "/var/etcd/data"} - }, - { "name": "etcssl", - "hostPath": { - "path": "/etc/ssl"} - }, - { "name": "usrsharessl", - "hostPath": { - "path": "/usr/share/ssl"} - }, - { "name": "varssl", - "hostPath": { - "path": "/var/ssl"} - }, - { "name": "usrssl", - "hostPath": { - "path": "/usr/ssl"} - }, - { "name": "usrlibssl", - "hostPath": { - "path": "/usr/lib/ssl"} - }, - { "name": "usrlocalopenssl", - "hostPath": { - "path": "/usr/local/openssl"} - }, - { "name": "etcopenssl", - "hostPath": { - "path": "/etc/openssl"} - }, - { "name": "etcpkitls", - "hostPath": { - "path": "/etc/pki/tls"} - } -] -}} diff --git a/docs/high-availability/etcd.yaml b/docs/high-availability/etcd.yaml new file mode 100644 index 00000000000..fc9fe67e754 --- /dev/null +++ b/docs/high-availability/etcd.yaml @@ -0,0 +1,87 @@ +apiVersion: v1 +kind: Pod +metadata: + name: etcd-server +spec: + hostNetwork: true + containers: + - image: gcr.io/google_containers/etcd:2.0.9 + name: etcd-container + command: + - /usr/local/bin/etcd + - --name + - ${NODE_NAME} + - --initial-advertise-peer-urls + - http://${NODE_IP}:2380 + - --listen-peer-urls + - http://${NODE_IP}:2380 + - --advertise-client-urls + - http://${NODE_IP}:4001 + - --listen-client-urls + - http://127.0.0.1:4001 + - --data-dir + - /var/etcd/data + - --discovery + - ${DISCOVERY_TOKEN} + ports: + - containerPort: 2380 + hostPort: 2380 + name: serverport + - containerPort: 4001 + hostPort: 4001 + name: clientport + volumeMounts: + - mountPath: /var/etcd + name: varetcd + - mountPath: /etc/ssl + name: etcssl + readOnly: true + - mountPath: /usr/share/ssl + name: usrsharessl + readOnly: true + - mountPath: /var/ssl + name: varssl + readOnly: true + - mountPath: /usr/ssl + name: usrssl + readOnly: true + - mountPath: /usr/lib/ssl + name: usrlibssl + readOnly: true + - mountPath: /usr/local/openssl + name: usrlocalopenssl + readOnly: true + - mountPath: /etc/openssl + name: etcopenssl + readOnly: true + - mountPath: /etc/pki/tls + name: etcpkitls + readOnly: true + volumes: + - hostPath: + path: /var/etcd/data + name: varetcd + - hostPath: + path: /etc/ssl + name: etcssl + - hostPath: + path: /usr/share/ssl + name: usrsharessl + - hostPath: + path: /var/ssl + name: varssl + - hostPath: + path: /usr/ssl + name: usrssl + - hostPath: + path: /usr/lib/ssl + name: usrlibssl + - hostPath: + path: /usr/local/openssl + name: usrlocalopenssl + - hostPath: + path: /etc/openssl + name: etcopenssl + - hostPath: + path: /etc/pki/tls + name: etcpkitls diff --git a/docs/high-availability/kube-apiserver.manifest b/docs/high-availability/kube-apiserver.manifest deleted file mode 100644 index 66b3a814f7a..00000000000 --- a/docs/high-availability/kube-apiserver.manifest +++ /dev/null @@ -1,103 +0,0 @@ - { -"apiVersion": "v1beta3", -"kind": "Pod", -"metadata": {"name":"kube-apiserver"}, -"spec":{ -"hostNetwork": true, -"containers":[ - { - "name": "kube-apiserver", - "image": "gcr.io/google_containers/kube-apiserver:9680e782e08a1a1c94c656190011bd02", - "command": [ - "/bin/sh", - "-c", - "/usr/local/bin/kube-apiserver --address=127.0.0.1 --etcd_servers=http://127.0.0.1:4001 --cloud_provider=gce --admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota --service-cluster-ip-range=10.0.0.0/16 --client_ca_file=/srv/kubernetes/ca.crt --basic_auth_file=/srv/kubernetes/basic_auth.csv --cluster_name=e2e-test-bburns --tls_cert_file=/srv/kubernetes/server.cert --tls_private_key_file=/srv/kubernetes/server.key --secure_port=443 --token_auth_file=/srv/kubernetes/known_tokens.csv --v=2 --allow_privileged=False 1>>/var/log/kube-apiserver.log 2>&1" - ], - "ports":[ - { "name": "https", - "containerPort": 443, - "hostPort": 443},{ - "name": "http", - "containerPort": 7080, - "hostPort": 7080},{ - "name": "local", - "containerPort": 8080, - "hostPort": 8080} - ], - "volumeMounts": [ - { "name": "srvkube", - "mountPath": "/srv/kubernetes", - "readOnly": true}, - { "name": "logfile", - "mountPath": "/var/log/kube-apiserver.log", - "readOnly": false}, - { "name": "etcssl", - "mountPath": "/etc/ssl", - "readOnly": true}, - { "name": "usrsharessl", - "mountPath": "/usr/share/ssl", - "readOnly": true}, - { "name": "varssl", - "mountPath": "/var/ssl", - "readOnly": true}, - { "name": "usrssl", - "mountPath": "/usr/ssl", - "readOnly": true}, - { "name": "usrlibssl", - "mountPath": "/usr/lib/ssl", - "readOnly": true}, - { "name": "usrlocalopenssl", - "mountPath": "/usr/local/openssl", - "readOnly": true}, - { "name": "etcopenssl", - "mountPath": "/etc/openssl", - "readOnly": true}, - { "name": "etcpkitls", - "mountPath": "/etc/pki/tls", - "readOnly": true} - ] - } -], -"volumes":[ - { "name": "srvkube", - "hostPath": { - "path": "/srv/kubernetes"} - }, - { "name": "logfile", - "hostPath": { - "path": "/var/log/kube-apiserver.log"} - }, - { "name": "etcssl", - "hostPath": { - "path": "/etc/ssl"} - }, - { "name": "usrsharessl", - "hostPath": { - "path": "/usr/share/ssl"} - }, - { "name": "varssl", - "hostPath": { - "path": "/var/ssl"} - }, - { "name": "usrssl", - "hostPath": { - "path": "/usr/ssl"} - }, - { "name": "usrlibssl", - "hostPath": { - "path": "/usr/lib/ssl"} - }, - { "name": "usrlocalopenssl", - "hostPath": { - "path": "/usr/local/openssl"} - }, - { "name": "etcopenssl", - "hostPath": { - "path": "/etc/openssl"} - }, - { "name": "etcpkitls", - "hostPath": { - "path": "/etc/pki/tls"} - } -] -}} diff --git a/docs/high-availability/kube-apiserver.yaml b/docs/high-availability/kube-apiserver.yaml new file mode 100644 index 00000000000..3bfe65f9620 --- /dev/null +++ b/docs/high-availability/kube-apiserver.yaml @@ -0,0 +1,90 @@ +apiVersion: v1 +kind: Pod +metadata: + name: kube-apiserver +spec: + hostNetwork: true + containers: + - name: kube-apiserver + image: gcr.io/google_containers/kube-apiserver:9680e782e08a1a1c94c656190011bd02 + command: + - /bin/sh + - -c + - /usr/local/bin/kube-apiserver --address=127.0.0.1 --etcd_servers=http://127.0.0.1:4001 + --cloud_provider=gce --admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota + --service-cluster-ip-range=10.0.0.0/16 --client_ca_file=/srv/kubernetes/ca.crt + --basic_auth_file=/srv/kubernetes/basic_auth.csv --cluster_name=e2e-test-bburns + --tls_cert_file=/srv/kubernetes/server.cert --tls_private_key_file=/srv/kubernetes/server.key + --secure_port=443 --token_auth_file=/srv/kubernetes/known_tokens.csv --v=2 + --allow_privileged=False 1>>/var/log/kube-apiserver.log 2>&1 + ports: + - containerPort: 443 + hostPort: 443 + name: https + - containerPort: 7080 + hostPort: 7080 + name: http + - containerPort: 8080 + hostPort: 8080 + name: local + volumeMounts: + - mountPath: /srv/kubernetes + name: srvkube + readOnly: true + - mountPath: /var/log/kube-apiserver.log + name: logfile + - mountPath: /etc/ssl + name: etcssl + readOnly: true + - mountPath: /usr/share/ssl + name: usrsharessl + readOnly: true + - mountPath: /var/ssl + name: varssl + readOnly: true + - mountPath: /usr/ssl + name: usrssl + readOnly: true + - mountPath: /usr/lib/ssl + name: usrlibssl + readOnly: true + - mountPath: /usr/local/openssl + name: usrlocalopenssl + readOnly: true + - mountPath: /etc/openssl + name: etcopenssl + readOnly: true + - mountPath: /etc/pki/tls + name: etcpkitls + readOnly: true + volumes: + - hostPath: + path: /srv/kubernetes + name: srvkube + - hostPath: + path: /var/log/kube-apiserver.log + name: logfile + - hostPath: + path: /etc/ssl + name: etcssl + - hostPath: + path: /usr/share/ssl + name: usrsharessl + - hostPath: + path: /var/ssl + name: varssl + - hostPath: + path: /usr/ssl + name: usrssl + - hostPath: + path: /usr/lib/ssl + name: usrlibssl + - hostPath: + path: /usr/local/openssl + name: usrlocalopenssl + - hostPath: + path: /etc/openssl + name: etcopenssl + - hostPath: + path: /etc/pki/tls + name: etcpkitls diff --git a/docs/high-availability/kube-controller-manager.manifest b/docs/high-availability/kube-controller-manager.manifest deleted file mode 100644 index f66b5824de3..00000000000 --- a/docs/high-availability/kube-controller-manager.manifest +++ /dev/null @@ -1,100 +0,0 @@ -{ -"apiVersion": "v1beta3", -"kind": "Pod", -"metadata": {"name":"kube-controller-manager"}, -"spec":{ -"hostNetwork": true, -"containers":[ - { - "name": "kube-controller-manager", - "image": "gcr.io/google_containers/kube-controller-manager:fda24638d51a48baa13c35337fcd4793", - "command": [ - "/bin/sh", - "-c", - "/usr/local/bin/kube-controller-manager --master=127.0.0.1:8080 --cluster_name=e2e-test-bburns --cluster-cidr=10.245.0.0/16 --allocate-node-cidrs=true --cloud_provider=gce --service_account_private_key_file=/srv/kubernetes/server.key --v=2 1>>/var/log/kube-controller-manager.log 2>&1" - ], - "livenessProbe": { - "httpGet": { - "path": "/healthz", - "port": 10252 - }, - "initialDelaySeconds": 15, - "timeoutSeconds": 1 - }, - "volumeMounts": [ - { "name": "srvkube", - "mountPath": "/srv/kubernetes", - "readOnly": true}, - { "name": "logfile", - "mountPath": "/var/log/kube-controller-manager.log", - "readOnly": false}, - { "name": "etcssl", - "mountPath": "/etc/ssl", - "readOnly": true}, - { "name": "usrsharessl", - "mountPath": "/usr/share/ssl", - "readOnly": true}, - { "name": "varssl", - "mountPath": "/var/ssl", - "readOnly": true}, - { "name": "usrssl", - "mountPath": "/usr/ssl", - "readOnly": true}, - { "name": "usrlibssl", - "mountPath": "/usr/lib/ssl", - "readOnly": true}, - { "name": "usrlocalopenssl", - "mountPath": "/usr/local/openssl", - "readOnly": true}, - { "name": "etcopenssl", - "mountPath": "/etc/openssl", - "readOnly": true}, - { "name": "etcpkitls", - "mountPath": "/etc/pki/tls", - "readOnly": true} - ] - } -], -"volumes":[ - { "name": "srvkube", - "hostPath": { - "path": "/srv/kubernetes"} - }, - { "name": "logfile", - "hostPath": { - "path": "/var/log/kube-controller-manager.log"} - }, - { "name": "etcssl", - "hostPath": { - "path": "/etc/ssl"} - }, - { "name": "usrsharessl", - "hostPath": { - "path": "/usr/share/ssl"} - }, - { "name": "varssl", - "hostPath": { - "path": "/var/ssl"} - }, - { "name": "usrssl", - "hostPath": { - "path": "/usr/ssl"} - }, - { "name": "usrlibssl", - "hostPath": { - "path": "/usr/lib/ssl"} - }, - { "name": "usrlocalopenssl", - "hostPath": { - "path": "/usr/local/openssl"} - }, - { "name": "etcopenssl", - "hostPath": { - "path": "/etc/openssl"} - }, - { "name": "etcpkitls", - "hostPath": { - "path": "/etc/pki/tls"} - } -] -}} \ No newline at end of file diff --git a/docs/high-availability/kube-controller-manager.yaml b/docs/high-availability/kube-controller-manager.yaml new file mode 100644 index 00000000000..09acc340504 --- /dev/null +++ b/docs/high-availability/kube-controller-manager.yaml @@ -0,0 +1,82 @@ +apiVersion: v1 +kind: Pod +metadata: + name: kube-controller-manager +spec: + containers: + - command: + - /bin/sh + - -c + - /usr/local/bin/kube-controller-manager --master=127.0.0.1:8080 --cluster_name=e2e-test-bburns + --cluster-cidr=10.245.0.0/16 --allocate-node-cidrs=true --cloud_provider=gce --service_account_private_key_file=/srv/kubernetes/server.key + --v=2 1>>/var/log/kube-controller-manager.log 2>&1 + image: gcr.io/google_containers/kube-controller-manager:fda24638d51a48baa13c35337fcd4793 + livenessProbe: + httpGet: + path: /healthz + port: 10252 + initialDelaySeconds: 15 + timeoutSeconds: 1 + name: kube-controller-manager + volumeMounts: + - mountPath: /srv/kubernetes + name: srvkube + readOnly: true + - mountPath: /var/log/kube-controller-manager.log + name: logfile + - mountPath: /etc/ssl + name: etcssl + readOnly: true + - mountPath: /usr/share/ssl + name: usrsharessl + readOnly: true + - mountPath: /var/ssl + name: varssl + readOnly: true + - mountPath: /usr/ssl + name: usrssl + readOnly: true + - mountPath: /usr/lib/ssl + name: usrlibssl + readOnly: true + - mountPath: /usr/local/openssl + name: usrlocalopenssl + readOnly: true + - mountPath: /etc/openssl + name: etcopenssl + readOnly: true + - mountPath: /etc/pki/tls + name: etcpkitls + readOnly: true + hostNetwork: true + volumes: + - hostPath: + path: /srv/kubernetes + name: srvkube + - hostPath: + path: /var/log/kube-controller-manager.log + name: logfile + - hostPath: + path: /etc/ssl + name: etcssl + - hostPath: + path: /usr/share/ssl + name: usrsharessl + - hostPath: + path: /var/ssl + name: varssl + - hostPath: + path: /usr/ssl + name: usrssl + - hostPath: + path: /usr/lib/ssl + name: usrlibssl + - hostPath: + path: /usr/local/openssl + name: usrlocalopenssl + - hostPath: + path: /etc/openssl + name: etcopenssl + - hostPath: + path: /etc/pki/tls + name: etcpkitls diff --git a/docs/high-availability/kube-scheduler.manifest b/docs/high-availability/kube-scheduler.manifest deleted file mode 100644 index 686fa1b20d7..00000000000 --- a/docs/high-availability/kube-scheduler.manifest +++ /dev/null @@ -1,39 +0,0 @@ -{ -"apiVersion": "v1beta3", -"kind": "Pod", -"metadata": {"name":"kube-scheduler"}, -"spec":{ -"hostNetwork": true, -"containers":[ - { - "name": "kube-scheduler", - "image": "gcr.io/google_containers/kube-scheduler:34d0b8f8b31e27937327961528739bc9", - "command": [ - "/bin/sh", - "-c", - "/usr/local/bin/kube-scheduler --master=127.0.0.1:8080 --v=2 1>>/var/log/kube-scheduler.log 2>&1" - ], - "livenessProbe": { - "httpGet": { - "path": "/healthz", - "port": 10251 - }, - "initialDelaySeconds": 15, - "timeoutSeconds": 1 - }, - "volumeMounts": [ - { - "name": "logfile", - "mountPath": "/var/log/kube-scheduler.log", - "readOnly": false - } - ] - } -], -"volumes":[ - { "name": "logfile", - "hostPath": { - "path": "/var/log/kube-scheduler.log"} - } -] -}} \ No newline at end of file diff --git a/docs/high-availability/kube-scheduler.yaml b/docs/high-availability/kube-scheduler.yaml new file mode 100644 index 00000000000..1b23ee1bb8b --- /dev/null +++ b/docs/high-availability/kube-scheduler.yaml @@ -0,0 +1,30 @@ +apiVersion: v1 +kind: Pod +metadata: + name: kube-scheduler +spec: + hostNetwork: true + containers: + - name: kube-scheduler + image: gcr.io/google_containers/kube-scheduler:34d0b8f8b31e27937327961528739bc9 + command: + - /bin/sh + - -c + - /usr/local/bin/kube-scheduler --master=127.0.0.1:8080 --v=2 1>>/var/log/kube-scheduler.log + 2>&1 + livenessProbe: + httpGet: + path: /healthz + port: 10251 + initialDelaySeconds: 15 + timeoutSeconds: 1 + volumeMounts: + - mountPath: /var/log/kube-scheduler.log + name: logfile + - mountPath: /var/run/secrets/kubernetes.io/serviceaccount + name: default-token-s8ejd + readOnly: true + volumes: + - hostPath: + path: /var/log/kube-scheduler.log + name: logfile diff --git a/docs/high-availability/podmaster.manifest b/docs/high-availability/podmaster.manifest deleted file mode 100644 index 8fb13b5911a..00000000000 --- a/docs/high-availability/podmaster.manifest +++ /dev/null @@ -1,57 +0,0 @@ -{ -"apiVersion": "v1beta3", -"kind": "Pod", -"metadata": {"name":"scheduler-master"}, -"spec":{ -"hostNetwork": true, -"containers":[ - { - "name": "scheduler-elector", - "image": "gcr.io/google_containers/podmaster:1.1", - "command": [ - "/podmaster", - "--etcd-servers=http://127.0.0.1:4001", - "--key=scheduler", - "--source-file=/kubernetes/kube-scheduler.manifest", - "--dest-file=/manifests/kube-scheduler.manifest" - ], - "volumeMounts": [ - { "name": "k8s", - "mountPath": "/kubernetes", - "readOnly": true}, - { "name": "manifests", - "mountPath": "/manifests", - "readOnly": false} - ] - }, - { - "name": "controller-manager-elector", - "image": "gcr.io/google_containers/podmaster:1.1", - "command": [ - "/podmaster", - "--etcd-servers=http://127.0.0.1:4001", - "--key=controller", - "--source-file=/kubernetes/kube-controller-manager.manifest", - "--dest-file=/manifests/kube-controller-manager.manifest" - ], - "volumeMounts": [ - { "name": "k8s", - "mountPath": "/kubernetes", - "readOnly": true}, - { "name": "manifests", - "mountPath": "/manifests", - "readOnly": false} - ] - } -], -"volumes":[ - { "name": "k8s", - "hostPath": { - "path": "/srv/kubernetes"} - }, -{ "name": "manifests", - "hostPath": { - "path": "/etc/kubernetes/manifests"} - } -] -}} diff --git a/docs/high-availability/podmaster.yaml b/docs/high-availability/podmaster.yaml new file mode 100644 index 00000000000..d634225b933 --- /dev/null +++ b/docs/high-availability/podmaster.yaml @@ -0,0 +1,43 @@ +apiVersion: v1 +kind: Pod +metadata: + name: scheduler-master +spec: + hostNetwork: true + containers: + - name: scheduler-elector + image: gcr.io/google_containers/podmaster:1.1 + command: + - /podmaster + - --etcd-servers=http://127.0.0.1:4001 + - --key=scheduler + - --source-file=/kubernetes/kube-scheduler.manifest + - --dest-file=/manifests/kube-scheduler.manifest + volumeMounts: + - mountPath: /kubernetes + name: k8s + readOnly: true + - mountPath: /manifests + name: manifests + - name: controller-manager-elector + image: gcr.io/google_containers/podmaster:1.1 + command: + - /podmaster + - --etcd-servers=http://127.0.0.1:4001 + - --key=controller + - --source-file=/kubernetes/kube-controller-manager.manifest + - --dest-file=/manifests/kube-controller-manager.manifest + terminationMessagePath: /dev/termination-log + volumeMounts: + - mountPath: /kubernetes + name: k8s + readOnly: true + - mountPath: /manifests + name: manifests + volumes: + - hostPath: + path: /srv/kubernetes + name: k8s + - hostPath: + path: /etc/kubernetes/manifests + name: manifests