阅读官网的minikube安装手册,最简单方法是下载.exe进行安装,安装virtual-box,同时指定vm-driver为virtual-box。安装过程会下载ISO镜像,建立一个虚拟机,在虚拟机内搭建一个kubernetes单机环境,可以进行实验。
此过程本来是平滑的,但是由于GFW的存在,下载会异常艰难,代理是必须的(代理的配置方法略去)。
安装的指令
install kubectl
VirtualBox
minikube-installer.exe
minikube start --vm-driver=virtualbox
minikube dashboard
还有一种方法是手动安装好虚拟机,然后安装docker,dirver指定为none,也可以搭建一个简单的单机环境,这个过程也需要代理进行下载 。拉去docker镜像也会遇到问题,因为镜像在Google的网站托管的,配置docker的代理也是需要的(Linux和docker代理的方法也略去,也有手动下载镜像的例子,但是镜像太多,留给不能用代理但是有耐心的同志)。这种方法是我推荐的,会遇到dashboard不能启动的问题,但是其他的功能可以正常使用。
安装最大的问题是网络,当然搜索到的文章也需要仔细阅读和判断。
docker dirver
在虚拟机内容安装minikube。
https_proxy=<my proxy>
minikube start --driver=none --docker-env http_proxy=<my proxy> --docker-env https_proxy=<my proxy> --docker-env no_proxy=192.168.99.0/24
创建deployment和svc
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10
kubectl expose deployment hello-minikube --type=NodePort --port=8080
查看pod和svc
kubectl get pod
minikube service hello-minikube
Hello app
创建一个简单的应用测试一下。
minikube/server.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 web = http.createServer(handleRequest);
web.listen(8080);
minikube/Dockerfile
FROM node:6.14.2
EXPOSE 8080
COPY server.js .
CMD [ "node", "server.js" ]
biild image
构建docker镜像,已备后面使用。
docker build -t xx .
docker images
controllers/xx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: xx-deployment
labels:
app: node
spec:
replicas: 3
selector:
matchLabels:
app: node
template:
metadata:
labels:
app: node
spec:
containers:
- name: xx
image: xx
imagePullPolicy:IfNotPresent
ports:
- containerPort: 8080
YAML file deployment
将上面的配置写入文件,部署run起来。
kubectl apply -f xx.deploy.yaml
然后创建service(svc),查看service访问URL看到Hello world。
删除svc和deployment
kubectl delete services hello-minikube
kubectl delete deployment hello-minikube
集群查看状态,停止
查看执行的步骤,状态。如果发生错误,也可以干掉集群。
kubectl get events
minikube status
minikube stop
minikube delete
结语
至此一个简单的环境就搭建完毕,可以进行测试了。