本文中的Kubernetes集群是通过minikube在本地搭建的,这也是本地使用Kubernetes进行实验的最简单的方式,如果你还没有在本地搭建Kubernetes环境,具体教程请参考:使用Minikube本地安装Kubernetes集群
- 首先启动本地Kubernetes集群
$ minikube start
Starting local Kubernetes cluster...
Running pre-create checks...
Creating machine...
Starting local Kubernetes cluster...
- 指定镜像和端口运行一个名为hello-minikube的应用
$ kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.4 --port=8080
deployment "hello-minikube" created
以上命令成功运行了一个名为hello-minikube的应用,这个应用使用k8s.gcr.io/echoserver:1.4镜像,并且指定运行端口为8080。
上面这个命令本质上创建了一个Pod对象和一个Deployment对象。
Pod是Kubernetes操作的最小单元,一个Pod中可以运行一个或多个docker容器,这些容器共享这个Pod中的资源。更多关于Pod的介绍,请参考:Kubernetes对象之Pod。在本例中,此Pod中运行了一个容器,容器的镜像为k8s.gcr.io/echoserver:1.4,并且运行在Pod的8080端口。
Deployment对象能够对Pod进行管理,从而实现应用的滚动升级,扩容缩容等操作。更过关于Deployment的介绍,请参考:Kubernetes对象之Deployment。
使用
kubectl get pod
命令可以查看当前集群中的Pod。
- 将Deployment暴露为外部可访问的服务
kubectl expose deployment hello-minikube --type=NodePort
将hello-minikube应用对外暴露为Service。
第一步命令会创建一个名为hello-minikube的,类型为deployment的对象。此时应用已经在集群中运行了,然而Kubernetes只会为此应用分配一个集群内可访问的虚拟IP,如果想要从集群外访问,就必须将这个应用暴露为一个Service。--type=NodePort
参数指定了这个Service使用宿主机的端口来暴露服务。
更多关于Service的介绍,请参考:Kubernetes对象之Service。
- 查看hello-minikube service的url
$ minikube service hello-minikube --url
http://192.168.64.2:32354
- 访问hello-minikube service
$ curl http://192.168.64.2:32354
CLIENT VALUES:
client_address=192.168.99.1
command=GET
real path=/
至此,你的第一个Kubernetes应用就运行成功了!
可以通过
kubectl delete deployment hello-minikube
命令删除这个应用。
网友评论