Skip to content

Instantly share code, notes, and snippets.

@rochacon
Last active March 5, 2017 13:21
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rochacon/7b1acc5b3e9dc20594bc to your computer and use it in GitHub Desktop.
Save rochacon/7b1acc5b3e9dc20594bc to your computer and use it in GitHub Desktop.
Kubernetes single node cloud-config for CoreOS.
#cloud-config
---
hostname: master
coreos:
units:
- name: docker.service
command: start
enable: true
drop-ins:
- name: 51-docker-mirror.conf
content: |
[Unit]
Requires=docker-registry.service
After=docker-registry.service
[Service]
Environment=DOCKER_OPTS='--registry-mirror=http://$private_ipv4:5000'
- name: docker-registry.service
command: start
enable: true
content: |
[Unit]
Description=Docker registry proxy
Requires=early-docker.service
After=early-docker.service
Before=early-docker.target
[Service]
Restart=always
TimeoutStartSec=0
RestartSec=5
Environment="TMPDIR=/var/tmp/"
Environment="DOCKER_HOST=unix:///var/run/early-docker.sock"
ExecStartPre=-/usr/bin/docker kill docker-registry
ExecStartPre=-/usr/bin/docker rm docker-registry
ExecStartPre=/usr/bin/docker pull registry:2
ExecStart=/usr/bin/docker run --rm --net host --name docker-registry \
-e MIRROR_SOURCE=https://registry-1.docker.io \
-e MIRROR_SOURCE_INDEX=https://index.docker.io \
-e MIRROR_TAGS_CACHE_TTL=1800 \
registry:2
ExecStop=/usr/bin/docker stop docker-registry
- name: kube-etcd2.service
command: start
enable: true
content: |
[Unit]
Description=Kubernetes etcd2
Documentation=https://github.com/coreos/etcd
Requires=docker.service
After=docker.service
[Service]
ExecStartPre=-/usr/bin/docker kill k8s-etcd2
ExecStartPre=-/usr/bin/docker rm k8s-etcd2
ExecStartPre=/usr/bin/docker pull gcr.io/google_containers/etcd:2.0.12
ExecStart=/usr/bin/docker run --name k8s-etcd2 --net=host gcr.io/google_containers/etcd:2.0.12 /usr/local/bin/etcd --addr=127.0.0.1:4001 --bind-addr=0.0.0.0:4001 --data-dir=/var/etcd/data
ExecStop=/usr/bin/docker stop k8s-etcd2
Restart=always
RestartSec=10
- name: kube-apiserver.service
command: start
enable: true
content: |
[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Requires=docker.service kube-etcd2.service
After=docker.service kube-etcd2.service
[Service]
ExecStartPre=-/usr/bin/docker kill k8s-master
ExecStartPre=-/usr/bin/docker rm k8s-master
ExecStartPre=/usr/bin/docker pull gcr.io/google_containers/hyperkube:v1.0.1
ExecStart=/usr/bin/docker run --name k8s-master --net=host -v /var/run/docker.sock:/var/run/docker.sock gcr.io/google_containers/hyperkube:v1.0.1 /hyperkube kubelet --api_servers=http://localhost:8080 --v=2 --address=0.0.0.0 --enable_server --hostname_override=127.0.0.1 --config=/etc/kubernetes/manifests
ExecStop=/usr/bin/docker stop k8s-master
Restart=always
RestartSec=10
- name: kube-proxy.service
command: start
enable: true
content: |
[Unit]
Description=Kubernetes Proxy
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Requires=docker.service kube-apiserver.service
After=docker.service kube-apiserver.service
[Service]
ExecStartPre=-/usr/bin/docker kill k8s-proxy
ExecStartPre=-/usr/bin/docker rm k8s-proxy
ExecStartPre=/usr/bin/docker pull gcr.io/google_containers/hyperkube:v1.0.1
ExecStart=/usr/bin/docker run --name k8s-proxy --net=host --privileged gcr.io/google_containers/hyperkube:v1.0.1 /hyperkube proxy --master=http://127.0.0.1:8080 --v=2
ExecStop=/usr/bin/docker stop k8s-proxy
- name: kubectl-download.service
command: start
content: |
[Unit]
Description=Download Kubernetes kubectl
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
ConditionPathExists=!/opt/bin/kubectl
[Service]
Type=oneshot
ExecStart=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v1.0.1/bin/linux/amd64/kubectl
ExecStartPost=/usr/bin/chmod +x /opt/bin/kubectl
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment