docker第四天,安装k8s和minikube,简单部署nginx

安装

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

你可能感兴趣的:(docker第四天,安装k8s和minikube,简单部署nginx)