Azure 上的高级 DC/OS

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

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

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

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

输出

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