-
aws eks kubectl 연동 과정.Computer Science/k8s 2023. 3. 2. 23:01
우선 awscli가 필요하다.
brew install awscli
https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/
kubectl 다운 과정이다.
aws eks update-kubeconfig --name <cluster-name>
명령어를 통해 연동하는데 처음 실행시 다음과 같은 메세지가 뜰 것이다.
You must specify a region. You can also configure your region by running "aws configure".
aws configure를 통해 사용할 iam을 정해주자.
혹 eks:DescribeCluster 권한이 없다면 간편한 방식으로는 AmazonEKSWorkerNodePolicy를 추가해주면 된다.
권한을 적용시킨 후 다시 진행 한다면 설정에 잘 적용된다.
다시 해당 iam 으로 kubectl을 접근하려고 할 때 안된다면 우선
kubectl cluster-info
명령어를 통해 확인해 보자.E0302 21:58:29.235399 25354 memcache.go:238] couldn't get current server API group list: the server has asked for the client to provide credentials E0302 21:58:29.524497 25354 memcache.go:238] couldn't get current server API group list: the server has asked for the client to provide credentials ...
해당 오류가 발생한다면 권한이 없는 것이다.
k8s ConfigMap에 해당 iam을 추가해주어야 한다. 혹 이 과정을 거치지 않아도 로그인이 된다면 cluster를 만든 iam으로 접근하고 있는 것이다.
혹 해당 cluster를 누가 만들었는지 확인하고 싶다면 CloudTrail을 이용하여 확인하면 되고
root 계정의 iam 을 받으려면 보안자격증명에서 진행하면된다.
보안자격증명은 2023/3/2 기준 우측 위 로그아웃이 있는 곳에 위치해 있다.k8s ConfigMap에 iam을 추가하려면 우선 cluster를 만든 iam으로 접근해야한다.
해당 iam으로 configure를 변경 후kubectl cluster-info
명령어를 입력하면
Kubernetes control plane is running at ...
로그가 뜨며 정상 접속 되는 것을 확인할 수 있다.
그런 후 aws-auth.yaml 파일을 만들어준다.
apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - rolearn: //추가할 iam arn ex) arn:aws:iam::***:user/*** username: //관리할 username groups: - system:masters
해당 명령어를 입력하면
kubectl apply -f ./aws-auth.yaml
아래와 같이 생성되었다고 나온다.
configmap/aws-auth created
그런 뒤 다시 iam을 변경한 후 접근 하면 성공한다.
혹 configmap의 적용 여부가 확인하고 싶다면 아래의 명령어로 확인하면 된다.
kubectl describe configmap aws-auth -n kube-system
위 과정은 aws 공식 문서에도 나와있으니 확인 후 진행하면 된다.
'Computer Science > k8s' 카테고리의 다른 글
k8s service (0) 2023.03.04 k8s deployment (0) 2023.03.04 aws eks worker node 생성 (0) 2023.03.04 k8s Controller 기본 정리 (0) 2023.02.12 k8s Object 기본 간략 정리 (0) 2023.02.12