You may have heard that the EKS Distribution of Kubernetes launched at re:Invent. What is in it? What does that mean? Why might you use it? Follow along! 🧵 1/
First of all, what is a distribution? Here’s how the CNCF defines a k8s distro:
“A distribution is software based on Kubernetes that can be installed by an end user on to a public cloud or bare metal and includes patches to the upstream codebase.”
https://github.com/cncf/k8s-conformance/blob/master/faq.md#what-is-a-distribution-hosted-platform-and-an-installer 2/
On that last bit about patches, does EKS patch Kubernetes? The short answer is yes, and you can see those on GitHub.
https://github.com/aws/eks-distro/tree/main/projects/kubernetes/kubernetes/1-18/patches They’re actually pretty boring. 3/
Of the 16 patches, 11 are AWS SDK or cloud provider related and will no longer apply once the cloud provider is extracted from K8s core. 2 are performance/stability related (disabling excessive info logs, prevent admission webhooks from interfering with leader election) 4/
2 are CVE or security mitigations, and one is a build script modification. Our aim is to reduce this list as much as possible, working with the Kubernetes community to make Kubernetes operational stability and security even better for everyone. 5/
What is included? Today we include the k8s core components, and anything required to have a functioning cluster without components that tie you to a specific vendor. We intentionally don’t include a CNI other than the base set, and we don’t include AWS-specific components... 7/
like the KMS encryption provider, EKS-specific code for the certificate approver, or the EKS VPC CNI, or others. We do build aws-iam-authenticator so you can authenticate to an EKS Distro cluster in the same way you do to EKS, but that is an optional installation. 8/
What I find most exciting about the EKS Distro are the the release manifests. You can read all about this in the documentation, but we publish the list of components, versions, and artifacts (archives and container images) structured as Kubernetes CRDs. https://distro.eks.amazonaws.com/  9/
When we release new versions of a component, or rebuild due to a base image update or build tooling update, you can subscribe to receive an SNS notification. This notification will contain a link to the new release manifest, which you can install as a CRD in a k8s cluster 10/
By structuring the releases as CRDs, we empower consumers to write operators that could integrate with Cluster API, kops, or other CI/CD systems to drive automated releases. The schema is not final! We’ve started with v1alpha1 and want your feedback https://github.com/aws/eks-distro-build-tooling 11/
One more reason I’m proud of this launch is our use of Prow, the Kubernetes CI/CD tool. We’ve learned a lot operating Prow and plan on making contributions to Kubernetes test-infra. We’re very thankful to the community members who added S3 support to Prow! 12/
One technology we really enjoyed using in building the EKS Distro is buildkit. We were attracted to its simplicity, integration with rootless kit, ability to write OCI tars, and multi-platform build support. https://github.com/moby/buildkit  13/
While you’re here, there is a bunch of other cool stuff EKS has launched! Check out Eswar’s thread on the full list. https://twitter.com/bala_eswar/status/1333833318924619776 Have a great re:Invent, there are many more announcements coming from AWS! 14/end
You can follow @micahhausler.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.