registry.k8s.io icon indicating copy to clipboard operation
registry.k8s.io copied to clipboard

Add more S3 regions

Open BenTheElder opened this issue 1 year ago • 20 comments

South America is the obvious missing one, but we should also consider adding others.

xref: https://github.com/kubernetes/k8s.io/pull/4739#discussion_r1101899000 and discussion in https://kubernetes.slack.com/archives/CCK68P2Q2/p1678504635523609

/sig k8s-infra /priority important-soon

When we add a bucket it will have to be added to the terraform config in k8s.io including the s3 to s3 replication, then once the bucket is reasonably well populated we'll want to add it to both https://github.com/kubernetes/registry.k8s.io/blob/8408d0501a88b3d2531ff54b14eeb0e3c900a4f3/cmd/archeio/app/buckets.go (AWS clients) and https://github.com/kubernetes/k8s.io/blob/5821271f875cc970b5701983e5695a025b5d952f/infra/gcp/terraform/k8s-infra-oci-proxy-prod/terraform.tfvars (non-GCP non-AWS clients)

This is much more relevant after #147

BenTheElder avatar Mar 11 '23 04:03 BenTheElder

/assign

/area infra/aws /milestone v1.27

ameukam avatar Mar 11 '23 06:03 ameukam

@ameukam: The label(s) area/infra/aws cannot be applied, because the repository doesn't have them.

In response to this:

/assign

/area infra/aws /milestone v1.27

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

k8s-ci-robot avatar Mar 11 '23 06:03 k8s-ci-robot

We should ideally have:

  1. All regions with notable client usage within AWS, for the AWS IP / region => bucket mapping
  2. All regions that map closely to our Cloud Run / AR GCP regions, for external clients with the Cloud Run instance => bucket mapping

We started with a good approximation of 1) in https://github.com/kubernetes/registry.k8s.io/issues/39 / https://github.com/kubernetes/registry.k8s.io/issues/72, but it might be worth revisiting.

For 2) we have an okay approximation reusing the same set from 1), but we know there's at least the South America gap and should definitely re-evaluate and select the remaining regions that would most closely match now that we've moved to sending non-AWS-non-GCP traffic to S3 generally.

BenTheElder avatar Mar 11 '23 18:03 BenTheElder

List of remaining regions we can add:

  • ap-east-1
  • ap-northeast-2
  • ap-southeast-1
  • ap-southeast-3
  • ap-southeast-4
  • eu-central-1
  • eu-central-2
  • ca-central-1
  • sa-east-1

ameukam avatar Mar 13 '23 21:03 ameukam

There's an inflection point where adding a region is wasteful.

If we are matching the IP to region with 1) for users within AWS and it only represents a very small amount of traffic within AWS then it's probably not worth it for 1), more regions than Cloud Run is not useful for 2) since we lean on the GCLB routing to determine approximate region for external traffic.

BenTheElder avatar Mar 13 '23 22:03 BenTheElder

OK so we looked at the costs today and storage costs are likely going to be smaller than traffic in basically any AWS region with actual traffic.

So just adding them for 1) is going to be generally worthwhile.

xref: https://kubernetes.slack.com/archives/CCK68P2Q2/p1678915249434949

BenTheElder avatar Mar 16 '23 03:03 BenTheElder

ref: https://github.com/kubernetes/registry.k8s.io/issues/181 for hold a bit on production changes

BenTheElder avatar Mar 17 '23 00:03 BenTheElder

cc @rothgar

dims avatar Mar 25 '23 21:03 dims

New AR regions added:

  • asia-east2: https://github.com/kubernetes/k8s.io/pull/4949
  • europe-west2: https://github.com/kubernetes/k8s.io/pull/4949
  • southamerica-east1: https://github.com/kubernetes/k8s.io/pull/4924
  • us-west3: https://github.com/kubernetes/k8s.io/pull/4419
  • us-west4: https://github.com/kubernetes/k8s.io/pull/4419

ameukam avatar Mar 27 '23 14:03 ameukam

xref - some data from @TerryHowe here: https://kubernetes.slack.com/archives/CCK68P2Q2/p1681223002601649

dims avatar Apr 11 '23 17:04 dims

Adding more regions would be easy, but cloudfront should maybe be considered.

TerryHowe avatar Apr 11 '23 17:04 TerryHowe

There's another issue tracking CloudFront.

I think the idea is we still want to route in-AWS traffic with S3 in any region where cost to store < cost to serve cross region / cloud front. Which should be many regions.

CloudFront is probably the right answer for egress otherwise?

BenTheElder avatar Apr 12 '23 02:04 BenTheElder

Agree it should be easy, but we've avoided anything altering production behavior through securing the GCR redirect #181

BenTheElder avatar Apr 12 '23 02:04 BenTheElder

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot avatar Jul 11 '23 02:07 k8s-triage-robot

/remove-lifecycle stale

ameukam avatar Jul 11 '23 03:07 ameukam

Egress cost for the month of November 2023:

image

ameukam avatar Dec 07 '23 06:12 ameukam

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot avatar Apr 28 '24 19:04 k8s-triage-robot

/remove-lifecycle stale

ameukam avatar Apr 29 '24 08:04 ameukam

/milestone v1.31

ameukam avatar Apr 29 '24 08:04 ameukam