Google Kubernetes Engine (GKE) 集群由 Kubernetes 开源集群管理系统提供支持。Kubernetes 为用户提供了与容器集群进行交互的机制。您可以使用 Kubernetes 命令和资源来部署和管理应用、执行管理任务、设置政策,以及监控您部署的工作负载的运行状况。
Google Cloud 上的 Kubernetes 运行 GKE 集群时,您还可以获享 Google Cloud 提供的高级集群管理功能所带来的好处,其中包括:
1.打开cloud shell,并设置project (如果默认连接成功则不需要)
gcloud config set project <Project ID>
2.设置默认计算可用区域
gcloud config set compute/zone <Zone>
3.启动新的GKE集群,要耗时几分钟,耐心等待
gcloud container clusters create --machine-type=e2-medium lab-cluster
输出结果如下:
创建集群后,您需要身份验证凭据才能与其交互,所以接下来获取身份验证凭据。
4.获取用于集群的身份验证凭据
gcloud container clusters get-credentials lab-cluster
输出结果如下所示:
5.将应用部署到集群中
GKE 使用 Kubernetes 对象创建和管理集群的资源。Kubernetes 提供了 Deployment 对象,用以部署网络服务器等无状态应用。Service 对象则用于定义从互联网访问您的应用时需要遵循的规则和负载平衡机制。
kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0
输出结果如下所示:
此 Kubernetes 命令kubectl
会创建一个代表 hello-server 的 Deployment 对象。在本例中,--image 指定了要部署的容器映像。该命令会从 Container Registry 存储分区中拉取示例映像。gcr.io/google-samples/hello-app:1.0 指定了要拉取的特定映像版本。如果未指定版本,则使用最新版本。
6.运行命令kubectl expose
以创建K8s Service
kubectl expose deployment hello-server --type=LoadBalancer --port 8080
在上面的命令中:
输出结果如下所示:
注意: 生成外部 IP 地址可能需要一分钟时间。如果 EXTERNAL-IP 列的状态为 pending,请再次运行上述命令。
7.运行 kubectl get
命令,以检查 hello-server Service:
kubectl get service
输出结果如下所示:
8.浏览器上访问http://[EXTERNAL-IP]:8080
,会获取到如下信息
9.删除集群,可能需要几分钟的时间
gcloud container clusters delete lab-cluster