安装
- 通过
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
来进行访问