GCP 上的高级 DC/OS

使用 Mesosphere Universal 安装工具在 GCP 上配置您的 DC/OS 安装

Mesosphere Universal 安装工具支持各种输入/变量,以便添加到您的 main.tf,并使您能够根据需要自定义您的 DC/OS 群集。这些输入/变量包括从指定操作系统(CentOS、Coreos、RHEL)到设置 DC/OS 群集的垃圾收集时间等各个项目。

基于 Terraform 的 Universal 安装工具旨在实现灵活的配置。下面是自定义 main.tf 的一个示例,在 Google Cloud Platform 上调配定制的 DC/OS 1.12.0 集群。

  1. module "dcos" {
  2. source = "dcos-terraform/dcos/gcp"
  3. version = "~> 0.1.0"
  4. cluster_name = "mydcoscluster"
  5. ssh_public_key_file = "~/.ssh/id_rsa.pub"
  6. admin_ips = ['198.51.100.0/24']
  7. dcos_version = "1.11.4"
  8. num_masters = "3"
  9. num_private_agents = "2"
  10. num_public_agents = "1"
  11. dcos_cluster_docker_credentials_enabled = "true"
  12. dcos_cluster_docker_credentials_write_to_etc = "true"
  13. dcos_cluster_docker_credentials_dcos_owned = "false"
  14. dcos_cluster_docker_registry_url = "https://index.docker.io"
  15. dcos_use_proxy = "yes"
  16. dcos_http_proxy = "example.com"
  17. dcos_https_proxy = "example.com"
  18. dcos_no_proxy = <<EOF
  19. # YAML
  20. - "internal.net"
  21. - "169.254.169.254"
  22. EOF
  23. dcos_overlay_network = <<EOF
  24. # YAML
  25. vtep_subnet: 44.128.0.0/20
  26. vtep_mac_oui: 70:B3:D5:00:00:00
  27. overlays:
  28. - name: dcos
  29. subnet: 12.0.0.0/8
  30. prefix: 26
  31. EOF
  32. dcos_rexray_config = <<EOF
  33. # YAML
  34. rexray:
  35. loglevel: warn
  36. modules:
  37. default-admin:
  38. host: tcp://127.0.0.1:61003
  39. storageDrivers:
  40. - ec2
  41. volume:
  42. unmount:
  43. ignoreusedcount: true
  44. EOF
  45. dcos_cluster_docker_credentials = <<EOF
  46. # YAML
  47. auths:
  48. 'https://index.docker.io/v1/':
  49. auth: Ze9ja2VyY3licmljSmVFOEJrcTY2eTV1WHhnSkVuVndjVEE=
  50. EOF
  51. # dcos_variant = "ee"
  52. # dcos_license_key_contents = "${file("./license.txt")}"
  53. dcos_variant = "open"
  54. }

以下是 Universal 安装工具上支持的所有变量的列表,可供您自定义群集。

输入

