mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-03 23:40:03 +00:00 
			
		
		
		
	Updated cloud-configs and AWS CoreOS instructions to Kubernetes 0.8.1 and informing users about better picking CoreOS AWS images. Refs #3543
This commit is contained in:
		@@ -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 ```<ami_image_id>``` 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 <keypair> \
 | 
			
		||||
aws ec2 run-instances --image-id <ami_image_id> —key-name <keypair> \
 | 
			
		||||
--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 `<master-private-ip>` with the **p
 | 
			
		||||
 | 
			
		||||
### Launch 3 worker nodes
 | 
			
		||||
 | 
			
		||||
*Attention:* Replace ```<ami_image_id>``` 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 <keypair> \
 | 
			
		||||
aws ec2 run-instances --count 3 --image-id <ami_image_id> --key-name <keypair> \
 | 
			
		||||
--region us-west-2 --security-groups kubernetes --instance-type m3.medium \
 | 
			
		||||
--user-data file://node.yaml
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Add additional worker nodes
 | 
			
		||||
 | 
			
		||||
*Attention:* Replace ```<ami_image_id>``` 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 <keypair> \
 | 
			
		||||
aws ec2 run-instances --count 1 --image-id <ami_image_id> --key-name <keypair> \
 | 
			
		||||
--region us-west-2 --security-groups kubernetes --instance-type m3.medium \
 | 
			
		||||
--user-data file://node.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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,14 +1,23 @@
 | 
			
		||||
#cloud-config
 | 
			
		||||
 | 
			
		||||
coreos:
 | 
			
		||||
  fleet:
 | 
			
		||||
    etcd_servers: http://<master-private-ip>: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://<master-private-ip>: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://<master-private-ip>: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://<master-private-ip>: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://<master-private-ip>:4001 \
 | 
			
		||||
        --logtostderr=true
 | 
			
		||||
        Restart=always
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user