Merge pull request #3434 from pires/update-coreos-kubernetes

Fixed CoreOS cluster starting guide
This commit is contained in:
Brendan Burns 2015-01-15 16:05:51 -08:00
commit e12a78cb1d
6 changed files with 85 additions and 20 deletions

View File

@ -5,3 +5,4 @@ There are multiple guides on running Kubernetes with [CoreOS](http://coreos.com)
* [Single Node Cluster](coreos/coreos_single_node_cluster.md) * [Single Node Cluster](coreos/coreos_single_node_cluster.md)
* [Multi-node Cluster](coreos/coreos_multinode_cluster.md) * [Multi-node Cluster](coreos/coreos_multinode_cluster.md)
* [Multi-node cluster using cloud-config and Weave on Vagrant](https://github.com/errordeveloper/weave-demos/blob/master/poseidon/README.md) * [Multi-node cluster using cloud-config and Weave on Vagrant](https://github.com/errordeveloper/weave-demos/blob/master/poseidon/README.md)
* [Multi-node cluster using cloud-config and Vagrant](https://github.com/pires/kubernetes-vagrant-coreos-cluster/README.md)

View File

@ -1,5 +1,12 @@
#cloud-config #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: coreos:
units: units:
- name: setup-network-environment.service - name: setup-network-environment.service
@ -62,10 +69,29 @@ coreos:
ExecStart=/usr/bin/fleetd ExecStart=/usr/bin/fleetd
Restart=always Restart=always
RestartSec=10s 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 - name: flannel.service
command: start command: start
content: | content: |
[Unit] [Unit]
Wants=etcd-waiter.service
After=etcd-waiter.service
Requires=etcd.service Requires=etcd.service
After=etcd.service After=etcd.service
After=network-online.target After=network-online.target
@ -77,7 +103,7 @@ coreos:
ExecStartPre=-/usr/bin/mkdir -p /opt/bin ExecStartPre=-/usr/bin/mkdir -p /opt/bin
ExecStartPre=/usr/bin/wget -N -P /opt/bin https://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/chmod +x /opt/bin/flanneld
ExecStartPre=-/usr/bin/etcdctl mk /coreos.com/network/config '{"Network":"10.244.0.0/16", "Backend": {"Type": "vxlan"}}' ExecStartPre=/usr/bin/etcdctl mk /coreos.com/network/config '{"Network":"10.244.0.0/16", "Backend": {"Type": "vxlan"}}'
ExecStart=/opt/bin/flanneld ExecStart=/opt/bin/flanneld
- name: kube-apiserver.service - name: kube-apiserver.service
command: start command: start
@ -90,13 +116,14 @@ coreos:
[Service] [Service]
ExecStartPre=-/usr/bin/mkdir -p /opt/bin 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 ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver
ExecStart=/opt/bin/kube-apiserver \ ExecStart=/opt/bin/kube-apiserver \
--address=0.0.0.0 \ --address=0.0.0.0 \
--port=8080 \ --port=8080 \
--portal_net=10.1.0.0/16 \ --portal_net=10.244.0.0/16 \
--etcd_servers=http://127.0.0.1:4001 \ --etcd_servers=http://127.0.0.1:4001 \
--public_address_override=$private_ipv4 \
--logtostderr=true --logtostderr=true
Restart=always Restart=always
RestartSec=10 RestartSec=10
@ -110,7 +137,7 @@ coreos:
After=kube-apiserver.service After=kube-apiserver.service
[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 ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager
ExecStart=/opt/bin/kube-controller-manager \ ExecStart=/opt/bin/kube-controller-manager \
--master=127.0.0.1:8080 \ --master=127.0.0.1:8080 \
@ -127,7 +154,7 @@ coreos:
After=kube-apiserver.service After=kube-apiserver.service
[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 ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-scheduler
ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080 ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080
Restart=always Restart=always

View File

@ -74,7 +74,7 @@ coreos:
After=setup-network-environment.service After=setup-network-environment.service
[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 ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-proxy
ExecStart=/opt/bin/kube-proxy \ ExecStart=/opt/bin/kube-proxy \
--etcd_servers=http://<master-private-ip>:4001 \ --etcd_servers=http://<master-private-ip>:4001 \
@ -92,12 +92,12 @@ coreos:
[Service] [Service]
EnvironmentFile=/etc/network-environment 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 ExecStartPre=/usr/bin/chmod +x /opt/bin/kubelet
ExecStart=/opt/bin/kubelet \ ExecStart=/opt/bin/kubelet \
--address=0.0.0.0 \ --address=0.0.0.0 \
--port=10250 \ --port=10250 \
--hostname_override=${DEFAULT_IPV4} \ --hostname_override=$private_ipv4 \
--etcd_servers=http://<master-private-ip>:4001 \ --etcd_servers=http://<master-private-ip>:4001 \
--logtostderr=true --logtostderr=true
Restart=always Restart=always

View File

@ -1,5 +1,12 @@
#cloud-config #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
hostname: standalone hostname: standalone
coreos: coreos:
units: units:
@ -7,10 +14,29 @@ coreos:
command: start command: start
- name: fleet.service - name: fleet.service
command: start command: start
- 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 - name: flannel.service
command: start command: start
content: | content: |
[Unit] [Unit]
Wants=etcd-waiter.service
After=etcd-waiter.service
Requires=etcd.service Requires=etcd.service
After=etcd.service After=etcd.service
After=network-online.target After=network-online.target
@ -51,13 +77,14 @@ coreos:
[Service] [Service]
ExecStartPre=-/usr/bin/mkdir -p /opt/bin 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 ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver
ExecStart=/opt/bin/kube-apiserver \ ExecStart=/opt/bin/kube-apiserver \
--address=0.0.0.0 \ --address=0.0.0.0 \
--portal_net=10.1.0.0/16 \ --portal_net=10.244.0.0/16 \
--port=8080 \ --port=8080 \
--etcd_servers=http://127.0.0.1:4001 \ --etcd_servers=http://127.0.0.1:4001 \
--public_address_override=127.0.0.1 \
--logtostderr=true --logtostderr=true
Restart=always Restart=always
RestartSec=10 RestartSec=10
@ -71,7 +98,7 @@ coreos:
After=kube-apiserver.service After=kube-apiserver.service
[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 ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager
ExecStart=/opt/bin/kube-controller-manager \ ExecStart=/opt/bin/kube-controller-manager \
--machines=127.0.0.1 \ --machines=127.0.0.1 \
@ -89,7 +116,7 @@ coreos:
After=kube-apiserver.service After=kube-apiserver.service
[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 ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-scheduler
ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080 ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080
Restart=always Restart=always
@ -104,7 +131,7 @@ coreos:
After=etcd.service After=etcd.service
[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 ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-proxy
ExecStart=/opt/bin/kube-proxy \ ExecStart=/opt/bin/kube-proxy \
--etcd_servers=http://127.0.0.1:4001 \ --etcd_servers=http://127.0.0.1:4001 \
@ -121,7 +148,7 @@ coreos:
After=etcd.service After=etcd.service
[Service] [Service]
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 ExecStartPre=/usr/bin/chmod +x /opt/bin/kubelet
ExecStart=/opt/bin/kubelet \ ExecStart=/opt/bin/kubelet \
--address=0.0.0.0 \ --address=0.0.0.0 \

View File

@ -11,6 +11,8 @@ Use the [master.yaml](cloud-configs/master.yaml) and [node.yaml](cloud-configs/n
### AWS ### AWS
*Attention:* Replace ```<ami_image_id>``` bellow for a [suitable version of CoreOS image for AWS](https://coreos.com/docs/running-coreos/cloud-providers/ec2/).
#### Provision the Master #### Provision the Master
``` ```
@ -22,7 +24,7 @@ aws ec2 authorize-security-group-ingress --group-name kubernetes --source-securi
``` ```
aws ec2 run-instances \ aws ec2 run-instances \
--image-id ami-d92377e9 \ --image-id <ami_image_id> \
--key-name <keypair> \ --key-name <keypair> \
--region us-west-2 \ --region us-west-2 \
--security-groups kubernetes \ --security-groups kubernetes \
@ -45,7 +47,7 @@ Edit `node.yaml` and replace all instances of `<master-private-ip>` with the pri
``` ```
aws ec2 run-instances \ aws ec2 run-instances \
--count 1 \ --count 1 \
--image-id ami-d92377e9 \ --image-id <ami_image_id> \
--key-name <keypair> \ --key-name <keypair> \
--region us-west-2 \ --region us-west-2 \
--security-groups kubernetes \ --security-groups kubernetes \
@ -55,12 +57,14 @@ aws ec2 run-instances \
### GCE ### GCE
*Attention:* Replace ```<gce_image_id>``` bellow for a [suitable version of CoreOS image for GCE](https://coreos.com/docs/running-coreos/cloud-providers/google-compute-engine/).
#### Provision the Master #### Provision the Master
``` ```
gcloud compute instances create master \ gcloud compute instances create master \
--image-project coreos-cloud \ --image-project coreos-cloud \
--image coreos-alpha-509-1-0-v20141124 \ --image <gce_image_id> \
--boot-disk-size 200GB \ --boot-disk-size 200GB \
--machine-type n1-standard-1 \ --machine-type n1-standard-1 \
--zone us-central1-a \ --zone us-central1-a \
@ -82,7 +86,7 @@ Edit `node.yaml` and replace all instances of `<master-private-ip>` with the pri
``` ```
gcloud compute instances create node1 \ gcloud compute instances create node1 \
--image-project coreos-cloud \ --image-project coreos-cloud \
--image coreos-alpha-509-1-0-v20141124 \ --image <gce_image_id> \
--boot-disk-size 200GB \ --boot-disk-size 200GB \
--machine-type n1-standard-1 \ --machine-type n1-standard-1 \
--zone us-central1-a \ --zone us-central1-a \

View File

@ -2,6 +2,8 @@
Use the [standalone.yaml](cloud-configs/standalone.yaml) cloud-config to provision a single node Kubernetes cluster. Use the [standalone.yaml](cloud-configs/standalone.yaml) cloud-config to provision a single node Kubernetes cluster.
### CoreOS image versions
### AWS ### AWS
``` ```
@ -10,9 +12,11 @@ aws ec2 authorize-security-group-ingress --group-name kubernetes --protocol tcp
aws ec2 authorize-security-group-ingress --group-name kubernetes --source-security-group-name kubernetes aws ec2 authorize-security-group-ingress --group-name kubernetes --source-security-group-name kubernetes
``` ```
*Attention:* Replace ```<ami_image_id>``` bellow for a [suitable version of CoreOS image for AWS](https://coreos.com/docs/running-coreos/cloud-providers/ec2/).
``` ```
aws ec2 run-instances \ aws ec2 run-instances \
--image-id ami-d92377e9 \ --image-id <ami_image_id> \
--key-name <keypair> \ --key-name <keypair> \
--region us-west-2 \ --region us-west-2 \
--security-groups kubernetes \ --security-groups kubernetes \
@ -22,10 +26,12 @@ aws ec2 run-instances \
### GCE ### GCE
*Attention:* Replace ```<gce_image_id>``` bellow for a [suitable version of CoreOS image for GCE](https://coreos.com/docs/running-coreos/cloud-providers/google-compute-engine/).
``` ```
gcloud compute instances create standalone \ gcloud compute instances create standalone \
--image-project coreos-cloud \ --image-project coreos-cloud \
--image coreos-alpha-509-1-0-v20141124 \ --image <gce_image_id> \
--boot-disk-size 200GB \ --boot-disk-size 200GB \
--machine-type n1-standard-1 \ --machine-type n1-standard-1 \
--zone us-central1-a \ --zone us-central1-a \