IRSA를 사용하는 Amazon EKS의 크로스플레인
3488 단어 ekskubernetescrossplane
IRSA는 AWS 클라우드 서비스를 시작하는 데 활용됩니다.
아마존 EKS
Amazon EKS는 AWS 클라우드에서 Kubernetes를 실행하는 관리형 Kubernetes 서비스입니다.
크로스플레인
Crossplane은 코드를 작성할 필요 없이 클라우드 네이티브 컨트롤 플레인을 구축하기 위한 프레임워크입니다.
https://github.com/crossplane/crossplane
## 크로스플레인용 IRSA로 EKS 클러스터 시작
yaml이 기존 VPC를 활용하여 클러스터를 시작하는 경우 EKSCTL을 활용하여 아래 구성을 사용하여 EKS 클러스터를 시작합니다. 클러스터를 생성하기 전에 서브넷 ID를 대체하십시오.
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: crossplane-demo
region: us-east-1
version: '1.21'
vpc:
subnets:
private:
us-east-1a: { id: subnet-1234}
us-east-1b: { id: subnet-1234}
clusterEndpoints:
publicAccess: true
iam:
withOIDC: true
serviceAccounts:
- metadata:
name: provider-aws-f78664a342f1
namespace: crossplane-system
attachPolicyARNs:
- "arn:aws:iam::aws:policy/AdministratorAccess"
managedNodeGroups:
- name: crossplane-nodegroup
labels: { role: workers }
instanceType: t3a.medium
desiredCapacity: 1
volumeSize: 30
privateNetworking: true
위 내용을 cluster.yaml에 저장하고 아래 명령어를 사용하여 클러스터를 생성합니다.
eksctl create cluster -f cluster.yaml
크로스플레인 설치
아래 명령을 사용하여 helm 차트를 사용하여 Crossplane을 설치하십시오.
kubectl create namespace crossplane-system
helm repo add crossplane-stable https://charts.crossplane.io/stable
helm repo update
helm install crossplane --namespace crossplane-system crossplane-stable/crossplane
Crossplane AWS 공급자 설치
공급자에는 AWS 클라우드 서비스를 시작하기 위한 CRD가 포함되어 있습니다. 아래 구성 yaml을 적용하여 공급자를 설치합니다. AWS_PROVIDER_ARN을 클러스터 생성 중에 생성된 역할의 ARN으로 바꿉니다.
apiVersion: pkg.crossplane.io/v1alpha1
kind: ControllerConfig
metadata:
name: aws-config
annotations:
eks.amazonaws.com/role-arn: <AWS_PROVIDER_ARN>
spec:
podSecurityContext:
fsGroup: 2000
---
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-aws
spec:s
package: crossplane/provider-aws:v0.24.1
controllerConfigRef:
name: aws-config
Crossplane이 AWS 클라우드 서비스를 시작하기 위해 IRSA 역할을 사용할 수 있도록 허용하는 아래 구성을 적용합니다.
apiVersion: aws.crossplane.io/v1beta1
kind: ProviderConfig
metadata:
name: aws-provider
spec:
credentials:
source: InjectedIdentity
Crossplane을 사용하여 S3 버킷 생성
아래 yaml을 적용하여 IRSA로 Crossplane 설정을 테스트합니다. 이 yaml이 적용되면 S3 버킷이 s3-demo라는 이름으로 생성됩니다.
apiVersion: s3.aws.crossplane.io/v1beta1
kind: Bucket
metadata:
name: s3-demo
spec:
deletionPolicy: Delete
forProvider:
acl: private
locationConstraint: us-east-1
serverSideEncryptionConfiguration:
rules:
- applyServerSideEncryptionByDefault:
sseAlgorithm: AES256
versioningConfiguration:
status: Enabled
providerConfigRef:
name: aws-provider
메모:
EKS 클러스터 생성에서 관리 정책은 서비스 계정에 사용됩니다. 이 정책은 Crossplane을 통해 생성된 서비스를 기반으로 S3, SQS와 같은 특정 서비스로 제한될 수 있습니다.
Reference
이 문제에 관하여(IRSA를 사용하는 Amazon EKS의 크로스플레인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sent2020/crossplane-on-amazon-eks-with-irsa-4i51텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)