准备 GKE 资源
对于功能齐全的 GitLab 实例,在部署 gitlab
chart 之前,您需要一些资源。以下是如何在 GitLab 中部署和测试这些 chart。
创建 GKE 集群
为了更轻松地开始,提供了一个脚本来自动创建集群。或者,也可以手动创建集群。
先决条件:
- 安装 先决条件。
- 安装 Google SDK。
使用脚本创建集群
一个 bootstrap 脚本已创建,自动化 GCP/GKE 上用户的大部分设置过程。
该脚本将:
- 创建一个新的 GKE 集群。
- 允许集群修改 DNS 记录。
- 设置
kubectl
,并连接到集群。
该脚本从环境变量中读取各种参数以及分别用于 bootstrap 和清理的参数 up
或 down
。
下表描述了所有变量。
变量 | 说明 | 默认值 |
---|---|---|
REGION | 您的集群所在的 Region | us-central1
|
ZONE_EXTENSION | 集群实例所在区域名称的扩展名(a 、b 、c )
| b
|
CLUSTER_NAME | 集群名称 | gitlab-cluster
|
CLUSTER_VERSION | 您的 GKE 集群的版本 | GKE 默认,查看 GKE 发版说明 |
MACHINE_TYPE | 集群实例类型 | n1-standard-4
|
NUM_NODES | 需要的节点数量 | 2 |
PROJECT | 您的 GCP 项目的 ID | 无默认值,需要设置 |
ADMIN_USER | 在设置期间分配集群管理员访问权限的用户 | 当前 gcloud 用户 |
RBAC_ENABLED | 如果您知道您的集群是否启用了 RBAC,请设置此变量。 | true |
PREEMPTIBLE | 更便宜,集群最多生存 24 小时。节点/磁盘上没有 SLA | false |
USE_STATIC_IP | 为 GitLab 创建静态 IP,而不是使用托管 DNS 的临时 IP | false |
INT_NETWORK | 要在此集群中使用的 IP 空间 | default |
SUBNETWORK | 要在此集群中使用的子网 | default |
通过传入所需的参数来运行脚本。 它可以使用默认参数,除了需要的 PROJECT
:
PROJECT=<gcloud project id> ./scripts/gke_bootstrap_script.sh up
该脚本还可用于清理创建的 GKE 资源:
PROJECT=<gcloud project id> ./scripts/gke_bootstrap_script.sh down
集群创建完成后,继续创建 DNS 条目。
手动创建集群
需要在 GCP 中创建两个资源,一个 Kubernetes 集群和一个外部 IP。
创建 Kubernetes 集群
要手动配置 Kubernetes 集群,请按照 GKE 说明。
- 我们推荐一个至少有 2 个节点的集群,每个节点有 4vCPU 和 15GB 的 RAM。
- 记下集群的 Region,在以下步骤中将需要它。
创建外部 IP
需要外部 IP 才能访问您的集群。外部 IP 需要是区域性的,并且与集群本身位于同一区域。全局 IP 或集群区域外的 IP 不起作用。
要创建固定 IP,运行以下命令:
gcloud compute addresses create ${CLUSTER_NAME}-external-ip --region $REGION --project $PROJECT
要获取新创建的 IP 的地址:
gcloud compute addresses describe ${CLUSTER_NAME}-external-ip --region $REGION --project $PROJECT --format='value(address)'
我们将在下一节中使用此 IP 与 DNS 名称绑定。
DNS 条目
如果您手动创建集群或在脚本创建中使用 USE_STATIC_IP
选项,您将需要一个公共域名,其中 A 记录通配符 DNS 条目指向我们刚刚创建的 IP。
按照 Google DNS 快速入门指南创建 DNS 条目。
下一步
一旦集群启动并运行,并且静态 IP 和 DNS 条目准备就绪,继续安装 chart。