From 20eb0b2bf349338ef8de4330973a9895738ae9c6 Mon Sep 17 00:00:00 2001 From: Paulo Pires Date: Fri, 16 Jan 2015 11:25:10 +0000 Subject: [PATCH 1/7] Updated cloud-configs and AWS CoreOS instructions to Kubernetes 0.8.1 and informing users about better picking CoreOS AWS images. Refs #3543 --- docs/getting-started-guides/aws-coreos.md | 18 ++- .../aws/cloud-configs/master.yaml | 111 +++++++++++++++--- .../aws/cloud-configs/node.yaml | 25 ++-- 3 files changed, 122 insertions(+), 32 deletions(-) diff --git a/docs/getting-started-guides/aws-coreos.md b/docs/getting-started-guides/aws-coreos.md index 4931993037b..335f96766f7 100644 --- a/docs/getting-started-guides/aws-coreos.md +++ b/docs/getting-started-guides/aws-coreos.md @@ -10,13 +10,13 @@ The example below creates an elastic Kubernetes cluster with 3 worker nodes and * Cluster bootstrapping using [cloud-config](https://coreos.com/docs/cluster-management/setup/cloudinit-cloud-config) * Cross container networking with [flannel](https://github.com/coreos/flannel#flannel) * Auto worker registration with [kube-register](https://github.com/kelseyhightower/kube-register#kube-register) -* Kubernetes v0.4.2 [official binaries](https://github.com/GoogleCloudPlatform/kubernetes/releases/tag/v0.4.2) +* Kubernetes v0.8.1 [official binaries](https://github.com/GoogleCloudPlatform/kubernetes/releases/tag/v0.8.1) ## Prerequisites * [kubecfg CLI](aws/kubecfg.md) * [aws CLI](http://aws.amazon.com/cli) -* CoreOS 490.0.0+ +* [CoreOS image for AWS](https://coreos.com/docs/running-coreos/cloud-providers/ec2/#choosing-a-channel) ## Starting a Cluster @@ -46,7 +46,7 @@ aws cloudformation describe-stacks --stack-name kubernetes ### Manually -The following commands use the CoreOS 490.0.0 alpha AMI `ami-e18dc5d1` from the `us-west-2` region. For a list of different regions and corresponding AMI IDs see the [CoreOS EC2 cloud provider documentation](https://coreos.com/docs/running-coreos/cloud-providers/ec2/#choosing-a-channel). +The following commands shall use the latest CoreOS alpha AMI for the `us-west-2` region. For a list of different regions and corresponding AMI IDs see the [CoreOS EC2 cloud provider documentation](https://coreos.com/docs/running-coreos/cloud-providers/ec2/#choosing-a-channel). #### Create the Kubernetes Security Group @@ -64,8 +64,10 @@ aws ec2 authorize-security-group-ingress --group-name kubernetes --source-securi #### Launch the master +*Attention:* Replace `````` bellow for a [suitable version of CoreOS image for AWS](https://coreos.com/docs/running-coreos/cloud-providers/ec2/#choosing-a-channel). + ``` -aws ec2 run-instances --image-id ami-e18dc5d1 --key-name \ +aws ec2 run-instances --image-id —key-name \ --region us-west-2 --security-groups kubernetes --instance-type m3.medium \ --user-data file://master.yaml ``` @@ -101,16 +103,20 @@ Edit `node.yaml` and replace all instances of `` with the **p ### Launch 3 worker nodes +*Attention:* Replace `````` bellow for a [suitable version of CoreOS image for AWS](https://coreos.com/docs/running-coreos/cloud-providers/ec2/#choosing-a-channel). + ``` -aws ec2 run-instances --count 3 --image-id ami-e18dc5d1 --key-name \ +aws ec2 run-instances --count 3 --image-id --key-name \ --region us-west-2 --security-groups kubernetes --instance-type m3.medium \ --user-data file://node.yaml ``` ### Add additional worker nodes +*Attention:* Replace `````` bellow for a [suitable version of CoreOS image for AWS](https://coreos.com/docs/running-coreos/cloud-providers/ec2/#choosing-a-channel). + ``` -aws ec2 run-instances --count 1 --image-id ami-e18dc5d1 --key-name \ +aws ec2 run-instances --count 1 --image-id --key-name \ --region us-west-2 --security-groups kubernetes --instance-type m3.medium \ --user-data file://node.yaml ``` diff --git a/docs/getting-started-guides/aws/cloud-configs/master.yaml b/docs/getting-started-guides/aws/cloud-configs/master.yaml index 2493e362b68..2d292c93d93 100644 --- a/docs/getting-started-guides/aws/cloud-configs/master.yaml +++ b/docs/getting-started-guides/aws/cloud-configs/master.yaml @@ -1,26 +1,97 @@ #cloud-config +--- +write_files: +- path: /opt/bin/waiter.sh + owner: root + content: | + #! /usr/bin/bash + until curl http://127.0.0.1:4001/v2/machines; do sleep 2; done coreos: - fleet: - etcd_servers: http://127.0.0.1:4001 - metadata: role=master - etcd: - name: etcd - addr: $private_ipv4:4001 - bind-addr: 0.0.0.0 - peer-addr: $private_ipv4:7001 - cluster-active-size: 1 - http-read-timeout: 86400.0 - snapshot: true units: + - name: setup-network-environment.service + command: start + content: | + [Unit] + Description=Setup Network Environment + Documentation=https://github.com/kelseyhightower/setup-network-environment + Requires=network-online.target + After=network-online.target + + [Service] + ExecStartPre=-/usr/bin/mkdir -p /opt/bin + ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/setup-network-environment + ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment + ExecStart=/opt/bin/setup-network-environment + RemainAfterExit=yes + Type=oneshot - name: etcd.service command: start + content: | + [Unit] + Description=etcd + Requires=setup-network-environment.service + After=setup-network-environment.service + + [Service] + EnvironmentFile=/etc/network-environment + User=etcd + PermissionsStartOnly=true + ExecStart=/usr/bin/etcd \ + --name ${DEFAULT_IPV4} \ + --addr ${DEFAULT_IPV4}:4001 \ + --bind-addr 0.0.0.0 \ + --cluster-active-size 1 \ + --data-dir /var/lib/etcd \ + --http-read-timeout 86400 \ + --peer-addr ${DEFAULT_IPV4}:7001 \ + --snapshot true + Restart=always + RestartSec=10s + - name: fleet.socket + command: start + content: | + [Socket] + ListenStream=/var/run/fleet.sock - name: fleet.service command: start + content: | + [Unit] + Description=fleet daemon + Wants=etcd.service + After=etcd.service + Wants=fleet.socket + After=fleet.socket + + [Service] + Environment="FLEET_ETCD_SERVERS=http://127.0.0.1:4001" + Environment="FLEET_METADATA=role=master" + ExecStart=/usr/bin/fleetd + Restart=always + RestartSec=10s + - name: etcd-waiter.service + command: start + content: | + [Unit] + Description=etcd waiter + Wants=network-online.target + Wants=etcd.service + After=etcd.service + After=network-online.target + Before=flannel.service + Before=setup-network-environment.service + + [Service] + ExecStartPre=/usr/bin/chmod +x /opt/bin/waiter.sh + ExecStart=/usr/bin/bash /opt/bin/waiter.sh + RemainAfterExit=true + Type=oneshot - name: flannel.service command: start content: | [Unit] + Wants=etcd-waiter.service + After=etcd-waiter.service Requires=etcd.service After=etcd.service After=network-online.target @@ -30,9 +101,9 @@ coreos: [Service] Type=notify ExecStartPre=-/usr/bin/mkdir -p /opt/bin - ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/flanneld + ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/flanneld ExecStartPre=/usr/bin/chmod +x /opt/bin/flanneld - ExecStartPre=-/usr/bin/etcdctl mk /coreos.com/network/config '{"Network":"10.0.0.0/16"}' + ExecStartPre=/usr/bin/etcdctl mk /coreos.com/network/config '{"Network":"10.244.0.0/16", "Backend": {"Type": "vxlan"}}' ExecStart=/opt/bin/flanneld - name: kube-apiserver.service command: start @@ -45,12 +116,14 @@ coreos: [Service] ExecStartPre=-/usr/bin/mkdir -p /opt/bin - ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kube-apiserver + ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-apiserver ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver ExecStart=/opt/bin/kube-apiserver \ --address=0.0.0.0 \ --port=8080 \ + --portal_net=10.244.0.0/16 \ --etcd_servers=http://127.0.0.1:4001 \ + --public_address_override=$private_ipv4 \ --logtostderr=true Restart=always RestartSec=10 @@ -64,7 +137,7 @@ coreos: After=kube-apiserver.service [Service] - ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kube-controller-manager + ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-controller-manager ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager ExecStart=/opt/bin/kube-controller-manager \ --master=127.0.0.1:8080 \ @@ -81,7 +154,7 @@ coreos: After=kube-apiserver.service [Service] - ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kube-scheduler + ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-scheduler ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-scheduler ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080 Restart=always @@ -94,12 +167,14 @@ coreos: Documentation=https://github.com/kelseyhightower/kube-register Requires=kube-apiserver.service After=kube-apiserver.service + Requires=fleet.service + After=fleet.service [Service] - ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/kube-register + ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/kube-register ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-register ExecStart=/opt/bin/kube-register \ - --metadata=role=knode \ + --metadata=role=node \ --fleet-endpoint=unix:///var/run/fleet.sock \ --api-endpoint=http://127.0.0.1:8080 Restart=always diff --git a/docs/getting-started-guides/aws/cloud-configs/node.yaml b/docs/getting-started-guides/aws/cloud-configs/node.yaml index 02c2fb7d305..44e0fb668cb 100644 --- a/docs/getting-started-guides/aws/cloud-configs/node.yaml +++ b/docs/getting-started-guides/aws/cloud-configs/node.yaml @@ -1,14 +1,23 @@ #cloud-config coreos: - fleet: - etcd_servers: http://:4001 - metadata: role=knode units: - name: etcd.service mask: true - name: fleet.service command: start + content: | + [Unit] + Description=fleet daemon + Wants=fleet.socket + After=fleet.socket + + [Service] + Environment="FLEET_ETCD_SERVERS=http://:4001" + Environment="FLEET_METADATA=role=node" + ExecStart=/usr/bin/fleetd + Restart=always + RestartSec=10s - name: flannel.service command: start content: | @@ -20,7 +29,7 @@ coreos: [Service] Type=notify ExecStartPre=-/usr/bin/mkdir -p /opt/bin - ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/flanneld + ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/flanneld ExecStartPre=/usr/bin/chmod +x /opt/bin/flanneld ExecStart=/opt/bin/flanneld -etcd-endpoints http://:4001 - name: docker.service @@ -50,7 +59,7 @@ coreos: [Service] ExecStartPre=-/usr/bin/mkdir -p /opt/bin - ExecStartPre=/usr/bin/wget -N -P /opt/bin http://storage.googleapis.com/k8s/setup-network-environment + ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/setup-network-environment ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment ExecStart=/opt/bin/setup-network-environment RemainAfterExit=yes @@ -65,7 +74,7 @@ coreos: After=setup-network-environment.service [Service] - ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kube-proxy + ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-proxy ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-proxy ExecStart=/opt/bin/kube-proxy \ --etcd_servers=http://:4001 \ @@ -83,12 +92,12 @@ coreos: [Service] EnvironmentFile=/etc/network-environment - ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kubelet + ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kubelet ExecStartPre=/usr/bin/chmod +x /opt/bin/kubelet ExecStart=/opt/bin/kubelet \ --address=0.0.0.0 \ --port=10250 \ - --hostname_override=${DEFAULT_IPV4} \ + --hostname_override=$private_ipv4 \ --etcd_servers=http://:4001 \ --logtostderr=true Restart=always From 1571dd69f2e7709c39cc549f63d4cd9fb6998343 Mon Sep 17 00:00:00 2001 From: Paulo Pires Date: Fri, 16 Jan 2015 11:29:21 +0000 Subject: [PATCH 2/7] Updated master section in AWS Cloudformation template. Refs #3543 --- .../aws/cloudformation-template.json | 282 +++++++++++------- 1 file changed, 169 insertions(+), 113 deletions(-) diff --git a/docs/getting-started-guides/aws/cloudformation-template.json b/docs/getting-started-guides/aws/cloudformation-template.json index 222eb3279ab..960ee0dcd5d 100644 --- a/docs/getting-started-guides/aws/cloudformation-template.json +++ b/docs/getting-started-guides/aws/cloudformation-template.json @@ -113,121 +113,177 @@ "SecurityGroups": [{"Ref": "KubernetesSecurityGroup"}], "UserData": { "Fn::Base64": {"Fn::Join" : ["", [ "#cloud-config\n\n", + “---\n“, + “write_files:\n”, + “- path: /opt/bin/waiter.sh\n”, + “ owner: root\n”, + “ content: |\n”, + “ #! /usr/bin/bash\n”, + “ until curl http://127.0.0.1:4001/v2/machines; do sleep 2; done\n”, "coreos:\n", " fleet:\n", - " etcd_servers: http://127.0.0.1:4001\n", - " metadata: role=master\n", - " etcd:\n", - " name: etcd\n", - " addr: $private_ipv4:4001\n", - " bind-addr: 0.0.0.0\n", - " peer-addr: $private_ipv4:7001\n", - " cluster-active-size: 1\n", - " etcd-http-read-timeout: 86400\n", - " snapshot: true\n", - " units:\n", - " - name: etcd.service\n", - " command: start\n", - " - name: fleet.service\n", - " command: start\n", - " - name: flannel.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Requires=etcd.service\n", - " After=etcd.service\n", - " After=network-online.target\n", - " Wants=network-online.target\n", - " Description=flannel is an etcd backed overlay network for containers\n\n", - " [Service]\n", - " Type=notify\n", - " ExecStartPre=-/usr/bin/mkdir -p /opt/bin\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/flanneld\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/flanneld\n", - " ExecStartPre=-/usr/bin/etcdctl mk /coreos.com/network/config '{\"Network\":\"10.0.0.0/16\"}'\n", - " ExecStart=/opt/bin/flanneld\n", - " - name: kube-apiserver.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Kubernetes API Server\n", - " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", - " Requires=etcd.service\n", - " After=etcd.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kube-apiserver\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver\n", - " ExecStart=/opt/bin/kube-apiserver \\\n", - " --address=0.0.0.0 \\\n", - " --port=8080 \\\n", - " --portal_net 10.1.0.0/16 \\\n", - " --etcd_servers=http://127.0.0.1:4001 \\\n", - " --logtostderr=true\n", - " Restart=always\n", - " RestartSec=10\n", - " - name: kube-controller-manager.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Kubernetes Controller Manager\n", - " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", - " Requires=kube-apiserver.service\n", - " After=kube-apiserver.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kube-controller-manager\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager\n", - " ExecStart=/opt/bin/kube-controller-manager \\\n", - " --master=127.0.0.1:8080 \\\n", - " --logtostderr=true\n", - " Restart=always\n", - " RestartSec=10\n", - " - name: kube-scheduler.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Kubernetes Scheduler\n", - " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", - " Requires=kube-apiserver.service\n", - " After=kube-apiserver.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kube-scheduler\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-scheduler\n", - " ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080\n", - " Restart=always\n", - " RestartSec=10\n", - " - name: kube-proxy.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Kubernetes Proxy\n", - " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", - " Requires=etcd.service\n", - " After=etcd.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kube-proxy\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-proxy\n", - " ExecStart=/opt/bin/kube-proxy \\\n", - " --etcd_servers=http://127.0.0.1:4001 \\\n", - " --logtostderr=true\n", - " Restart=always\n", - " RestartSec=10\n", - " - name: kube-register.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Kubernetes Registration Service\n", - " Documentation=https://github.com/kelseyhightower/kube-register\n", - " Requires=kube-apiserver.service\n", - " After=kube-apiserver.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/kube-register\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-register\n", - " ExecStart=/opt/bin/kube-register \\\n", - " --metadata=role=knode \\\n", - " --fleet-endpoint=unix:///var/run/fleet.sock \\\n", - " --api-endpoint=http://127.0.0.1:8080\n", - " Restart=always\n", - " RestartSec=10\n", + " public-ip: $public_ipv4\n", + “units:\n", + “ - name: setup-network-environment.service\n", + “ command: start\n", + “ content: |\n", + “ [Unit]\n", + “ Description=Setup Network Environment\n", + “ Documentation=https://github.com/kelseyhightower/setup-network-environment\n", + “ Requires=network-online.target\n", + “ After=network-online.target\n\n”, + “ [Service]\n”, + “ ExecStartPre=/usr/bin/mkdir -p /opt/bin\n”, + “ ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/setup-network-environment\n”, + “ ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment\n”, + “ ExecStart=/opt/bin/setup-network-environment\n”, + “ RemainAfterExit=yes\n”, + “ Type=oneshot\n”, + " - name: etcd.service\n", + " command: start\n", + “ content: |\n", + “ [Unit]\n", + “ Description=etcd\n", + “ Requires=setup-network-environment.service\n", + “ After=setup-network-environment.service\n\n”, + “ [Service] + “ EnvironmentFile=/etc/network-environment\n", + “ User=etcd\n", + “ PermissionsStartOnly=true\n", + “ ExecStart=/usr/bin/etcd \\\n”, + “ --name $public_ipv4 \\\n", + “ --addr $public_ipv4:4001 \\\n", + “ --bind-addr 0.0.0.0 \\\n", + “ --cluster-active-size 1 \\\n", + “ --data-dir /var/lib/etcd \\\n", + “ --http-read-timeout 86400 \\\n", + “ --peer-addr $public_ipv4:7001 \\\n”, + “ --snapshot true\n", + “ Restart=always\n", + “ RestartSec=10s\n", + “ - name: fleet.socket\n", + “ command: start\n", + “ content: |\n", + “ [Socket]\n", + “ ListenStream=/var/run/fleet.sock\n", + " - name: fleet.service\n", + " command: start\n", + “ content: |\n", + “ [Unit]\n", + “ Description=fleet daemon\n", + “ Wants=etcd.service\n", + “ After=etcd.service\n", + “ Wants=fleet.socket\n", + “ After=fleet.socket\n\n”, + “ [Service]\n”, + “ Environment=\”FLEET_ETCD_SERVERS=http://127.0.0.1:4001\”\n”, + “ Environment=\”FLEET_METADATA=role=master\”\n”, + “ ExecStart=/usr/bin/fleetd\n”, + “ Restart=always\n”, + “ RestartSec=10s\n”, + “ - name: etcd-waiter.service\n”, + “ command: start\n”, + “ content: |\n”, + “ [Unit]\n”, + “ Description=etcd waiter\n”, + “ Wants=network-online.target\n”, + “ Wants=etcd.service\n”, + “ After=etcd.service\n”, + “ After=network-online.target\n”, + “ Before=flannel.service\n”, + “ Before=setup-network-environment.service\n\n”, + “ [Service]\n”, + “ ExecStartPre=/usr/bin/chmod +x /opt/bin/waiter.sh\n”, + “ ExecStart=/usr/bin/bash /opt/bin/waiter.sh\n”, + “ RemainAfterExit=true\n”, + “ Type=oneshot\n”, + " - name: flannel.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Requires=etcd-waiter.service\n", + " After=etcd-waiter.service\n", + " Requires=etcd.service\n", + " After=etcd.service\n", + " After=network-online.target\n", + " Wants=network-online.target\n", + " Description=flannel is an etcd backed overlay network for containers\n\n", + " [Service]\n", + " Type=notify\n", + " ExecStartPre=-/usr/bin/mkdir -p /opt/bin\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/flanneld\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/flanneld\n", + " ExecStartPre=-/usr/bin/etcdctl mk /coreos.com/network/config '{\"Network\":\"10.244.0.0/16\"}'\n", + " ExecStart=/opt/bin/flanneld\n", + " - name: kube-apiserver.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=Kubernetes API Server\n", + " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", + " Requires=etcd.service\n", + " After=etcd.service\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-apiserver\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver\n", + " ExecStart=/opt/bin/kube-apiserver \\\n", + " --address=0.0.0.0 \\\n", + " --port=8080 \\\n", + " --portal_net 10.244.0.0/16 \\\n", + " --etcd_servers=http://127.0.0.1:4001 \\\n", + “ --public_address_override=$private_ipv4 \\\n", + " --logtostderr=true\n", + " Restart=always\n", + " RestartSec=10\n", + " - name: kube-controller-manager.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=Kubernetes Controller Manager\n", + " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", + " Requires=kube-apiserver.service\n", + " After=kube-apiserver.service\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-controller-manager\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager\n", + " ExecStart=/opt/bin/kube-controller-manager \\\n", + " --master=127.0.0.1:8080 \\\n", + " --logtostderr=true\n", + " Restart=always\n", + " RestartSec=10\n", + " - name: kube-scheduler.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=Kubernetes Scheduler\n", + " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", + " Requires=kube-apiserver.service\n", + " After=kube-apiserver.service\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-scheduler\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-scheduler\n", + " ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080\n", + " Restart=always\n", + " RestartSec=10\n", + " - name: kube-register.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=Kubernetes Registration Service\n", + " Documentation=https://github.com/kelseyhightower/kube-register\n", + " Requires=kube-apiserver.service\n", + " After=kube-apiserver.service\n\n", + " Requires=fleet.service\n", + " After=fleet.service\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/kube-register\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-register\n", + " ExecStart=/opt/bin/kube-register \\\n", + " --metadata=role=knode \\\n", + " --fleet-endpoint=unix:///var/run/fleet.sock \\\n", + " --api-endpoint=http://127.0.0.1:8080\n", + " Restart=always\n", + " RestartSec=10\n", " update:\n", " group: alpha\n", " reboot-strategy: off\n" From b40fe81569a35c921766aca73275beb8086de381 Mon Sep 17 00:00:00 2001 From: Paulo Pires Date: Fri, 16 Jan 2015 11:38:06 +0000 Subject: [PATCH 3/7] Updated minion section in AWS Cloudformation template. Refs #3543 --- docs/getting-started-guides/aws/cloudformation-template.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/getting-started-guides/aws/cloudformation-template.json b/docs/getting-started-guides/aws/cloudformation-template.json index 960ee0dcd5d..56c6bf3dd8e 100644 --- a/docs/getting-started-guides/aws/cloudformation-template.json +++ b/docs/getting-started-guides/aws/cloudformation-template.json @@ -361,7 +361,7 @@ " After=setup-network-environment.service\n\n", " [Service]\n", " EnvironmentFile=/etc/network-environment\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kubelet\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kubelet\n", " ExecStartPre=/usr/bin/chmod +x /opt/bin/kubelet\n", " ExecStart=/opt/bin/kubelet \\\n", " --address=0.0.0.0 \\\n", @@ -380,7 +380,7 @@ " Requires=setup-network-environment.service\n", " After=setup-network-environment.service\n\n", " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kube-proxy\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-proxy\n", " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-proxy\n", " ExecStart=/opt/bin/kube-proxy \\\n", " --etcd_servers=http://", {"Fn::GetAtt" :["KubernetesMasterInstance" , "PrivateIp"]}, ":4001\\\n", From 4788f7fa4b8343fa15b484e5da698d55ab48c0bd Mon Sep 17 00:00:00 2001 From: Paulo Pires Date: Fri, 16 Jan 2015 11:43:37 +0000 Subject: [PATCH 4/7] Updated AMI images for the alpha channel on all regions (HVM). Fixes #3543 --- .../aws/cloudformation-template.json | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/getting-started-guides/aws/cloudformation-template.json b/docs/getting-started-guides/aws/cloudformation-template.json index 56c6bf3dd8e..1621088ffe1 100644 --- a/docs/getting-started-guides/aws/cloudformation-template.json +++ b/docs/getting-started-guides/aws/cloudformation-template.json @@ -1,17 +1,17 @@ { "AWSTemplateFormatVersion": "2010-09-09", - "Description": "Kubernetes on EC2", + "Description": "Kubernetes 0.8.1 on EC2", "Mappings": { "RegionMap": { - "eu-central-1": {"AMI": "ami-54ccfa49"}, - "ap-northeast-1": {"AMI": "ami-f7b08ff6"}, - "sa-east-1": {"AMI": "ami-1304b30e"}, - "ap-southeast-2": {"AMI": "ami-0f117e35"}, - "ap-southeast-1": {"AMI": "ami-c04f6c92"}, - "us-east-1": {"AMI": "ami-7ae66812"}, - "us-west-2": {"AMI": "ami-e18dc5d1"}, - "us-west-1": {"AMI": "ami-45fbec00"}, - "eu-west-1": {"AMI": "ami-a27fd5d5"} + "eu-central-1": {"AMI": "ami-488ebe55"}, + "ap-northeast-1": {"AMI": "ami-14273415"}, + "sa-east-1": {"AMI": "ami-e7b30efa"}, + "ap-southeast-2": {"AMI": "ami-4d2b5e77"}, + "ap-southeast-1": {"AMI": "ami-8c032bde"}, + "us-east-1": {"AMI": "ami-4c651824"}, + "us-west-2": {"AMI": "ami-ff2679cf"}, + "us-west-1": {"AMI": "ami-5d4f5118"}, + "eu-west-1": {"AMI": "ami-5d71f02a"} } }, "Parameters": { From 81477fce2bc95a4362bdfb7c600779d3bdf60872 Mon Sep 17 00:00:00 2001 From: Paulo Pires Date: Sat, 17 Jan 2015 12:58:58 +0000 Subject: [PATCH 5/7] Fixed CloudFormation template by replacing pretty-but-broken quotes written by troublesome text editor. Fixes #3543 --- .../aws/cloudformation-template.json | 156 +++++++++--------- 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/docs/getting-started-guides/aws/cloudformation-template.json b/docs/getting-started-guides/aws/cloudformation-template.json index 1621088ffe1..124b0d87b16 100644 --- a/docs/getting-started-guides/aws/cloudformation-template.json +++ b/docs/getting-started-guides/aws/cloudformation-template.json @@ -113,90 +113,90 @@ "SecurityGroups": [{"Ref": "KubernetesSecurityGroup"}], "UserData": { "Fn::Base64": {"Fn::Join" : ["", [ "#cloud-config\n\n", - “---\n“, - “write_files:\n”, - “- path: /opt/bin/waiter.sh\n”, - “ owner: root\n”, - “ content: |\n”, - “ #! /usr/bin/bash\n”, - “ until curl http://127.0.0.1:4001/v2/machines; do sleep 2; done\n”, + "---\n", + "write_files:\n", + "- path: /opt/bin/waiter.sh\n", + " owner: root\n", + " content: |\n", + " #! /usr/bin/bash\n", + " until curl http://127.0.0.1:4001/v2/machines; do sleep 2; done\n", "coreos:\n", " fleet:\n", " public-ip: $public_ipv4\n", - “units:\n", - “ - name: setup-network-environment.service\n", - “ command: start\n", - “ content: |\n", - “ [Unit]\n", - “ Description=Setup Network Environment\n", - “ Documentation=https://github.com/kelseyhightower/setup-network-environment\n", - “ Requires=network-online.target\n", - “ After=network-online.target\n\n”, - “ [Service]\n”, - “ ExecStartPre=/usr/bin/mkdir -p /opt/bin\n”, - “ ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/setup-network-environment\n”, - “ ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment\n”, - “ ExecStart=/opt/bin/setup-network-environment\n”, - “ RemainAfterExit=yes\n”, - “ Type=oneshot\n”, + "units:\n", + " - name: setup-network-environment.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=Setup Network Environment\n", + " Documentation=https://github.com/kelseyhightower/setup-network-environment\n", + " Requires=network-online.target\n", + " After=network-online.target\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/mkdir -p /opt/bin\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/setup-network-environment\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment\n", + " ExecStart=/opt/bin/setup-network-environment\n", + " RemainAfterExit=yes\n", + " Type=oneshot\n", " - name: etcd.service\n", " command: start\n", - “ content: |\n", - “ [Unit]\n", - “ Description=etcd\n", - “ Requires=setup-network-environment.service\n", - “ After=setup-network-environment.service\n\n”, - “ [Service] - “ EnvironmentFile=/etc/network-environment\n", - “ User=etcd\n", - “ PermissionsStartOnly=true\n", - “ ExecStart=/usr/bin/etcd \\\n”, - “ --name $public_ipv4 \\\n", - “ --addr $public_ipv4:4001 \\\n", - “ --bind-addr 0.0.0.0 \\\n", - “ --cluster-active-size 1 \\\n", - “ --data-dir /var/lib/etcd \\\n", - “ --http-read-timeout 86400 \\\n", - “ --peer-addr $public_ipv4:7001 \\\n”, - “ --snapshot true\n", - “ Restart=always\n", - “ RestartSec=10s\n", - “ - name: fleet.socket\n", - “ command: start\n", - “ content: |\n", - “ [Socket]\n", - “ ListenStream=/var/run/fleet.sock\n", + " content: |\n", + " [Unit]\n", + " Description=etcd\n", + " Requires=setup-network-environment.service\n", + " After=setup-network-environment.service\n\n", + " [Service]\n", + " EnvironmentFile=/etc/network-environment\n", + " User=etcd\n", + " PermissionsStartOnly=true\n", + " ExecStart=/usr/bin/etcd \\\n", + " --name $public_ipv4 \\\n", + " --addr $public_ipv4:4001 \\\n", + " --bind-addr 0.0.0.0 \\\n", + " --cluster-active-size 1 \\\n", + " --data-dir /var/lib/etcd \\\n", + " --http-read-timeout 86400 \\\n", + " --peer-addr $public_ipv4:7001 \\\n", + " --snapshot true\n", + " Restart=always\n", + " RestartSec=10s\n", + " - name: fleet.socket\n", + " command: start\n", + " content: |\n", + " [Socket]\n", + " ListenStream=/var/run/fleet.sock\n", " - name: fleet.service\n", " command: start\n", - “ content: |\n", - “ [Unit]\n", - “ Description=fleet daemon\n", - “ Wants=etcd.service\n", - “ After=etcd.service\n", - “ Wants=fleet.socket\n", - “ After=fleet.socket\n\n”, - “ [Service]\n”, - “ Environment=\”FLEET_ETCD_SERVERS=http://127.0.0.1:4001\”\n”, - “ Environment=\”FLEET_METADATA=role=master\”\n”, - “ ExecStart=/usr/bin/fleetd\n”, - “ Restart=always\n”, - “ RestartSec=10s\n”, - “ - name: etcd-waiter.service\n”, - “ command: start\n”, - “ content: |\n”, - “ [Unit]\n”, - “ Description=etcd waiter\n”, - “ Wants=network-online.target\n”, - “ Wants=etcd.service\n”, - “ After=etcd.service\n”, - “ After=network-online.target\n”, - “ Before=flannel.service\n”, - “ Before=setup-network-environment.service\n\n”, - “ [Service]\n”, - “ ExecStartPre=/usr/bin/chmod +x /opt/bin/waiter.sh\n”, - “ ExecStart=/usr/bin/bash /opt/bin/waiter.sh\n”, - “ RemainAfterExit=true\n”, - “ Type=oneshot\n”, + " content: |\n", + " [Unit]\n", + " Description=fleet daemon\n", + " Wants=etcd.service\n", + " After=etcd.service\n", + " Wants=fleet.socket\n", + " After=fleet.socket\n\n", + " [Service]\n", + " Environment=\"FLEET_ETCD_SERVERS=http://127.0.0.1:4001\"\n", + " Environment=\"FLEET_METADATA=role=master\"\n", + " ExecStart=/usr/bin/fleetd\n", + " Restart=always\n", + " RestartSec=10s\n", + " - name: etcd-waiter.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=etcd waiter\n", + " Wants=network-online.target\n", + " Wants=etcd.service\n", + " After=etcd.service\n", + " After=network-online.target\n", + " Before=flannel.service\n", + " Before=setup-network-environment.service\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/waiter.sh\n", + " ExecStart=/usr/bin/bash /opt/bin/waiter.sh\n", + " RemainAfterExit=true\n", + " Type=oneshot\n", " - name: flannel.service\n", " command: start\n", " content: |\n", @@ -231,7 +231,7 @@ " --port=8080 \\\n", " --portal_net 10.244.0.0/16 \\\n", " --etcd_servers=http://127.0.0.1:4001 \\\n", - “ --public_address_override=$private_ipv4 \\\n", + " --public_address_override=$private_ipv4 \\\n", " --logtostderr=true\n", " Restart=always\n", " RestartSec=10\n", From a1a725bdde9d4e4e951ee34b94b88ace38f32e1c Mon Sep 17 00:00:00 2001 From: Paulo Pires Date: Tue, 20 Jan 2015 19:42:55 +0000 Subject: [PATCH 6/7] Update node.yaml to support graphdriver: overlay. Refs #3625 --- docs/getting-started-guides/aws/cloud-configs/node.yaml | 2 +- docs/getting-started-guides/aws/cloudformation-template.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/getting-started-guides/aws/cloud-configs/node.yaml b/docs/getting-started-guides/aws/cloud-configs/node.yaml index 44e0fb668cb..55d1c758db9 100644 --- a/docs/getting-started-guides/aws/cloud-configs/node.yaml +++ b/docs/getting-started-guides/aws/cloud-configs/node.yaml @@ -44,7 +44,7 @@ coreos: [Service] EnvironmentFile=/run/flannel/subnet.env ExecStartPre=/bin/mount --make-rprivate / - ExecStart=/usr/bin/docker -d --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} -s=btrfs -H fd:// + ExecStart=/usr/bin/docker -d --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} -s=overlay -H fd:// [Install] WantedBy=multi-user.target diff --git a/docs/getting-started-guides/aws/cloudformation-template.json b/docs/getting-started-guides/aws/cloudformation-template.json index 124b0d87b16..2792ab2f72a 100644 --- a/docs/getting-started-guides/aws/cloudformation-template.json +++ b/docs/getting-started-guides/aws/cloudformation-template.json @@ -333,7 +333,7 @@ " [Service]\n", " EnvironmentFile=/run/flannel/subnet.env\n", " ExecStartPre=/bin/mount --make-rprivate /\n", - " ExecStart=/usr/bin/docker -d --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} -s=btrfs -H fd://\n\n", + " ExecStart=/usr/bin/docker -d --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} -s=overlay -H fd://\n\n", " [Install]\n", " WantedBy=multi-user.target\n", " - name: setup-network-environment.service\n", From 078b37cd2f14172810747a285295bce59299e9de Mon Sep 17 00:00:00 2001 From: Paulo Pires Date: Wed, 21 Jan 2015 23:00:16 +0000 Subject: [PATCH 7/7] Fixed nits. --- docs/getting-started-guides/aws-coreos.md | 8 +- .../aws/cloudformation-template.json | 324 +++++++++--------- 2 files changed, 165 insertions(+), 167 deletions(-) diff --git a/docs/getting-started-guides/aws-coreos.md b/docs/getting-started-guides/aws-coreos.md index 335f96766f7..197046d6b26 100644 --- a/docs/getting-started-guides/aws-coreos.md +++ b/docs/getting-started-guides/aws-coreos.md @@ -64,10 +64,10 @@ aws ec2 authorize-security-group-ingress --group-name kubernetes --source-securi #### Launch the master -*Attention:* Replace `````` bellow for a [suitable version of CoreOS image for AWS](https://coreos.com/docs/running-coreos/cloud-providers/ec2/#choosing-a-channel). +*Attention:* Replace `````` below for a [suitable version of CoreOS image for AWS](https://coreos.com/docs/running-coreos/cloud-providers/ec2/#choosing-a-channel). ``` -aws ec2 run-instances --image-id —key-name \ +aws ec2 run-instances --image-id --key-name \ --region us-west-2 --security-groups kubernetes --instance-type m3.medium \ --user-data file://master.yaml ``` @@ -103,7 +103,7 @@ Edit `node.yaml` and replace all instances of `` with the **p ### Launch 3 worker nodes -*Attention:* Replace `````` bellow for a [suitable version of CoreOS image for AWS](https://coreos.com/docs/running-coreos/cloud-providers/ec2/#choosing-a-channel). +*Attention:* Replace `````` below for a [suitable version of CoreOS image for AWS](https://coreos.com/docs/running-coreos/cloud-providers/ec2/#choosing-a-channel). ``` aws ec2 run-instances --count 3 --image-id --key-name \ @@ -113,7 +113,7 @@ aws ec2 run-instances --count 3 --image-id --key-name \ ### Add additional worker nodes -*Attention:* Replace `````` bellow for a [suitable version of CoreOS image for AWS](https://coreos.com/docs/running-coreos/cloud-providers/ec2/#choosing-a-channel). +*Attention:* Replace `````` below for a [suitable version of CoreOS image for AWS](https://coreos.com/docs/running-coreos/cloud-providers/ec2/#choosing-a-channel). ``` aws ec2 run-instances --count 1 --image-id --key-name \ diff --git a/docs/getting-started-guides/aws/cloudformation-template.json b/docs/getting-started-guides/aws/cloudformation-template.json index 2792ab2f72a..6e4ea68d276 100644 --- a/docs/getting-started-guides/aws/cloudformation-template.json +++ b/docs/getting-started-guides/aws/cloudformation-template.json @@ -121,169 +121,167 @@ " #! /usr/bin/bash\n", " until curl http://127.0.0.1:4001/v2/machines; do sleep 2; done\n", "coreos:\n", - " fleet:\n", - " public-ip: $public_ipv4\n", - "units:\n", - " - name: setup-network-environment.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Setup Network Environment\n", - " Documentation=https://github.com/kelseyhightower/setup-network-environment\n", - " Requires=network-online.target\n", - " After=network-online.target\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/mkdir -p /opt/bin\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/setup-network-environment\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment\n", - " ExecStart=/opt/bin/setup-network-environment\n", - " RemainAfterExit=yes\n", - " Type=oneshot\n", - " - name: etcd.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=etcd\n", - " Requires=setup-network-environment.service\n", - " After=setup-network-environment.service\n\n", - " [Service]\n", - " EnvironmentFile=/etc/network-environment\n", - " User=etcd\n", - " PermissionsStartOnly=true\n", - " ExecStart=/usr/bin/etcd \\\n", - " --name $public_ipv4 \\\n", - " --addr $public_ipv4:4001 \\\n", - " --bind-addr 0.0.0.0 \\\n", - " --cluster-active-size 1 \\\n", - " --data-dir /var/lib/etcd \\\n", - " --http-read-timeout 86400 \\\n", - " --peer-addr $public_ipv4:7001 \\\n", - " --snapshot true\n", - " Restart=always\n", - " RestartSec=10s\n", - " - name: fleet.socket\n", - " command: start\n", - " content: |\n", - " [Socket]\n", - " ListenStream=/var/run/fleet.sock\n", - " - name: fleet.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=fleet daemon\n", - " Wants=etcd.service\n", - " After=etcd.service\n", - " Wants=fleet.socket\n", - " After=fleet.socket\n\n", - " [Service]\n", - " Environment=\"FLEET_ETCD_SERVERS=http://127.0.0.1:4001\"\n", - " Environment=\"FLEET_METADATA=role=master\"\n", - " ExecStart=/usr/bin/fleetd\n", - " Restart=always\n", - " RestartSec=10s\n", - " - name: etcd-waiter.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=etcd waiter\n", - " Wants=network-online.target\n", - " Wants=etcd.service\n", - " After=etcd.service\n", - " After=network-online.target\n", - " Before=flannel.service\n", - " Before=setup-network-environment.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/waiter.sh\n", - " ExecStart=/usr/bin/bash /opt/bin/waiter.sh\n", - " RemainAfterExit=true\n", - " Type=oneshot\n", - " - name: flannel.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Requires=etcd-waiter.service\n", - " After=etcd-waiter.service\n", - " Requires=etcd.service\n", - " After=etcd.service\n", - " After=network-online.target\n", - " Wants=network-online.target\n", - " Description=flannel is an etcd backed overlay network for containers\n\n", - " [Service]\n", - " Type=notify\n", - " ExecStartPre=-/usr/bin/mkdir -p /opt/bin\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/flanneld\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/flanneld\n", - " ExecStartPre=-/usr/bin/etcdctl mk /coreos.com/network/config '{\"Network\":\"10.244.0.0/16\"}'\n", - " ExecStart=/opt/bin/flanneld\n", - " - name: kube-apiserver.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Kubernetes API Server\n", - " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", - " Requires=etcd.service\n", - " After=etcd.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-apiserver\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver\n", - " ExecStart=/opt/bin/kube-apiserver \\\n", - " --address=0.0.0.0 \\\n", - " --port=8080 \\\n", - " --portal_net 10.244.0.0/16 \\\n", - " --etcd_servers=http://127.0.0.1:4001 \\\n", - " --public_address_override=$private_ipv4 \\\n", - " --logtostderr=true\n", - " Restart=always\n", - " RestartSec=10\n", - " - name: kube-controller-manager.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Kubernetes Controller Manager\n", - " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", - " Requires=kube-apiserver.service\n", - " After=kube-apiserver.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-controller-manager\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager\n", - " ExecStart=/opt/bin/kube-controller-manager \\\n", - " --master=127.0.0.1:8080 \\\n", - " --logtostderr=true\n", - " Restart=always\n", - " RestartSec=10\n", - " - name: kube-scheduler.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Kubernetes Scheduler\n", - " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", - " Requires=kube-apiserver.service\n", - " After=kube-apiserver.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-scheduler\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-scheduler\n", - " ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080\n", - " Restart=always\n", - " RestartSec=10\n", - " - name: kube-register.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Kubernetes Registration Service\n", - " Documentation=https://github.com/kelseyhightower/kube-register\n", - " Requires=kube-apiserver.service\n", - " After=kube-apiserver.service\n\n", - " Requires=fleet.service\n", - " After=fleet.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/kube-register\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-register\n", - " ExecStart=/opt/bin/kube-register \\\n", - " --metadata=role=knode \\\n", - " --fleet-endpoint=unix:///var/run/fleet.sock \\\n", - " --api-endpoint=http://127.0.0.1:8080\n", - " Restart=always\n", - " RestartSec=10\n", + " units:\n", + " - name: setup-network-environment.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=Setup Network Environment\n", + " Documentation=https://github.com/kelseyhightower/setup-network-environment\n", + " Requires=network-online.target\n", + " After=network-online.target\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/mkdir -p /opt/bin\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/setup-network-environment\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment\n", + " ExecStart=/opt/bin/setup-network-environment\n", + " RemainAfterExit=yes\n", + " Type=oneshot\n", + " - name: etcd.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=etcd\n", + " Requires=setup-network-environment.service\n", + " After=setup-network-environment.service\n\n", + " [Service]\n", + " EnvironmentFile=/etc/network-environment\n", + " User=etcd\n", + " PermissionsStartOnly=true\n", + " ExecStart=/usr/bin/etcd \\\n", + " --name $private_ipv4 \\\n", + " --addr $private_ipv4:4001 \\\n", + " --bind-addr 0.0.0.0 \\\n", + " --cluster-active-size 1 \\\n", + " --data-dir /var/lib/etcd \\\n", + " --http-read-timeout 86400 \\\n", + " --peer-addr $private_ipv4:7001 \\\n", + " --snapshot true\n", + " Restart=always\n", + " RestartSec=10s\n", + " - name: fleet.socket\n", + " command: start\n", + " content: |\n", + " [Socket]\n", + " ListenStream=/var/run/fleet.sock\n", + " - name: fleet.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=fleet daemon\n", + " Wants=etcd.service\n", + " After=etcd.service\n", + " Wants=fleet.socket\n", + " After=fleet.socket\n\n", + " [Service]\n", + " Environment=\"FLEET_ETCD_SERVERS=http://127.0.0.1:4001\"\n", + " Environment=\"FLEET_METADATA=role=master\"\n", + " ExecStart=/usr/bin/fleetd\n", + " Restart=always\n", + " RestartSec=10s\n", + " - name: etcd-waiter.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=etcd waiter\n", + " Wants=network-online.target\n", + " Wants=etcd.service\n", + " After=etcd.service\n", + " After=network-online.target\n", + " Before=flannel.service\n", + " Before=setup-network-environment.service\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/waiter.sh\n", + " ExecStart=/usr/bin/bash /opt/bin/waiter.sh\n", + " RemainAfterExit=true\n", + " Type=oneshot\n", + " - name: flannel.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Requires=etcd-waiter.service\n", + " After=etcd-waiter.service\n", + " Requires=etcd.service\n", + " After=etcd.service\n", + " After=network-online.target\n", + " Wants=network-online.target\n", + " Description=flannel is an etcd backed overlay network for containers\n\n", + " [Service]\n", + " Type=notify\n", + " ExecStartPre=-/usr/bin/mkdir -p /opt/bin\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/flanneld\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/flanneld\n", + " ExecStartPre=-/usr/bin/etcdctl mk /coreos.com/network/config '{\"Network\":\"10.244.0.0/16\"}'\n", + " ExecStart=/opt/bin/flanneld\n", + " - name: kube-apiserver.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=Kubernetes API Server\n", + " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", + " Requires=etcd.service\n", + " After=etcd.service\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-apiserver\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver\n", + " ExecStart=/opt/bin/kube-apiserver \\\n", + " --address=0.0.0.0 \\\n", + " --port=8080 \\\n", + " --portal_net 10.244.0.0/16 \\\n", + " --etcd_servers=http://127.0.0.1:4001 \\\n", + " --public_address_override=$private_ipv4 \\\n", + " --logtostderr=true\n", + " Restart=always\n", + " RestartSec=10\n", + " - name: kube-controller-manager.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=Kubernetes Controller Manager\n", + " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", + " Requires=kube-apiserver.service\n", + " After=kube-apiserver.service\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-controller-manager\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager\n", + " ExecStart=/opt/bin/kube-controller-manager \\\n", + " --master=127.0.0.1:8080 \\\n", + " --logtostderr=true\n", + " Restart=always\n", + " RestartSec=10\n", + " - name: kube-scheduler.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=Kubernetes Scheduler\n", + " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", + " Requires=kube-apiserver.service\n", + " After=kube-apiserver.service\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-scheduler\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-scheduler\n", + " ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080\n", + " Restart=always\n", + " RestartSec=10\n", + " - name: kube-register.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=Kubernetes Registration Service\n", + " Documentation=https://github.com/kelseyhightower/kube-register\n", + " Requires=kube-apiserver.service\n", + " After=kube-apiserver.service\n\n", + " Requires=fleet.service\n", + " After=fleet.service\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/kube-register\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-register\n", + " ExecStart=/opt/bin/kube-register \\\n", + " --metadata=role=knode \\\n", + " --fleet-endpoint=unix:///var/run/fleet.sock \\\n", + " --api-endpoint=http://127.0.0.1:8080\n", + " Restart=always\n", + " RestartSec=10\n", " update:\n", " group: alpha\n", " reboot-strategy: off\n"