什么是GKE
GKE(Google Kubernetes Engine)是 Google Cloud 提供的容器管理服务,它基于 Kubernetes 构建,可以帮助您轻松部署、管理和扩展容器化的应用程序。您可以把它想象成一个强大的“容器编排大师”,让您的应用在云端高效、稳定地运行。GKE 简化了 Kubernetes 的复杂性,让您专注于应用开发,而无需花费大量精力在底层基础设施的管理上。它提供了自动伸缩、自动修复、滚动更新等功能,确保您的应用始终可用并保持最佳性能。简单来说,GKE 就是一个托管的 Kubernetes 服务。
一句话就是Google 在GCP上装好了k8s 让你使用
为什么选择GKE
既然是k8s, 那么不自己在gcp上的vm自己搭建? GKE到底提供了什么inhouse build k8s 没有的功能?
- 不再需要搭建k8s 平台软件(安装过的都知道有多烦)而无需手动配置和管理底层基础设施。包括后续的版本升级
- 强大的可伸缩性和弹性:
自动伸缩: GKE 可以根据应用程序的负载自动调整集群的大小,确保应用程序始终具有足够的资源。
自动修复: GKE 会自动检测并修复集群中的故障,确保应用程序的持续可用性。
区域集群: GKE 支持区域集群,可以将集群部署在多个可用区中,从而提高应用程序的可用性和容错能力。
3.与 Google Cloud Platform 的深度集成:
集成的身份验证和授权: GKE 与 Google Cloud IAM 集成,可以轻松管理集群的访问权限。
集成的日志记录和监控: GKE 与 Google Cloud Logging 和 Monitoring 集成,可以集中收集和分析集群的日志和指标。
集成的网络: GKE 与 Google Cloud VPC 集成,可以轻松创建安全的网络环境。
至于使用方法与inhouse build k8s一样, 用kubectl 可轻松管理。
而且gcp 提供一个基本的cluster /pod 管理ui

什么是GKE private cluster
GKE Private Cluster(私有集群)
GKE Private Cluster 是一种 Kubernetes 集群,它与公共互联网隔离。这意味着集群中的节点没有公共 IP 地址,并且只能通过内部网络访问。
总的来说,GKE Private Cluster 通过限制对公共互联网的访问来增强安全性,但同时也增加了配置和管理的复杂性
一些区别:
| item | master | nodes vm |
|---|---|---|
| normal cluster | 具有public ip endpoint | 每个node 都有public ip |
| private cluster | 两种都支持, 是否具有public endpoint 基于用户配置 | 没有public ip, 外部不能直接访问node vm |
由于public cluster 每个node 都是创建在gce里的, 都分配public ip的话 需要一笔额外的cost, 本文 不考虑这个方案
至于 private cluster 也有两种:
一种是master 节点也没有public endpoint, 这样整个集群都在内网, 一般需要设置堡垒机才能访问master, 本文也不考虑这个方案
另一种是master 节点具有public endpiont, nodes是没有的, 本文关注的是这个方案
创建一个空的github terrform 项目
https://github.com/nvd11/terraform-gke-private-cluster2
之后准备好backend.tf 和provider.tf 两个关键配置
backend.tf
terraform {
backend "gcs" {
bucket = "jason-hsbc"
prefix = "terraform/my-cluster2/state"
}
}
provider.tf
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "~> 7.0.0"
}
}
}
provider "google" {
project = var.project_id
region = var.region_id
zone = var.zone_id
}
再准备variables.tf
variable "project_id" {
description = "The ID of the project"
default = "jason-hsbc"
type = string
}
variable "region_id" {
description = "The region of the project"
default = "europe-west2"
type = string
}
variable "zone_id" {
description =

最低0.47元/天 解锁文章
3146

被折叠的 条评论
为什么被折叠?



