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