部署結構
- 3台虛擬機,其中1台作為master,2台作為minion,都安裝了最新版本的docker engine(目前是1.11.2)
- k8s版本是1.3.0
部署步驟
1. 在部署機上下載k8s,並編譯。
部署機需要安裝docker engine(1.11.2)和go(1.6.2)
$git clone https://github.com/kubernetes/kubernetes.git $cd kubernetes $make release-skip-tests $mv _output/release-stage/full/kubernetes/server/kubernetes-server-linux-amd64.tar.gz cluster/ubuntu/
Note
除了linux/amd64,默認還會為其他平台做交叉編譯。為了減少編譯時間,可以修改hack/lib/golang.sh,把KUBE_SERVER_PLATFORMS, KUBE_CLIENT_PLATFORMS和KUBE_TEST_PLATFORMS中除linux/amd64以外的其他平台注釋掉。
2. 下載etcd,flannel安裝包
$ETCD_VERSION=${ETCD_VERSION:-"2.3.1"} $ETCD="etcd-v${ETCD_VERSION}-linux-amd64" $curl -L https://github.com/coreos/etcd/releases/download/v${ETCD_VERSION}/${ETCD}.tar.gz -o cluster/ubuntu/etcd.tar.gz $FLANNEL_VERSION=${FLANNEL_VERSION:-"0.5.5"} $curl -L https://github.com/coreos/flannel/releases/download/v${FLANNEL_VERSION}/flannel-${FLANNEL_VERSION}-linux-amd64.tar.gz -o cluster/ubuntu/flannel.tar.gz
3. 解壓縮安裝包
$cd cluster/ubuntu $mkdir -p binaries/master $mkdir -p binaries/minion $ tar xzf etcd.tar.gz $ cp ${ETCD}/etcd ${ETCD}/etcdctl binaries/master $ echo ${ETCD_VERSION} > binaries/.etcd $tar xzf flannel.tar.gz $cp flannel-${FLANNEL_VERSION}/flanneld binaries/master $cp flannel-${FLANNEL_VERSION}/flanneld binaries/minion $echo ${FLANNEL_VERSION} > binaries/.flannel $KUBE_VERSION=1.3.0 $tar xzf kubernetes-server-linux-amd64.tar.gz $cp kubernetes/server/bin/kube-apiserver kubernetes/server/bin/kube-controller-manager kubernetes/server/bin/kube-scheduler binaries/master $cp kubernetes/server/bin/kubelet kubernetes/server/bin/kube-proxy binaries/minion $cp kubernetes/server/bin/kubectl binaries/ $echo ${KUBE_VERSION} > binaries/.kubernetes
4. 安裝
$ cd ../ $export nodes="ubuntu@10.1.9.2 ubuntu@10.1.9.3 ubuntu@10.1.9.4" $export role="ai i i" $export NUM_NODES=${NUM_NODES:-3} $export SERVICE_CLUSTER_IP_RANGE=192.168.3.0/24 $export FLANNEL_NET=172.16.0.0/16 $KUBERNETES_PROVIDER=ubuntu ./kube-up.sh