名称描述类型默认值是否必需
admin_ipsCIDR 管理 IP 的列表。列表-
availability_zones要使用的可用性区域。列表<list>
bootstrap_gcp_image[BOOTSTRAP] 要使用的镜像。字符串</td><td>否</td></tr><tr><td>bootstrap_machine_type</td><td>[BOOTSTRAP] 机器类型。</td><td>字符串</td><td><code>n1-standard-2</code></td><td>否</td></tr><tr><td>bootstrap_os</td><td>[BOOTSTRAP] 要使用的操作系统。您可以使用所提供的操作系统,而不一定使用您自己的 AMI。</td><td>字符串</td><td>
bootstrap_private_ip用于 bootstrap URL 的专用 IP。字符串</td><td>否</td></tr><tr><td>bootstrap_root_volume_size</td><td>[BOOTSTRAP] Root 卷大小,单位为 GB。</td><td>字符串</td><td><code>80</code></td><td>否</td></tr><tr><td>bootstrap_root_volume_type</td><td>[BOOTSTRAP] Root 卷类型。</td><td>字符串</td><td><code>pd-standard</code></td><td>否</td></tr><tr><td>cluster_name</td><td>DC/OS 群集的名称。</td><td>字符串</td><td><code>dcos-example</code></td><td>否</td></tr><tr><td>cluster_name_random_string</td><td>将随机字符串添加到群集名称。</td><td>字符串</td><td><code>false</code></td><td>否</td></tr><tr><td>custom_dcos_download_path</td><td>插入 DC/OS 安装工具脚本的位置。(可选)</td><td>字符串</td><td>
dcos_adminrouter_tls_1_0_enabled指示是否在 Admin Router 中启用 TLSv1 支持。(可选)字符串</td><td>否</td></tr><tr><td>dcos_adminrouter_tls_1_1_enabled</td><td>指示是否在 Admin Router 中启用 TLSv1.1 支持。(可选)</td><td>字符串</td><td>
dcos_adminrouter_tls_1_2_enabled指示是否在 Admin Router 中启用 TLSv1.2 支持。(可选)字符串</td><td>否</td></tr><tr><td>dcos_adminrouter_tls_cipher_suite</td><td>[企业 DC/OS] 指示是否允许 Web 浏览器通过非 HTTPS 连接发送 DC/OS 身份认证 cookie。(可选)</td><td>字符串</td><td>
dcos_agent_list用于列出 config.yaml 中的代理。(可选)字符串</td><td>否</td></tr><tr><td>dcos_audit_logging</td><td>[企业 DC/OS] 能够为 Mesos、Marathon 和作业记录安全决策。(可选)</td><td>字符串</td><td>
dcos_auth_cookie_secure_flag[企业 DC/OS] 允许 Web 浏览器通过非 HTTPS 连接发送 DC/OS 身份认证 cookie。(可选)字符串</td><td>否</td></tr><tr><td>dcos_aws_access_key_id</td><td>Exhibitor 存储的 AWS 密钥 ID。(可选,但使用 <code>dcos_exhibitor_address</code> 时为必需)</td><td>字符串</td><td>
dcos_aws_regionExhibitor 存储的 AWS 区域。(可选,但使用 dcos_exhibitor_address 时为必需)字符串</td><td>否</td></tr><tr><td>dcos_aws_secret_access_key</td><td>Exhibitor 存储的 AWS 秘密密钥 ID。(可选,但使用 <code>dcos_exhibitor_address</code> 时为必需)</td><td>字符串</td><td>
dcos_aws_template_storage_key_idCloudFormation 模板存储的 AWS 密钥 ID。(可选)字符串</td><td>否</td></tr><tr><td>dcos_aws_template_storage_bucket</td><td>AWS CloudFormation bucket 名称。(可选)</td><td>字符串</td><td>
dcos_aws_template_storage_bucket_pathAWS CloudFormation bucket 路径。(可选)字符串</td><td>否</td></tr><tr><td>dcos_aws_template_storage_region_name</td><td>AWS CloudFormation 区域名称。(可选)</td><td>字符串</td><td>
dcos_aws_template_storage_secret_access_keyCloudFormation 模板的 AWS 秘密密钥。(可选)字符串</td><td>否</td></tr><tr><td>dcos_aws_template_upload</td><td>将自定义高级模板自动上传到您的 S3 bucket。(可选)</td><td>字符串</td><td>
dcos_bootstrap_port用于指定 bootstrap URL 的端口。字符串80
dcos_bouncer_expiration_auth_token_days[企业 DC/OS] 设置身份和访问管理的授权令牌生存时间值 (TTL)。(可选)字符串</td><td>否</td></tr><tr><td>dcos_ca_certificate_chain_path</td><td>[企业 DC/OS] 到包含完整 CA 证书链文件的路径(相对于 $DCOS_INSTALL_DIR),该证书链是终端实体证书验证所需的,采用 OpenSSL PEM 格式。(可选)</td><td>字符串</td><td>
dcos_ca_certificate_key_path字符串</td><td>否</td></tr><tr><td>dcos_ca_certificate_path</td><td>[企业 DC/OS] 到包含单个 X.509 CA 证书文件的路径(相对于 $DCOS_INSTALL_DIR),该证书采用 OpenSSL PEM 格式。(可选)</td><td>字符串</td><td>
dcos_check_time检查在 DC/OS 启动过程中是否启用网络时间协议 (NTP)。(可选)字符串</td><td>否</td></tr><tr><td>dcos_cluster_docker_credentials</td><td>要传递的 Docker 凭据的词典。(可选)</td><td>字符串</td><td>
dcos_cluster_docker_credentials_dcos_owned表示是否在 /opt/mesosphere/etc/mesosphere/docker_credentials 中存储凭据文件。sysadmin 无法直接编辑 /opt/mesosphere。(可选)字符串</td><td>否</td></tr><tr><td>dcos_cluster_docker_credentials_enabled</td><td>表示是否向 Mesos 传递 Mesos <code>--docker_config</code> 选项。(可选)</td><td>字符串</td><td>
dcos_cluster_docker_credentials_write_to_etc表示是否写入群集凭据文件。(可选)字符串</td><td>否</td></tr><tr><td>dcos_cluster_docker_registry_enabled</td><td></td><td>字符串</td><td>
dcos_cluster_docker_registry_urlMesos 用来从中拉取 Docker 镜像的自定义 URL。如果设置,则会将 Mesos 的 —docker_registry 标记配置为指定的 URL。(可选)字符串</td><td>否</td></tr><tr><td>dcos_cluster_name</td><td>设置 DC/OS 群集名称。</td><td>字符串</td><td>
dcos_config用于在 config.yaml 中添加未在此指定的任何额外参数。(可选)字符串</td><td>否</td></tr><tr><td>dcos_custom_checks</td><td>添加到默认检查配置流程的自定义安装检查。(可选)</td><td>字符串</td><td>
dcos_customer_key[企业 DC/OS] 设置客户密钥。(可选)字符串</td><td>否</td></tr><tr><td>dcos_dns_bind_ip_blacklist</td><td>DC/OS DNS 解析器无法绑定的 IP 地址列表。(可选)</td><td>字符串</td><td>
dcos_dns_forward_zones允许将 DNS 到某些域的请求转发到特定服务器。以下语法 必须与 Terraform string heredoc 结合使用。(可选) (:warning: DC/OS 1.10+)字符串</td><td>否</td></tr><tr><td>dcos_dns_search</td><td>输入不合格域时尝试的域列表(以空格隔开)。(可选)</td><td>字符串</td><td>
dcos_docker_remove_delay删除存储在代理节点上的陈旧 Docker 镜像和由安装工具生成的 Docker 镜像之前等待的时间。(可选)字符串</td><td>否</td></tr><tr><td>dcos_enable_docker_gc</td><td>指示是否运行 <code>docker-gc</code> 脚本,一个简单的 Docker 容器和镜像垃圾回收脚本,每小时清理一次失散的 Docker 容器。(可选)</td><td>字符串</td><td>
dcos_enable_gpu_isolation指示是否在 DC/OS 中启用 GPU 支持。(可选)字符串</td><td>否</td></tr><tr><td>dcos_exhibitor_address</td><td>管理节点前面负载均衡器的地址。(建议)</td><td>字符串</td><td>
dcos_exhibitor_azure_account_keyExhibitor 存储的 Azure 帐户密钥。(可选,但使用 dcos_exhibitor_address 时为必需)字符串</td><td>否</td></tr><tr><td>dcos_exhibitor_azure_account_name</td><td>Exhibitor 存储的 Azure 帐户名称。(可选,但使用 <code>dcos_exhibitor_address</code> 时为必需)</td><td>字符串</td><td>
dcos_exhibitor_azure_prefixExhibitor 存储的 Azure 帐户名称。(可选,但使用 dcos_exhibitor_address 时为必需)字符串</td><td>否</td></tr><tr><td>dcos_exhibitor_explicit_keys</td><td>设置您是否使用 AWS API 密钥授予 Exhibitor 访问 S3 的权限。(可选)</td><td>字符串</td><td>
dcos_exhibitor_storage_backend选项为 aws_s3azurezookeeper(建议)字符串static
dcos_exhibitor_zk_hosts一个或多个 Zookeeper 节点 IP 和端口地址的逗号分隔列表,用于配置内部 Exhibitor 实例。(不建议,但 exhibitor_storage_backend 设置为 zookeeper 时为必选。改用 aws_s3azure。假设外部 ZooKeeper 已经在线。)字符串</td><td>否</td></tr><tr><td>dcos_exhibitor_zk_path</td><td>Exhibitor 用来存储数据的文件路径。(不建议,但 <code>exhibitor_storage_backend</code> 设置为 <code>zookeeper</code> 时为必选。改用 <code>aws_s3</code> 或 <code>azure</code>。假设外部 ZooKeeper 已经在线。)</td><td>字符串</td><td>
dcos_fault_domain_detect_contents[企业 DC/OS] 故障域脚本内容。可选,但如果不存在 fault-domain-detect 脚本,则为必选。字符串</td><td>否</td></tr><tr><td>dcos_fault_domain_enabled</td><td>[企业 DC/OS] 用于控制是否启用故障域。</td><td>字符串</td><td>
dcos_gc_delay清理执行器目录之前等待的最长时间(可选)字符串</td><td>否</td></tr><tr><td>dcos_gpus_are_scarce</td><td>指示是否将 GPU 视为群集中的稀缺资源。(可选)</td><td>字符串</td><td>
dcos_http_proxyhttp 代理。(可选)字符串</td><td>否</td></tr><tr><td>dcos_https_proxy</td><td>https 代理。(可选)</td><td>字符串</td><td>
dcos_install_mode指定要执行的命令类型。选项:installupgrade字符串install
dcos_instance_os要使用的操作系统。您可以使用所提供的操作系统,而不一定使用您自己的 AMI。字符串centos_7.5
dcos_ip_detect_contents允许 DC/OS 检测您的专用地址。使用此项,作为输入传递给模块,而不是您的 bootstrap 节点内的文件。(建议)字符串</td><td>否</td></tr><tr><td>dcos_ip_detect_public_contents</td><td>允许 DC/OS 知道您的公共可路由地址,以便于使用(建议)</td><td>字符串</td><td>
dcos_ip_detect_public_filename静态设置您的 detect-ip-public 路径字符串genconf/ip-detect-public
dcos_l4lb_enable_ipv6布尔值,表示第 4 层负载均衡是否可用于 IPv6 网络。(可选)字符串</td><td>否</td></tr><tr><td>dcos_license_key_contents</td><td>[企业 DC/OS] 用于提供企业版 DC/OS 的许可证密钥。如果 bootstrap 节点上存在 <code>license.txt</code> ,则为可选。</td><td>字符串</td><td>
dcos_log_directory从 SSH 进程到安装工具主机日志的路径。(可选)字符串</td><td>否</td></tr><tr><td>dcos_master_discovery</td><td>Mesos 管理节点发现方法。可用选项是 <code>static</code> 或 <code>master_http_loadbalancer</code>。(建议使用 <code>master_http_loadbalancer</code>)</td><td>字符串</td><td><code>static</code></td><td>否</td></tr><tr><td>dcos_master_dns_bindall</td><td>指示管理节点 DNS 端口是否打开。(可选)</td><td>字符串</td><td>
dcos_master_external_loadbalancer[企业 DC/OS] 允许 DC/OS 围绕外部负载均衡器名称配置证书。如果未使用,则会出现 SSL 验证问题。(建议)字符串</td><td>否</td></tr><tr><td>dcos_master_list</td><td>静态设置管理节点(不建议,但 <code>exhibitor_storage_backend</code> 设置为 <code>static</code> 时为必选。改用 <code>aws_s3</code> 或 <code>azure</code>,这样您可以在云中更改管理节点。)</td><td>字符串</td><td>
dcos_mesos_container_log_sink容器(任务)的日志管理器。选项是将日志发送到:‘journald’、‘logrotate’、‘journald+logrotate’。(可选)字符串</td><td>否</td></tr><tr><td>dcos_mesos_dns_set_truncate_bit</td><td>指示在响应过大而无法放入单个数据包时,是否设置截断数位。(可选)</td><td>字符串</td><td>
dcos_mesos_max_completed_tasks_per_frameworkMesos 管理节点在内存中保留的每个框架的完成任务数。(可选)字符串</td><td>否</td></tr><tr><td>dcos_no_proxy</td><td>从代理中排除的地址的 YAML 嵌套列表 (-)。(可选)</td><td>字符串</td><td>
dcos_num_masters设置管理节点的数量(exhibitor_storage_backend 设置为 aws_s3azurezookeeper 时为必需项)字符串</td><td>否</td></tr><tr><td>dcos_oauth_enabled</td><td>[仅开源 DC/OS] 指示是否为群集启用身份认证。(可选)</td><td>字符串</td><td>
dcos_overlay_config_attempts指定配置尝试失败多少次之后,覆盖配置模块才会停止尝试配置虚拟网络。(可选)字符串</td><td>否</td></tr><tr><td>dcos_overlay_enable</td><td>启用以禁用覆盖。(可选)</td><td>字符串</td><td>
dcos_overlay_mtu在覆盖层上启动的容器中,虚拟以太网 (vEth) 的最大传输单元 (MTU)。(可选)字符串</td><td>否</td></tr><tr><td>dcos_overlay_network</td><td>这组参数定义 DC/OS 的虚拟网络。(可选)</td><td>字符串</td><td>
dcos_package_storage_uri永久存储 DC/OS 包的位置。值必须是一个文件 URL。(可选)字符串</td><td>否</td></tr><tr><td>dcos_previous_version</td><td>DC/OS 1.9+ 要求用户设置此值,以确保用户知道该版本。Terraform 可帮助填充此值,但用户可以在此处覆盖。(建议)</td><td>字符串</td><td>
dcos_previous_version_master_index用于跟踪主站的索引,以便在升级过程中查询以前的 DC/OS 版本。(可选)适用:1.9+字符串0
dcos_process_timeout在进程分叉之后等待开始操作的时间(以秒为单位)。(可选)字符串</td><td>否</td></tr><tr><td>dcos_public_agent_list</td><td>静态设置您的公共代理。(不建议)</td><td>字符串</td><td>
dcos_resolversDC/OS 群集节点 DNS 解析器的 YAML 嵌套列表 (-)。(建议)字符串</td><td>否</td></tr><tr><td>dcos_rexray_config</td><td>用于在 Marathon 中启用外部持久卷的 REX-Ray 配置方法。(可选)</td><td>字符串</td><td>
dcos_rexray_config_filename用于在 Marathon 中启用外部持久卷的 REX-Ray 配置文件名。(可选)字符串</td><td>否</td></tr><tr><td>dcos_rexray_config_method</td><td>用于在 Marathon 中启用外部持久卷的 REX-Ray 配置方法。(可选)</td><td>字符串</td><td>
dcos_s3_bucketExhibitor 后端的 S3 bucket 名称。(建议,但使用 dcos_exhibitor_address 时为必需)字符串</td><td>否</td></tr><tr><td>dcos_s3_prefix</td><td>Exhibitor 后端的 S3 前缀的名称。(建议,但使用 <code>dcos_exhibitor_address</code> 时为必需项)</td><td>字符串</td><td>
dcos_security[企业 DC/OS] 设置 DC/OS 的安全级别。默认值为 permissive。(建议)字符串</td><td>否</td></tr><tr><td>dcos_skip_check</td><td>升级选项:用于跳过所有 DC/OS 检查,如果任何 DC/OS 组件运行不正常,这些检查可能阻止升级。(可选)适用:1.10+</td><td>字符串</td><td><code>false</code></td><td>否</td></tr><tr><td>dcos_staged_package_storage_uri</td><td>添加 DC/OS 包时的临时存储位置。(可选)</td><td>字符串</td><td>
dcos_superuser_password_hash[企业 DC/OS] 设置超级用户密码哈希值。(建议)字符串</td><td>否</td></tr><tr><td>dcos_superuser_username</td><td>[企业 DC/OS] 设置超级用户的用户名。(建议)</td><td>字符串</td><td>
dcos_telemetry_enabled更改遥测选项。(可选)字符串</td><td>否</td></tr><tr><td>dcos_ucr_default_bridge_subnet</td><td>分配给 mesos 桥接 CNI 网络,供 UCR 构建桥接模式网络的 IPv4 子网。(可选)</td><td>字符串</td><td>
dcos_use_proxy启用对内部路由代理的使用。(可选)字符串</td><td>否</td></tr><tr><td>dcos_variant</td><td>主要变量。</td><td>字符串</td><td><code>open</code></td><td>否</td></tr><tr><td>dcos_version</td><td>指定要使用哪个 DC/OS 版本说明。选项:<code>1.9.0</code>、<code>1.8.8</code> 等。参见 <a href="https://github.com/dcos/tf_dcos_core/blob/master/variables.tf">dcos_download_path</a> 或 <a href="https://github.com/dcos/tf_dcos_core/tree/master/dcos-versions">dcos_version</a> 树,获得完整列表。</td><td>字符串</td><td><code>1.11.4</code></td><td>否</td></tr><tr><td>dcos_zk_agent_credentials</td><td>[企业 DC/OS] 设置 ZooKeeper 代理节点凭据。(建议)</td><td>字符串</td><td>
dcos_zk_master_credentials[企业 DC/OS] 设置 ZooKeeper 管理节点凭据。(建议)字符串</td><td>否</td></tr><tr><td>dcos_zk_super_credentials</td><td>[企业 DC/OS] 设置 ZooKeeper 超级凭据。(建议)</td><td>字符串</td><td>
labels向所有资源添加自定义标签。映射<map>
masters_gcp_image[管理节点] 要使用的镜像。字符串</td><td>否</td></tr><tr><td>masters_machine_type</td><td>[管理节点] 机器类型。</td><td>字符串</td><td><code>n1-standard-4</code></td><td>否</td></tr><tr><td>masters_os</td><td>[管理节点] 要使用的操作系统。您可以使用所提供的操作系统,而不一定使用您自己的 AMI。</td><td>字符串</td><td>
master_root_volume_size[管理节点] Root 卷大小,单位为 GB。字符串120
num_masters指定管理节点数。为实现重复数据备份,您至少应有 3 个。字符串3
num_of_private_agents字符串</td><td>否</td></tr><tr><td>num_of_public_agents</td><td></td><td>字符串</td><td>
num_private_agent指定专用代理的数量。这些代理将提供您的主要资源。字符串2
num_public_agent指定公共代理的数量。这些代理将承载 marathon-lb 和 edgelb。字符串1
private_agents_gcp_image[专用代理] 要使用的镜像。字符串</td><td>否</td></tr><tr><td>private_agents_machine_type</td><td>[专用代理] 机器类型。</td><td>字符串</td><td><code>n1-standard-4</code></td><td>否</td></tr><tr><td>private_agents_os</td><td>[专用代理] 要使用的操作系统。您可以使用所提供的操作系统,而不一定使用您自己的 AMI。</td><td>字符串</td><td>
private_agents_root_volume_size[专用代理] Root 卷大小,单位为 GB。字符串120
private_agents_root_volume_type[专用代理] Root 卷类型。字符串pd-ssd
public_agents_additional_ports允许在公共代理上公开访问的其他端口列表。(默认情况下 80 和 443 打开)字符串<list>
public_agents_gcp_image[公共代理] 要使用的镜像。字符串</td><td>否</td></tr><tr><td>public_agents_machine_type</td><td>[公共代理] 机器类型。</td><td>字符串</td><td><code>n1-standard-4</code></td><td>否</td></tr><tr><td>public_agents_os</td><td>[公共代理] 要使用的操作系统。您可以使用所提供的操作系统,而不一定使用您自己的 AMI。</td><td>字符串</td><td>
public_agent_root_volume_size[公共代理] Root 卷大小。字符串120
public_agents_root_volume_type[公共代理] 指定 root 卷类型。字符串pd-ssd
ssh_public_key要与实例一起使用的 SSH 公钥,采用授权密钥格式(例如 ‘ssh-rsa …’)。确保您将此密钥添加到您的 SSH 代理。字符串``
ssh_public_key_fileSSH 公钥的路径。这是必填项,但是,如果您想使用 ssh_public_key 连同密钥作为字符串,则可将其设为空字符串。字符串-

输出

名称说明
master-ips管理节点 IP 地址。
masters-loadbalancer这是用来访问 DC/OS UI 的负载均衡器地址。
public-agents-loadbalancer这是用来访问 DC/OS 公共代理的负载均衡器地址。