/cloud-provider-aws

Primary LanguageGoApache License 2.0Apache-2.0

Kubernetes logo AWS Load Balancer logo

The AWS Cloud Provider for Kubernetes

GitHub issues GitHub forks GitHub stars GitHub release (latest SemVer including pre-releases)

GitHub license go report card Dependency Review

cloud-provider-aws

The AWS cloud provider provides the interface between a Kubernetes cluster and AWS service APIs. This project allows a Kubernetes cluster to provision, monitor and remove AWS resources necessary for operation of the cluster.

See the online documentation here

Compatibility with Kubernetes

The AWS cloud provider is released with a specific semantic version that correlates with the Kubernetes upstream version. The major and minor versions are equivalent to the compatible upstream release, and the patch version is reserved to denote subsequent releases of the cloud provider code for that Kubernetes release. Currently, for a given cloud provider release version, compatibility is ONLY guaranteed between that release and the corresponding Kubernetes version, meaning you need to upgrade the cloud provider components every time you upgrade Kubernetes, just like you would do for the kube controller manager. See the external cloud provider versioning KEP for more details.

Migration from In-Tree

The in-tree cloud provider code has mostly stopped accepting new features, so future development for the AWS cloud provider should continue here. The in-tree plugins will be removed in a future release of Kubernetes.

Components

AWS Cloud Controller Manager

The AWS Cloud Controller Manager is the controller that is primarily responsible for creating and updating AWS loadbalancers (classic and NLB) and node lifecycle management. The controller loops that are migrating out of the kube controller manager include the route controller, the service controller, the node controller, and the node lifecycle controller. See the cloud controller manager KEP for more details.

Container Images

AWS Cloud Controller Managed container images are available in registry.k8s.io/provider-aws/cloud-controller-manager.

AWS Credential Provider

The AWS credential provider is a binary that is executed by kubelet to provide credentials for images in ECR. Refer to the credential provider extraction KEP for more details.

Volume Plugins

All the EBS volume plugin related logic will be in maintenance mode. For new feature request or bug fixes, please create issue or pull request in EBS CSI Driver