具有私有 IP 的 AWS Gitlab Autoscale 运行器,不想启用公共 IP

Posted

技术标签:

【中文标题】具有私有 IP 的 AWS Gitlab Autoscale 运行器,不想启用公共 IP【英文标题】:AWS Gitlab Autoscale runner with private IP, don't want to enable Public IP 【发布时间】:2022-01-11 22:10:36 【问题描述】:

在 AWS 中,具有私有 IP 的 Gitlab Autoscale 运行器,不想启用公共 IP。 目前我们的 Gitlab Autoscale 运行器配置了公共 IP,因此 Runner Hub 通过自动扩展运行器的公共 IP 连接。为此,我们在安全组中打开所有 TCP 端口。 为了避免这种情况,是否可以停止使用公共 IP 并使用私有 IP 来连接 Gitlab Hub 和自动缩放运行器?

concurrent = 100
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "aws-abc-runner-autoscale"
  limit = 110
  url = "https://git.abc-example.in/"
  token = "xxxxxxxxxxxx"
  executor = "docker+machine"
  environment = ["DOCKER_AUTH_CONFIG= \"auths\":  \"docker.dev.abc.com\":  \"auth\": \"################################################\" , \"silicon.docker.dev.abc.com\":  \"auth\": \"################################################\" , \"cde.dev.abc.com\":  \"auth\": \"################################################\" , \"abcde.azurecr.io\":  \"auth\": \"##########################################\" , \"efghijk.azurecr.io\":  \"auth\": \"###################################################\"   "]
  [runners.custom_build_dir]
    enabled = true
  [runners.cache]
    Type = "s3"
    Shared = true
    [runners.cache.s3]
      ServerAddress = "ip-172-31-11-12.eu-central-1.compute.internal:9005"
      AccessKey = "xxxxxxxxxx"
      SecretKey = "xxxxxxxxxx"
      BucketName = "runner-autoscale"
      Insecure = true
  [runners.docker]
    tls_verify = false
    image = "docker:latest"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/var/run/docker.sock:/var/run/docker.sock"]
    shm_size = 0
  [runners.machine]
    IdleCount = 4
    IdleTime = 300
    MachineDriver = "amazonec2"
    MachineName = "abcdev-runners-%s"
    MachineOptions = ["amazonec2-ami=ami-08a1a615784dd1c82f", "amazonec2-region=eu-central-1", "amazonec2-zone=b", "amazonec2-vpc-id=vpc-0f458d68", "amazonec2-subnet-id=subnet-c23438b8", "amazonec2-instance-type=t3.xlarge", "amazonec2-root-size=250", "amazonec2-volume-type=gp2", "amazonec2-use-private-address=true"]
    OffPeakTimezone = ""
    OffPeakIdleCount = 0
    OffPeakIdleTime = 0

谁能提供我们如何实现相同的功能。

【问题讨论】:

【参考方案1】:

根据您的设置方式,您的跑步者不需要从您的 GitLab 实例通过网络访问,因此让他们拥有私有 IP 就像将您在 amazonec2-subnet-id 中设置的子网更改为一样简单是一个不分配公共IP的人。请注意,您的私有子网需要连接一个 NAT 网关才能访问您的 GitLab 实例,或者配置为使用内部 vpc 网络。

【讨论】:

以上是关于具有私有 IP 的 AWS Gitlab Autoscale 运行器,不想启用公共 IP的主要内容,如果未能解决你的问题,请参考以下文章

构建Docker私有仓库Gitlab仓库和持续集成环境

使用 AWS api 网关 + lambda + Nodejs 的私有和公共 ip

AWS EC2 公共 IP 与私有 IP

AWS EC2实例绑定多个弹性IP

无法通过私有 IP 从另一个实例访问 AWS EC2 实例

具有公共/私有访问权限的 Appsync 身份验证,无需 AWS Cognito