EKS 클러스터 내 다른 컨텍스트 접근해서 작업하는 방법
DSME, 경북대 연구원분들 참고해주시면 감사하겠습니다.
사용 환경
- 가능하면 맥이나 윈도우 등 로컬 OS에서 진행해주시면 됩니다.
- aws ec2로 진행해봤으나 대시보드 GUI 표시, Lens 사용 불가 등의 문제점이 존재합니다.
- VNC로 GUI 표현할 수 있긴하나 비추천합니다.
- 아래의 내용은 맥에서 진행됐음을 미리 알려드립니다.
AWS config
- VNC로 GUI 표현할 수 있긴하나 비추천합니다.
- 아래의 내용은 맥에서 진행됐음을 미리 알려드립니다.
사용에 AWS 설정이 필요한지는 확인하지 못했지만 일단 적어두겠습니다.
-
사용에 앞서 kubectl, aws cli, kfctl, eksctl, kustomize 등이 필요할 수 있으니 다운받아 두시면 좋습니다.
-
aws configure
명령어를 입력해 default aws configure를 설정합니다.- 관리팀에서 부여받은 root access_key 및 secret_access_key를 이용해주세요. 개인적으로 생성한 IAM을 생성하면 생성되어 있는 EKS에 접근할 수 없습니다.
[default] aws_access_key_id = aws_secret_access_key =
- 관리팀에서 부여받은 root access_key 및 secret_access_key를 이용해주세요. 개인적으로 생성한 IAM을 생성하면 생성되어 있는 EKS에 접근할 수 없습니다.
-
vim ~/.aws/config
를 수정합니다.[default] sts_regional_endpoints=regional region = ap-northeast-2 output = yaml [profile environment-predict] role_arn = <비워두겠습니다. 혹시 설정해야 하는 상황이면 DM주세요> source_profile = default region = ap-northeast-2 output = yaml
컨텍스트 받아오기
-
아마 이 부분부터 진행하시면 될 것 같습니다. profile은 동일한 environment-predict를 사용합니다.
aws eks update-kubeconfig \
--name automl-dsme-knu \
--alias knu \
--profile environment-predict
-
위 명령을 실행하면 automl-dsme-knu context를 받아오게 됩니다. 이후 해당 컨텍스트에서 작업을 진행하시면 됩니다.
-
작업을 시작하시기 전에 확인해야 할 것들이 있습니다.
export AWS_DEFAULT_PROFILE=environment-predict
- 디폴트 프로필이 environment-predict로 되어있는지 확인합니다. 위 명령어는 아래 명령에 대한 결과가 달라지게 합니다.
aws sts get-caller-identity
- 해당 명령으로 admin 프로필이 사용되고 있는지 확인합니다. 위와 아래 명령에 문제가 있을 경우 루트 권한을 위임받은 IAM을 aws configure에서 제대로 설정하지 않았기 때문입니다. 단순 컨텍스트를 받아와 쓰는 경우 꼭 루트 권한이 필요할지는 모르겠습니다.
kubectl config use-context knu
- 위에서 설정한 context의 alias인 knu를 통해 사용할 컨텍스트를 변경해줍니다. 스위칭 되었다는 안내가 나옵니다.
kubectl config get-contexts
- 컨텍스트가 제대로 설정되어 있는지 확인합니다.
- 설정에서 default로 profile은 environment-predict, context는 knu로 변경해놨지만 혹시 모르니 아래와 같이 kubectl, aws cli 명령어를 쓸 땐 추가 정보를 붙여주세요.
- kubectl 사용할 땐 명령어 뒤에 --context=knu 사용
- aws 명령 사용할 땐 --profile=environment-predict 사용
쿠브플로우 대시보드 접근하기
- knu 컨텍스트에는 제가 쿠브플로우를 설치해 놓았습니다.
- istio-ingressgateway를 통해 쿠브플로 대시보드를 외부로 노출시킬 수 있습니다.
- 포트포워딩을 이용합니다. 먼저 모든 pod가 정상적으로 동작하고 있는지 확인해보세요.
kubectl port-forward deployments/istio-ingressgateway 8080:8080 -n istio-system
명령을 실행합니다.
- 아래와 같은 화면이 나오면 됩니다.
- 이후 브라우저에서
localhost:8080
을 통해 대시보드에 접근해서 작업하실 수 있습니다.
- 또한 k8s 관련 작업은 Lens 프로그램을 깔아 사용하시면 용이합니다.
Author And Source
이 문제에 관하여(EKS 클러스터 내 다른 컨텍스트 접근해서 작업하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@moey920/EKS-클러스터-내-다른-컨텍스트-접근해서-작업하는-방법
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
아마 이 부분부터 진행하시면 될 것 같습니다. profile은 동일한 environment-predict를 사용합니다.
aws eks update-kubeconfig \
--name automl-dsme-knu \
--alias knu \
--profile environment-predict
위 명령을 실행하면 automl-dsme-knu context를 받아오게 됩니다. 이후 해당 컨텍스트에서 작업을 진행하시면 됩니다.
작업을 시작하시기 전에 확인해야 할 것들이 있습니다.
export AWS_DEFAULT_PROFILE=environment-predict
- 디폴트 프로필이 environment-predict로 되어있는지 확인합니다. 위 명령어는 아래 명령에 대한 결과가 달라지게 합니다.aws sts get-caller-identity
- 해당 명령으로 admin 프로필이 사용되고 있는지 확인합니다. 위와 아래 명령에 문제가 있을 경우 루트 권한을 위임받은 IAM을 aws configure에서 제대로 설정하지 않았기 때문입니다. 단순 컨텍스트를 받아와 쓰는 경우 꼭 루트 권한이 필요할지는 모르겠습니다.kubectl config use-context knu
- 위에서 설정한 context의 alias인 knu를 통해 사용할 컨텍스트를 변경해줍니다. 스위칭 되었다는 안내가 나옵니다.kubectl config get-contexts
- 컨텍스트가 제대로 설정되어 있는지 확인합니다.- 설정에서 default로 profile은 environment-predict, context는 knu로 변경해놨지만 혹시 모르니 아래와 같이 kubectl, aws cli 명령어를 쓸 땐 추가 정보를 붙여주세요.
-kubectl 사용할 땐 명령어 뒤에 --context=knu 사용
-aws 명령 사용할 땐 --profile=environment-predict 사용
- knu 컨텍스트에는 제가 쿠브플로우를 설치해 놓았습니다.
- istio-ingressgateway를 통해 쿠브플로 대시보드를 외부로 노출시킬 수 있습니다.
- 포트포워딩을 이용합니다. 먼저 모든 pod가 정상적으로 동작하고 있는지 확인해보세요.
kubectl port-forward deployments/istio-ingressgateway 8080:8080 -n istio-system
명령을 실행합니다.- 아래와 같은 화면이 나오면 됩니다.
- 이후 브라우저에서
localhost:8080
을 통해 대시보드에 접근해서 작업하실 수 있습니다.
- 또한 k8s 관련 작업은 Lens 프로그램을 깔아 사용하시면 용이합니다.
Author And Source
이 문제에 관하여(EKS 클러스터 내 다른 컨텍스트 접근해서 작업하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@moey920/EKS-클러스터-내-다른-컨텍스트-접근해서-작업하는-방법저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)