单机部署

minikube

创建 Kubernetes cluster(单机版)最简单的方法是 minikube。国内网络环境下也可以考虑使用 kubeasz 的 AllInOne 部署。

首先下载 kubectl

  1. curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
  2. chmod +x kubectl

安装 minikube

  1. # install minikube
  2. $ brew cask install minikube
  3. $ brew install docker-machine-driver-xhyve
  4. # docker-machine-driver-xhyve need root owner and suid
  5. $ sudo chown root:wheel $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
  6. $ sudo chmod u+s $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve

最后启动 minikube

  1. # start minikube.
  2. # http proxy is required in China
  3. $ minikube start --docker-env HTTP_PROXY=http://proxy-ip:port --docker-env HTTPS_PROXY=http://proxy-ip:port --vm-driver=xhyve

使用 calico

minikube 支持配置使用 CNI 插件,这样可以方便的使用社区提供的各种网络插件,比如使用 calico 还可以支持 Network Policy。

首先使用下面的命令启动 minikube:

  1. minikube start --docker-env HTTP_PROXY=http://proxy-ip:port \
  2. --docker-env HTTPS_PROXY=http://proxy-ip:port \
  3. --network-plugin=cni \
  4. --host-only-cidr 172.17.17.1/24 \
  5. --extra-config=kubelet.ClusterCIDR=192.168.0.0/16 \
  6. --extra-config=proxy.ClusterCIDR=192.168.0.0/16 \
  7. --extra-config=controller-manager.ClusterCIDR=192.168.0.0/16

安装 calico 网络插件:

  1. curl -O -L https://docs.projectcalico.org/v3.0/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml
  2. sed -i -e '/nodeSelector/d' calico.yaml
  3. sed -i -e '/node-role.kubernetes.io\/master:""/d' calico.yaml
  4. sed -i -e 's/10\.96\.232/10.0.0/' calico.yaml
  5. kubectl apply -f calico.yaml

开发版

minikube/localkube 只提供了正式 release 版本,而如果想要部署 master 或者开发版的话,则可以用 hack/local-up-cluster.sh 来启动一个本地集群:

  1. cd $GOPATH/src/k8s.io/kubernetes
  2. export KUBERNETES_PROVIDER=local
  3. hack/install-etcd.sh
  4. export PATH=$GOPATH/src/k8s.io/kubernetes/third_party/etcd:$PATH
  5. hack/local-up-cluster.sh

打开另外一个终端,配置 kubectl:

  1. cd $GOPATH/src/k8s.io/kubernetes
  2. export KUBECONFIG=/var/run/kubernetes/admin.kubeconfig
  3. cluster/kubectl.sh

参考文档