Skip to content

Instantly share code, notes, and snippets.

@adieu
Last active January 13, 2017 15:06
Show Gist options
  • Save adieu/f2dac5ef342bc3a793140931ec18603d to your computer and use it in GitHub Desktop.
Save adieu/f2dac5ef342bc3a793140931ec18603d to your computer and use it in GitHub Desktop.
Install Kubernetes
wget https://github.com/coreos/etcd/releases/download/v2.3.7/etcd-v2.3.7-linux-amd64.tar.gz
tar zxf etcd-v2.3.7-linux-amd64.tar.gz
mv etcd-v2.3.7-linux-amd64/* /usr/local/bin/
sudo sh -c 'echo "[Unit]
Description=etcd
Documentation=https://github.com/coreos
[Service]
ExecStart=/usr/local/bin/etcd \
--data-dir=/var/lib/etcd \
--listen-client-urls=http://PRIVATE_IP:2379,http://127.0.0.1:2379 \
--advertise-client-urls=http://PRIVATE_IP:2379
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/etcd.service'
sudo systemctl daemon-reload
sudo systemctl enable etcd
sudo systemctl start etcd
sudo systemctl status etcd
etcdctl cluster-health
wget https://github.com/coreos/flannel/releases/download/v0.5.5/flannel-0.5.5-linux-amd64.tar.gz
tar zxf flannel-0.5.5-linux-amd64.tar.gz
mv flannel-0.5.5/flanneld /usr/local/bin/
mv flannel-0.5.5/mk-docker-opts.sh /usr/local/bin/
sudo sh -c 'echo "[Unit]
Description=flannel network
Documentation=https://github.com/coreos/flannel
After=etcd.service
[Service]
User=root
Environment=FLANNELD_IFACE=PRIVATE_IP
Environment=FLANNELD_ETCD_ENDPOINTS=http://MASTER_PRIVATE_IP:2379
ExecStartPre=/sbin/modprobe ip_tables
ExecStart=/usr/local/bin/flanneld --ip-masq=true
# Update docker options
ExecStartPost=/usr/local/bin/mk-docker-opts.sh -d /run/flannel_docker_opts.env -i
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/flanneld.service'
// run this first on master
etcdctl set /coreos.com/network/config '{ "Network": "10.2.0.0/16", "Backend": {"Type": "host-gw"} }'
sudo systemctl daemon-reload
sudo systemctl enable flanneld
sudo systemctl start flanneld
sudo systemctl status flanneld
sudo apt-get update
sudo apt-get install docker.io
sudo sh -c 'echo "[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=docker.socket network.target
Requires=docker.socket
[Service]
Environment=\"DOCKER_CGROUPS=--exec-opt native.cgroupdriver=systemd\"
EnvironmentFile=-/run/flannel_docker_opts.env
MountFlags=slave
LimitNOFILE=1048576
LimitNPROC=1048576
TasksMax=infinity
ExecStart=/usr/bin/docker daemon --host=fd:// \$DOCKER_OPTS \$DOCKER_CGROUPS \$DOCKER_OPT_BIP \$DOCKER_OPT_MTU \$DOCKER_OPT_IPMASQ
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/docker.service'
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker
wget https://github.com/kubernetes/kubernetes/releases/download/v1.2.5/kubernetes.tar.gz
tar zxf kubernetes.tar.gz
tar zxf kubernetes/server/kubernetes-server-linux-amd64.tar.gz
sudo cp kubernetes/server/bin/hyperkube /usr/local/bin/
sudo cp kubernetes/server/bin/kubectl /usr/local/bin/
sudo sh -c 'echo "[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service]
ExecStart=/usr/local/bin/hyperkube \
apiserver \
--insecure-bind-address=0.0.0.0 \
--etcd-servers=http://127.0.0.1:2379 \
--service-cluster-ip-range 10.1.0.0/24 \
--allow-privileged=true
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/kube-apiserver.service'
sudo systemctl daemon-reload
sudo systemctl enable kube-apiserver
sudo systemctl start kube-apiserver
sudo systemctl status kube-apiserver
kubectl version
kubectl get cs
sudo sh -c 'echo "[Unit]
Description=Kubernetes Controller Manager
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service]
ExecStart=/usr/local/bin/hyperkube \
controller-manager \
--master=http://127.0.0.1:8080
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/kube-controller-manager.service'
sudo systemctl daemon-reload
sudo systemctl enable kube-controller-manager
sudo systemctl start kube-controller-manager
sudo systemctl status kube-controller-manager
kubectl get cs
sudo sh -c 'echo "[Unit]
Description=Kubernetes Scheduler
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service]
ExecStart=/usr/local/bin/hyperkube \
scheduler \
--master=http://127.0.0.1:8080
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/kube-scheduler.service'
sudo systemctl daemon-reload
sudo systemctl enable kube-scheduler
sudo systemctl start kube-scheduler
sudo systemctl status kube-scheduler
kubectl get cs
sudo sh -c 'echo "[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=docker.service
Requires=docker.service
[Service]
ExecStart=/usr/local/bin/hyperkube \
kubelet \
--api-servers=http://MASTER_PRIVATE_IP:8080 \
--allow-privileged=true
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/kubelet.service'
sudo systemctl daemon-reload
sudo systemctl enable kubelet
sudo systemctl start kubelet
sudo systemctl status kubelet
kubectl --server http://MASTER_PRIVATE_IP:8080 get nodes
sudo sh -c 'echo "[Unit]
Description=Kubernetes Proxy
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=docker.service
Requires=docker.service
[Service]
ExecStart=/usr/local/bin/hyperkube \
proxy \
--master=http://MASTER_PRIVATE_IP:8080 \
--proxy-mode=iptables
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/kube-proxy.service'
sudo systemctl daemon-reload
sudo systemctl enable kube-proxy
sudo systemctl start kube-proxy
sudo systemctl status kube-proxy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment