install Kubernetes with Chef

Ming-der Wang <ming@log4analytics.com>

Create VMs on DO with CentOS 7+

$ docker-machine create --driver digitalocean --digitalocean-image centos-7-0-x64 --digitalocean-access-token $DOTOKEN centos-1

$ docker-machine create --driver digitalocean --digitalocean-image centos-7-0-x64 --digitalocean-access-token $DOTOKEN centos-2

$ docker-machine create --driver digitalocean --digitalocean-image centos-7-0-x64 --digitalocean-access-token $DOTOKEN centos-3

其實嘗試了各種 OS 

$ docker-machine create --driver digitalocean --digitalocean-image ubuntu-14-04-x64 --digitalocean-access-token $DOTOKEN centos-1

$ docker-machine create --driver digitalocean --digitalocean-image ubuntu-16-04-x64 --digitalocean-access-token $DOTOKEN centos-2

$ docker-machine create --driver digitalocean --digitalocean-image ubuntu-16-10-x64 --digitalocean-access-token $DOTOKEN centos-3

Create cert using cfss.

➜  curl -s -L -o ~/bin/cfssl https://pkg.cfssl.org/R1.1/cfssl_darwin-amd64
➜  curl -s -L -o ~/bin/cfssljson https://pkg.cfssl.org/R1.1/cfssljson_darwin-amd64

for Mac OS

➜  curl -s -L -o ~/bin/cfssl https://pkg.cfssl.org/R1.1/cfssl_linux-amd64
➜  curl -s -L -o ~/bin/cfssljson https://pkg.cfssl.org/R1.1/cfssljson_linux-amd64

for Linux

Create cert using cfss. (續)

現做出 ca.pem, ca-key.pem, ca.csr

利用他們再做出 centos.pem, centos-key.pem, centos.csr

 

$ cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client-server centos-1.json | cfssljson -bare centos

$ scp -i /Users/mingderwang/.docker/machine/machines/centos-1/id_rsa ca.pem centos-key.pem centos.pem  root@centos-1:

最後改用 chef 比較快

Create 2 machines on DO

$ docker-machine create --driver digitalocean --digitalocean-image centos-7-0-x64 --digitalocean-access-token $DOTOKEN --digitalocean-size 1gb centos-1

 

$ docker-machine create --driver digitalocean --digitalocean-image centos-7-0-x64 --digitalocean-access-token $DOTOKEN --digitalocean-size 1gb  centos-2

using docker-machine comman

git cookbook from 

https://github.com/chenzhiwei/kubernetes-cookbook

cd ~/chef-repo/cookbook

git clone https://github.com/chenzhiwei/kubernetes-cookbook kubernetes

 

cd kubernetes

vi environments/kubernetes.json  # 改你自己的 IPs

 

environments/kubernets.json

$ knife environment from file environments/kubernetes.json

chef-repo/cookbook/kubernetes

Chef-client again (if necessary)

$ docker-machine ssh centos-1 chef-client -r 'role[kubernetes-etcd],role[kubernetes-master]'

 

$ docker-machine ssh centos-2 chef-client -r  'role[kubernetes-minion]'

if update cookbook

Bootstrap master and minion

$ knife bootstrap 159.203.167.97 -E kubernetes -r 'role[kubernetes-minion]' -i /Users/mingderwang/.docker/machine/machines/centos-2/id_rsa

create one master and one minion

$ knife bootstrap 159.203.173.161 -E kubernetes -r 'role[kubernetes-etcd],role[kubernetes-master]' -i /Users/mingderwang/.docker/machine/machines/centos-1/id_rsa

 

openvswitch 碰到問題

install Kubernetes

By Ming-der Wang

install Kubernetes

(過期資訊, 改用 kubeadmin 或 kuberspray, 不要在用 Chef 裝)

  • 1,495