mirror of https://github.com/k3s-io/k3s
141 lines
5.4 KiB
YAML
141 lines
5.4 KiB
YAML
#cloud-config
|
|
|
|
---
|
|
write-files:
|
|
- path: /etc/conf.d/nfs
|
|
permissions: '0644'
|
|
content: |
|
|
OPTS_RPC_MOUNTD=""
|
|
- path: /opt/bin/wupiao
|
|
permissions: '0755'
|
|
content: |
|
|
#!/bin/bash
|
|
# [w]ait [u]ntil [p]ort [i]s [a]ctually [o]pen
|
|
[ -n "$1" ] && \
|
|
until curl -o /dev/null -sIf http://${1}; do \
|
|
sleep 1 && echo .;
|
|
done;
|
|
exit $?
|
|
|
|
hostname: master
|
|
coreos:
|
|
etcd2:
|
|
name: master
|
|
listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001
|
|
advertise-client-urls: http://$private_ipv4:2379,http://$private_ipv4:4001
|
|
initial-cluster-token: k8s_etcd
|
|
listen-peer-urls: http://$private_ipv4:2380,http://$private_ipv4:7001
|
|
initial-advertise-peer-urls: http://$private_ipv4:2380
|
|
initial-cluster: master=http://$private_ipv4:2380
|
|
initial-cluster-state: new
|
|
fleet:
|
|
metadata: "role=master"
|
|
units:
|
|
- name: generate-serviceaccount-key.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Generate service-account key file
|
|
|
|
[Service]
|
|
ExecStartPre=-/usr/bin/mkdir -p /opt/bin
|
|
ExecStart=/bin/openssl genrsa -out /opt/bin/kube-serviceaccount.key 2048 2>/dev/null
|
|
RemainAfterExit=yes
|
|
Type=oneshot
|
|
- 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/curl -L -o /opt/bin/setup-network-environment -z /opt/bin/setup-network-environment https://github.com/kelseyhightower/setup-network-environment/releases/download/v1.0.0/setup-network-environment
|
|
ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment
|
|
ExecStart=/opt/bin/setup-network-environment
|
|
RemainAfterExit=yes
|
|
Type=oneshot
|
|
- name: fleet.service
|
|
command: start
|
|
- name: flanneld.service
|
|
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
|
|
command: start
|
|
- name: kube-apiserver.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Kubernetes API Server
|
|
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
|
|
Requires=setup-network-environment.service etcd2.service generate-serviceaccount-key.service
|
|
After=setup-network-environment.service etcd2.service generate-serviceaccount-key.service
|
|
|
|
[Service]
|
|
EnvironmentFile=/etc/network-environment
|
|
ExecStartPre=-/usr/bin/mkdir -p /opt/bin
|
|
ExecStartPre=/usr/bin/curl -L -o /opt/bin/kube-apiserver -z /opt/bin/kube-apiserver https://storage.googleapis.com/kubernetes-release/release/v1.1.2/bin/linux/amd64/kube-apiserver
|
|
ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver
|
|
ExecStartPre=/opt/bin/wupiao 127.0.0.1:2379/v2/machines
|
|
ExecStart=/opt/bin/kube-apiserver \
|
|
--service-account-key-file=/opt/bin/kube-serviceaccount.key \
|
|
--service-account-lookup=false \
|
|
--admission-control=NamespaceLifecycle,NamespaceAutoProvision,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota \
|
|
--runtime-config=api/v1 \
|
|
--allow-privileged=true \
|
|
--insecure-bind-address=0.0.0.0 \
|
|
--insecure-port=8080 \
|
|
--kubelet-https=true \
|
|
--secure-port=6443 \
|
|
--service-cluster-ip-range=10.100.0.0/16 \
|
|
--etcd-servers=http://127.0.0.1:2379 \
|
|
--public-address-override=${DEFAULT_IPV4} \
|
|
--logtostderr=true
|
|
Restart=always
|
|
RestartSec=10
|
|
- name: kube-controller-manager.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Kubernetes Controller Manager
|
|
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
|
|
Requires=kube-apiserver.service
|
|
After=kube-apiserver.service
|
|
|
|
[Service]
|
|
ExecStartPre=/usr/bin/curl -L -o /opt/bin/kube-controller-manager -z /opt/bin/kube-controller-manager https://storage.googleapis.com/kubernetes-release/release/v1.1.2/bin/linux/amd64/kube-controller-manager
|
|
ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager
|
|
ExecStart=/opt/bin/kube-controller-manager \
|
|
--service-account-private-key-file=/opt/bin/kube-serviceaccount.key \
|
|
--master=127.0.0.1:8080 \
|
|
--logtostderr=true
|
|
Restart=always
|
|
RestartSec=10
|
|
- name: kube-scheduler.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Kubernetes Scheduler
|
|
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
|
|
Requires=kube-apiserver.service
|
|
After=kube-apiserver.service
|
|
|
|
[Service]
|
|
ExecStartPre=/usr/bin/curl -L -o /opt/bin/kube-scheduler -z /opt/bin/kube-scheduler https://storage.googleapis.com/kubernetes-release/release/v1.1.2/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
|
|
RestartSec=10
|
|
update:
|
|
group: alpha
|
|
reboot-strategy: off
|