docker第四天,安装k8s和minikube,简单部署ngi
2017-08-23 本文已影响0人
LOC_Thomas
安装
- 通过
brew install docker-machine-driver-xhyve来安装minikube - 通过
brew install kubectl来安装kubectl
启动minikube
- 通过命令
minikube start --vm-driver=xhyve来启动minikube - 通过命令
kubectl get services来查看启动的服务, 应该可以看到kubernetes 10.0.0.1 <none> 443/TCP 12m, 表示kubernetes已经被启动起来 - 通过命令
kubectl get pods来查看启动的pods, 这个时候应该没有任何东西 - 通过kubectl来启动nginx服务
kubectl run --image=nginx nginx-app --port=80 - 然后通过
kubectl get pods会发现nginx-app-1666850838-pfr2s 0/1 ContainerCreating 0 5m,表示一直在ContainerCreating状态 - 通过
kubectl describe pod nginx-app-1666850838-pfr2s可以发现有错误Error syncing pod - 通过
minikube logs可以发现unable to pull sandbox image "gcr.io/google_containers/pause-amd64:3.0"错误, 在网上查了一下可以发现是由于GFW的原因下载不了 - 执行
minikube ssh进入到 minikube,然后执行docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0来指定阿里云的仓库下载google-containers/pause-amd64:3.0, 然后通过命令docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0 gcr.io/google_containers/pause-amd64:3.0来打tag到本地 - 删掉之前的pod,然后通过describe命令,就可以看到在pull nginx,一段时间之后,
kubectl get pods会发现状态变成了nginx-app-1666850838-03h7g 0/1 running 0 1m - 但是执行命令
kubectl get services发现,service还是只有nginx,所以执行kubectl expose deployment nginx-app --port=80 --name=nginx-http --type=NodePort通过NodePort模式暴露一个新的服务,然后通过kubectl get services可以得到nginx-http 10.0.0.73 <nodes> 80:30716/TCP 2s - 通过
kubectl cluster-info来得到Kubernetes master is running at https://192.168.64.2:8443, 然后执行curl '192.168.64.2:30716'就可以访问到nginx了, 或者通过minikube service nginx-http来进行访问