Google | GCP Google Kubernetes Engine 集群实战

1,380 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第6天,点击查看活动详情

GKE 集群介绍

Google Kubernetes Engine (GKE) 集群由 Kubernetes 开源集群管理系统提供支持。Kubernetes 为用户提供了与容器集群进行交互的机制。您可以使用 Kubernetes 命令和资源来部署和管理应用、执行管理任务、设置政策,以及监控您部署的工作负载的运行状况。

K8s 带来的好处

  • 自动管理
  • 对应用容器进行监控和活跃性探测
  • 自动扩缩
  • 滚动更新

Google Cloud 上的 Kubernetes 运行 GKE 集群时,您还可以获享 Google Cloud 提供的高级集群管理功能所带来的好处,其中包括:

  • 针对 Compute Engine 实例提供的负载平衡功能
  • 节点池(可用于在集群中指定节点子集以提高灵活性)
  • 自动扩缩集群的节点实例数量
  • 自动升级集群的节点软件
  • 节点自动修复,以保持节点的正常运行和可用性
  • 利用 Cloud Monitoring 进行日志记录和监控,让您可以清楚了解自己集群的状况

使用 GKE 编排集群

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

输出结果如下:

image.png

创建集群后,您需要身份验证凭据才能与其交互,所以接下来获取身份验证凭据。

4.获取用于集群的身份验证凭据

gcloud container clusters get-credentials lab-cluster 

输出结果如下所示:

image.png

5.将应用部署到集群中

GKE 使用 Kubernetes 对象创建和管理集群的资源。Kubernetes 提供了 Deployment 对象,用以部署网络服务器等无状态应用。Service 对象则用于定义从互联网访问您的应用时需要遵循的规则和负载平衡机制。

kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0

输出结果如下所示:

image.png

此 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

在上面的命令中:

  • --port 指定了该容器公开的端口。
  • type="LoadBalancer" 表示为您的容器创建一个 Compute Engine 负载平衡器。

输出结果如下所示:

image.png

注意: 生成外部 IP 地址可能需要一分钟时间。如果 EXTERNAL-IP 列的状态为 pending,请再次运行上述命令。

7.运行 kubectl get 命令,以检查 hello-server Service:

kubectl get service

输出结果如下所示:

image.png

8.浏览器上访问http://[EXTERNAL-IP]:8080,会获取到如下信息

image.png

9.删除集群,可能需要几分钟的时间

gcloud container clusters delete lab-cluster