MacOS搭建方法其实为:
minikube(vm-driver=xhyve)
1、首先要安装docker客户端及xhyve
#安装Docker客户端 curl -Lo docker.tgz https://download.docker.com/mac/static/stable/x86_64/docker-17.09.0-ce.tgz #解压docker.tgz得到docker(我直接用了一个GUI工具解压的) chmod +x docker sudo mv docker/usr/local/bin/ #安装xhyve #https://brew.sh/ brew install docker-machine-driver-xhyve
2、下载minikube及kubectl
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.8.4/minikube-darwin-amd64 chmod +x minikube sudo mv minikube /usr/local/bin/ curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.8.4/bin/darwin/amd64/kubectl chmod +x kubectl sudo mv kubectl /usr/local/bin/
3、启动minikube
minikube version #直连方式 minikube start --vm-driver=xhyve #代理方式 minikube start --vm-driver=xhyve --docker-env HTTP_PROXY=http://ip:port --docker-env HTTPS_PROXY=http://ip:port
2、准备一个自己的docker虚拟机
Dockerfile
FROM node:6.12.0 EXPOSE 8080 COPY myserver.js . CMD node myserver.js
myserver.js
var http = require('http'); var handleRequest = function(request, response) { console.log('Received request for URL: ' + request.url); response.writeHead(200); response.end('Hello World!'); }; var www = http.createServer(handleRequest); www.listen(8080);
创建镜像
#设置minikube的docker环境 eval $(minikube docker-env) #构建image,镜像会构建到minikube开启的虚拟机中 docker build -t myserver:1.0.0 . #在minikube开启的虚拟机中运行container sudo docker run -itd --name=myserver -p8080:8080 myserver:1.0.0 #测试 wget ip:8080
5、用kubectl部署服务
#切换context kubectl config use-context minikube #进行一个部署 kubectl run hikub01 --image=myserver:1.0.0 --port=8080 #查看pods kubectl get pods #查看部署 kubectl get deployments #暴露服务 kubectl expose deployment hikub01 --type=LoadBalancer #查看服务 kubectl get services #查看服务信息 minikube service hikub01 #可以根据输出,在浏览器或wget访问服务
6、查看管理界面
minikube dashboard
7、清理
#退出minikube的docker环境 eval $(minikube docker-env -u) #删除服务 kubectl delete service hikub01 #删除部署 kubectl delete deployment hikub01 #停掉minikube minikube stop #清理全部下载的信息 minikube delete
常见问题:
1、如果一直无法创建pod,那就是无法从google下载需要的镜像,需要配置docker的代理
#查看pod状况 kubectl get pods #测试是否可以联通 curl --proxy "" https://cloud.google.com/container-registry/
2、有两种方法来解决
2.1、用代理的方法来解决
#测试代理是否可以联通 curl --proxy "http://ip:port" https://cloud.google.com/container-registry/ #如果代理可以联通,启动minkube时,就要指定代理了 minikube start --vm-driver=xhyve --docker-env HTTP_PROXY=http://ip:port --docker-env HTTPS_PROXY=http://ip:port
2.2、用国内镜像来解决
sudo docker pull registry.aliyuncs.com/archon/pause-amd64:3.0