Commit 31a513d7 authored by Antoine Cotten's avatar Antoine Cotten

update AWS CloudFormation template and cloud-configs

Kubernetes 0.16.1 and CoreOS 668.2.0 (alpha) a lot of cleanup
parent 72048a82
...@@ -21,7 +21,7 @@ libvirt | custom | Fedora | flannel | [docs](../../docs/getting-s ...@@ -21,7 +21,7 @@ libvirt | custom | Fedora | flannel | [docs](../../docs/getting-s
KVM | custom | Fedora | flannel | [docs](../../docs/getting-started-guides/fedora/flannel_multi_node_cluster.md) | Community ([@aveshagarwal](https://github.com/aveshagarwal))| Tested with 0.15.0 KVM | custom | Fedora | flannel | [docs](../../docs/getting-started-guides/fedora/flannel_multi_node_cluster.md) | Community ([@aveshagarwal](https://github.com/aveshagarwal))| Tested with 0.15.0
Bare-metal | custom | Ubuntu Cluster | flannel | [docs](../../docs/getting-started-guides/ubuntu_multinodes_cluster.md) | Community (@resouer @WIZARD-CXY) | use k8s version 0.12.0 Bare-metal | custom | Ubuntu Cluster | flannel | [docs](../../docs/getting-started-guides/ubuntu_multinodes_cluster.md) | Community (@resouer @WIZARD-CXY) | use k8s version 0.12.0
Mesos/GCE | | | | [docs](../../docs/getting-started-guides/mesos.md) | [Community](https://github.com/mesosphere/kubernetes-mesos) ([@jdef](https://github.com/jdef)) | Uses K8s v0.11.2 Mesos/GCE | | | | [docs](../../docs/getting-started-guides/mesos.md) | [Community](https://github.com/mesosphere/kubernetes-mesos) ([@jdef](https://github.com/jdef)) | Uses K8s v0.11.2
AWS | CoreOS | CoreOS | flannel | [docs](../../docs/getting-started-guides/coreos.md) | Community | Uses K8s version 0.15.0 AWS | CoreOS | CoreOS | flannel | [docs](../../docs/getting-started-guides/coreos.md) | Community | Uses K8s version 0.16.1
GCE | CoreOS | CoreOS | flannel | [docs](../../docs/getting-started-guides/coreos.md) | Community (@kelseyhightower) | Uses K8s version 0.15.0 GCE | CoreOS | CoreOS | flannel | [docs](../../docs/getting-started-guides/coreos.md) | Community (@kelseyhightower) | Uses K8s version 0.15.0
Vagrant | CoreOS | CoreOS | flannel | [docs](../../docs/getting-started-guides/coreos.md) | Community ( [@pires](https://github.com/pires), [@AntonioMeireles](https://github.com/AntonioMeireles) ) | Uses K8s version 0.15.0 Vagrant | CoreOS | CoreOS | flannel | [docs](../../docs/getting-started-guides/coreos.md) | Community ( [@pires](https://github.com/pires), [@AntonioMeireles](https://github.com/AntonioMeireles) ) | Uses K8s version 0.15.0
Bare-metal (Offline) | CoreOS | CoreOS | flannel | [docs](../../docs/getting-started-guides/coreos/bare_metal_offline.md) | Community([@jeffbean](https://github.com/jeffbean)) | Uses K8s version 0.15.0 Bare-metal (Offline) | CoreOS | CoreOS | flannel | [docs](../../docs/getting-started-guides/coreos/bare_metal_offline.md) | Community([@jeffbean](https://github.com/jeffbean)) | Uses K8s version 0.15.0
......
#cloud-config #cloud-config
--- write_files:
hostname: master - path: /opt/bin/waiter.sh
owner: root
permissions: 0755
content: |
#! /usr/bin/bash
until curl http://127.0.0.1:2379/v2/machines; do sleep 2; done
coreos: coreos:
etcd2: etcd2:
name: master name: master
listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001
advertise-client-urls: http://<master-private-ip>:2379,http://<master-private-ip>:4001
initial-cluster-token: k8s_etcd initial-cluster-token: k8s_etcd
listen-peer-urls: http://<master-private-ip>:2380,http://<master-private-ip>:7001 initial-cluster: master=http://$private_ipv4:2380
initial-advertise-peer-urls: http://<master-private-ip>:2380 listen-peer-urls: http://$private_ipv4:2380,http://localhost:2380
initial-cluster: master=http://<master-private-ip>:2380 initial-advertise-peer-urls: http://$private_ipv4:2380
initial-cluster-state: new listen-client-urls: http://$private_ipv4:2379,http://localhost:2379
advertise-client-urls: http://$private_ipv4:2379
fleet: fleet:
metadata: "role=master" etcd_servers: http://localhost:2379
metadata: k8srole=master
flannel:
etcd_endpoints: http://localhost:2379
locksmithd:
endpoint: http://localhost:2379
units: units:
- name: setup-network-environment.service - name: etcd2.service
command: start
- name: fleet.service
command: start
- name: etcd2-waiter.service
command: start command: start
content: | content: |
[Unit] [Unit]
Description=Setup Network Environment Description=etcd waiter
Documentation=https://github.com/kelseyhightower/setup-network-environment Wants=network-online.target
Requires=network-online.target Wants=etcd2.service
After=etcd2.service
After=network-online.target After=network-online.target
Before=flanneld.service fleet.service locksmithd.service
[Service] [Service]
ExecStartPre=-/usr/bin/mkdir -p /opt/bin ExecStart=/usr/bin/bash /opt/bin/waiter.sh
ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/setup-network-environment RemainAfterExit=true
ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment
ExecStart=/opt/bin/setup-network-environment
RemainAfterExit=yes
Type=oneshot Type=oneshot
- name: fleet.service
command: start
- name: flanneld.service - name: flanneld.service
command: start command: start
drop-ins: drop-ins:
- name: 50-network-config.conf - name: 50-network-config.conf
content: | content: |
[Unit]
Requires=etcd2.service
[Service] [Service]
ExecStartPre=/usr/bin/etcdctl set /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"}}'
- name: docker-cache.service - name: docker-cache.service
command: start command: start
content: | content: |
...@@ -55,8 +64,8 @@ coreos: ...@@ -55,8 +64,8 @@ coreos:
Restart=always Restart=always
TimeoutStartSec=0 TimeoutStartSec=0
RestartSec=5 RestartSec=5
Environment="TMPDIR=/var/tmp/" Environment=TMPDIR=/var/tmp/
Environment="DOCKER_HOST=unix:///var/run/early-docker.sock" Environment=DOCKER_HOST=unix:///var/run/early-docker.sock
ExecStartPre=-/usr/bin/docker kill docker-registry ExecStartPre=-/usr/bin/docker kill docker-registry
ExecStartPre=-/usr/bin/docker rm docker-registry ExecStartPre=-/usr/bin/docker rm docker-registry
ExecStartPre=/usr/bin/docker pull quay.io/devops/docker-registry:latest ExecStartPre=/usr/bin/docker pull quay.io/devops/docker-registry:latest
...@@ -76,33 +85,41 @@ coreos: ...@@ -76,33 +85,41 @@ coreos:
[Unit] [Unit]
# making sure that docker-cache is up and that flanneld finished # making sure that docker-cache is up and that flanneld finished
# startup, otherwise containers won't land in flannel's network... # startup, otherwise containers won't land in flannel's network...
Requires=docker-cache.service flanneld.service Requires=docker-cache.service
After=docker-cache.service flanneld.service After=docker-cache.service
[Service] [Service]
Environment=DOCKER_OPTS='--registry-mirror=http://$private_ipv4:5000' Environment=DOCKER_OPTS='--registry-mirror=http://$private_ipv4:5000'
- name: get-kubectl.service
command: start
content: |
[Unit]
Description=Get kubectl client tool
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Requires=network-online.target
After=network-online.target
[Service]
ExecStart=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.16.1/bin/linux/amd64/kubectl
ExecStart=/usr/bin/chmod +x /opt/bin/kubectl
Type=oneshot
RemainAfterExit=true
- name: kube-apiserver.service - name: kube-apiserver.service
command: start command: start
content: | content: |
[Unit] [Unit]
Description=Kubernetes API Server Description=Kubernetes API Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Requires=etcd2.service Requires=etcd2-waiter.service
After=etcd2.service After=etcd2-waiter.service
[Service] [Service]
ExecStartPre=-/usr/bin/mkdir -p /opt/bin ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.16.1/bin/linux/amd64/kube-apiserver
ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.15.0/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 \
--allow_privileged=true \ --insecure-bind-address=0.0.0.0 \
--insecure_bind_address=0.0.0.0 \ --portal-net=10.100.0.0/16 \
--insecure_port=8080 \ --etcd-servers=http://localhost:2379
--kubelet_https=true \
--secure_port=6443 \
--portal_net=10.100.0.0/16 \
--etcd_servers=http://127.0.0.1:4001 \
--public_address_override=$private_ipv4 \
--logtostderr=true
Restart=always Restart=always
RestartSec=10 RestartSec=10
- name: kube-controller-manager.service - name: kube-controller-manager.service
...@@ -115,11 +132,10 @@ coreos: ...@@ -115,11 +132,10 @@ 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.15.0/bin/linux/amd64/kube-controller-manager ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.16.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
--logtostderr=true
Restart=always Restart=always
RestartSec=10 RestartSec=10
- name: kube-scheduler.service - name: kube-scheduler.service
...@@ -132,9 +148,10 @@ coreos: ...@@ -132,9 +148,10 @@ 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.15.0/bin/linux/amd64/kube-scheduler ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.16.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
RestartSec=10 RestartSec=10
- name: kube-register.service - name: kube-register.service
...@@ -143,20 +160,16 @@ coreos: ...@@ -143,20 +160,16 @@ coreos:
[Unit] [Unit]
Description=Kubernetes Registration Service Description=Kubernetes Registration Service
Documentation=https://github.com/kelseyhightower/kube-register Documentation=https://github.com/kelseyhightower/kube-register
Requires=kube-apiserver.service Requires=kube-apiserver.service fleet.service
After=kube-apiserver.service After=kube-apiserver.service fleet.service
Requires=fleet.service
After=fleet.service
[Service] [Service]
# ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/kube-register ExecStartPre=-/usr/bin/wget -nc -O /opt/bin/kube-register https://github.com/kelseyhightower/kube-register/releases/download/v0.0.3/kube-register-0.0.3-linux-amd64
ExecStartPre=/usr/bin/wget -N -O /opt/bin/kube-register https://github.com/kelseyhightower/kube-register/releases/download/v0.0.3/kube-register-0.0.3-linux-amd64
ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-register ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-register
ExecStart=/opt/bin/kube-register \ ExecStart=/opt/bin/kube-register \
--metadata=role=node \ --metadata=k8srole=node \
--fleet-endpoint=unix:///var/run/fleet.sock \ --fleet-endpoint=unix:///var/run/fleet.sock \
--api-endpoint=http://127.0.0.1:8080 \ --api-endpoint=http://127.0.0.1:8080
--healthz-port=10248
Restart=always Restart=always
RestartSec=10 RestartSec=10
update: update:
......
#cloud-config #cloud-config
write-files:
write_files:
- path: /opt/bin/wupiao - path: /opt/bin/wupiao
permissions: '0755' owner: root
permissions: 0755
content: | content: |
#!/bin/bash #!/bin/bash
# [w]ait [u]ntil [p]ort [i]s [a]ctually [o]pen # [w]ait [u]ntil [p]ort [i]s [a]ctually [o]pen
...@@ -9,94 +11,68 @@ write-files: ...@@ -9,94 +11,68 @@ write-files:
--silent --head --fail \ --silent --head --fail \
http://${1}:${2}; do sleep 1 && echo -n .; done; http://${1}:${2}; do sleep 1 && echo -n .; done;
exit $? exit $?
coreos: coreos:
etcd2: etcd2:
listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001 listen-client-urls: http://localhost:2379
initial-cluster: master=http://<master-private-ip>:2380 initial-cluster: master=http://<master-private-ip>:2380
proxy: on proxy: on
fleet: fleet:
metadata: "role=node" etcd_servers: http://localhost:2379
metadata: k8srole=node
flannel:
etcd_endpoints: http://localhost:2379
locksmithd:
endpoint: http://localhost:2379
units: units:
- name: etcd2.service
command: start
- name: fleet.service - name: fleet.service
command: start command: start
- name: flanneld.service - name: flanneld.service
command: start command: start
drop-ins:
- name: 50-network-config.conf
content: |
[Unit]
Requires=etcd2.service
[Service]
ExecStartPre=/usr/bin/etcdctl set /coreos.com/network/config '{"Network":"10.244.0.0/16", "Backend": {"Type": "vxlan"}}'
- name: docker.service - name: docker.service
command: start command: start
drop-ins: drop-ins:
- name: 51-docker-mirror.conf - name: 50-docker-mirror.conf
content: | content: |
[Unit]
Requires=flanneld.service
After=flanneld.service
[Service] [Service]
Environment=DOCKER_OPTS='--registry-mirror=http://<master-private-ip>:5000' Environment=DOCKER_OPTS='--registry-mirror=http://<master-private-ip>:5000'
- name: setup-network-environment.service - name: kubelet.service
command: start command: start
content: | content: |
[Unit] [Unit]
Description=Setup Network Environment Description=Kubernetes Kubelet
Documentation=https://github.com/kelseyhightower/setup-network-environment Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Requires=network-online.target Requires=network-online.target
After=network-online.target After=network-online.target
[Service] [Service]
ExecStartPre=-/usr/bin/mkdir -p /opt/bin ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.16.1/bin/linux/amd64/kubelet
ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/setup-network-environment ExecStartPre=/usr/bin/chmod +x /opt/bin/kubelet
ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment
ExecStart=/opt/bin/setup-network-environment
RemainAfterExit=yes
Type=oneshot
- name: kube-proxy.service
command: start
content: |
[Unit]
Description=Kubernetes Proxy
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Requires=setup-network-environment.service
After=setup-network-environment.service
[Service]
ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.15.0/bin/linux/amd64/kube-proxy
ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-proxy
# wait for kubernetes master to be up and ready # wait for kubernetes master to be up and ready
ExecStartPre=/opt/bin/wupiao <master-private-ip> 8080 ExecStartPre=/opt/bin/wupiao <master-private-ip> 8080
ExecStart=/opt/bin/kube-proxy \ ExecStart=/opt/bin/kubelet \
--master=<master-private-ip>:8080 \ --api-servers=<master-private-ip>:8080 \
--logtostderr=true --hostname-override=$private_ipv4
Restart=always Restart=always
RestartSec=10 RestartSec=10
- name: kube-kubelet.service - name: kube-proxy.service
command: start command: start
content: | content: |
[Unit] [Unit]
Description=Kubernetes Kubelet Description=Kubernetes Proxy
Documentation=https://github.com/GoogleCloudPlatform/kubernetes Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Requires=setup-network-environment.service Requires=network-online.target
After=setup-network-environment.service After=network-online.target
[Service] [Service]
EnvironmentFile=/etc/network-environment ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.16.1/bin/linux/amd64/kube-proxy
ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.15.0/bin/linux/amd64/kubelet ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-proxy
ExecStartPre=/usr/bin/chmod +x /opt/bin/kubelet
# wait for kubernetes master to be up and ready # wait for kubernetes master to be up and ready
ExecStartPre=/opt/bin/wupiao <master-private-ip> 8080 ExecStartPre=/opt/bin/wupiao <master-private-ip> 8080
ExecStart=/opt/bin/kubelet \ ExecStart=/opt/bin/kube-proxy \
--address=0.0.0.0 \ --master=http://<master-private-ip>:8080
--port=10250 \
--hostname_override=$private_ipv4 \
--api_servers=<master-private-ip>:8080 \
--allow_privileged=true \
--logtostderr=true \
--healthz_bind_address=0.0.0.0 \
--healthz_port=10248
Restart=always Restart=always
RestartSec=10 RestartSec=10
update: update:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment