单机部署

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
Copied!
安装 minikube(以 MacOS 为例)
1
# install minikube
2
$ brew cask install minikube
3
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-hyperkit
4
$ sudo install -o root -g wheel -m 4755 docker-machine-driver-hyperkit /usr/local/bin/
Copied!
在 Windows 上面
1
choco install minikube
2
choco install kubernetes-cli
Copied!
最后启动 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=hyperkit
Copied!

使用 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
Copied!
安装 calico 网络插件:
1
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml
2
curl -O -L https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml
3
sed -i -e '/nodeSelector/d' calico.yaml
4
sed -i -e '/node-role.kubernetes.io\/master:""/d' calico.yaml
5
sed -i -e 's/10\.96\.232/10.0.0/' calico.yaml
6
kubectl apply -f calico.yaml
Copied!

开发版

local-up-cluster.sh

minikube/localkube 只提供了正式 release 版本,而如果想要部署 master 或者开发版的话,则可以用 hack/local-up-cluster.sh 来启动一个本地集群:
1
cd $GOPATH/src/k8s.io/kubernetes
2
hack/local-up-cluster.sh
Copied!
打开另外一个终端,配置 kubectl:
1
cd $GOPATH/src/k8s.io/kubernetes
2
cluster/kubectl.sh get pods
3
cluster/kubectl.sh get services
4
cluster/kubectl.sh get replicationcontrollers
5
cluster/kubectl.sh run my-nginx --image=nginx --port=80
Copied!

Kind

使用 kind,以 Docker 容器的方式运行 Kubernetes 集群:
1
$ go get sigs.k8s.io/kind
2
# ensure that Kubernetes is cloned in $(go env GOPATH)/src/k8s.io/kubernetes
3
# build a node image
4
$ kind build node-image
5
# create a cluster with kind build node-image
6
$ kind create cluster --image kindest/node:latest
Copied!

参考文档

最近更新 1yr ago