728x90
반응형
ncp k8s service IAM 인증
NCP 에서 제공하는 Kubernetes Service 를 통해 Kubernetes 환경을 효율적으로 제어하고 관리할 수 있다. 응용프로그램에서 사용하는 인프라 규모를 동적으로 제어하고 운영상황을 모니터링 하여 효율적으로 서비스를 관리할 수 있게 한다.
- k8s 환경 구축
- k8s 배포 및 관리
- 클러스터 자동확장
서비스를 사용하기 위한 준비
- VPC
- Private Subnet
- Load balance Subnet
- NAT Gateway
해당 클러스터에 접속하기 위해서는 IAM 인증을 거쳐야 한다.
// ncp-iam-autheticator 설치
https://guide.ncloud-docs.com/docs/k8s-iam-auth-ncp-iam-authenticator
// install
brew tap NaverCloudPlatform/tap
brew install ncp-iam-authenticator
// result
🍺 /opt/homebrew/Cellar/go/1.21.0: 12,515 files, 241.0MB
==> Installing navercloudplatform/tap/ncp-iam-authenticator
==> go build -ldflags=-s -w -X github.com/NaverCloudPlatform/ncp-iam-authenticator/cmd.version=1.1.1 ./main.go
🍺 /opt/homebrew/Cellar/ncp-iam-authenticator/1.1.1: 5 files, 12.3MB, built in 14 seconds
==> Running `brew cleanup ncp-iam-authenticator`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
kimminhyeok@Ivans-Mac k8s %
mkdir ~/.ncloud
sudo vi ~/.ncloud/configure
// ~/.ncloud/configure
ncloud_access_key_id = ${NCP_ACCESS_KEY}
ncloud_secret_access_key = ${NCP_SECRET_KEY}
ncloud_api_url = <https://ncloud.apigw.ntruss.com>
// ncp-iam-authenticator create-kubeconfig 명령 사용
ncp-iam-authenticator update-kubeconfig --region <region-code> --clusterUuid <cluster-uuid>
// 실사용
ncp-iam-authenticator update-kubeconfig --region KR --clusterUuid 7c272982-8301-4cff-96e2-8e07465bd67d
minikube 가 아닌 kubectl 바이너리 설치
// k8s 공식 홈
<https://kubernetes.io/ko/docs/tasks/tools/install-kubectl-macos/>
// MacOS apple silicon
curl -LO "<https://dl.k8s.io/release/$>(curl -L -s <https://dl.k8s.io/release/stable.txt>)/bin/darwin/arm64/kubectl"
kimminhyeok@Ivans-Mac k8s % kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-node-pool-w-3cwo Ready <none> 40m v1.25.8
k8s-node-pool-w-3cwt Ready <none> 31m v1.25.8
이제 더 이상minikube 는 동작하지 않고 kubectl 로 node-pool 로 연결된다.
클러스터를 새로 구성했으니 alias 부터 secret 까지 필요한 내용들을 따로 구성해야 한다.
# alias 수정
vi ~/.zshrc
#
alias k="kubectl"
...
k create secret docker-registry regcred --docker-server=${REGISTRY} --docker-username=${ACCESS_KEY} --docker-password=${SECRET_KEY} --docker-email=${email}
여기서 email 은 token 을 발급한 iam 의 이메일 주소이다.
# lion-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: lion-app
labels:
app: lion-app
spec:
imagePullSecrets:
- name: regcred
containers:
- name: lion-app
image: likelion-cr-mh.kr.ncr.ntruss.com/lion-app:sqlite
imagePullPolicy: Always # 기존의 이미지를 쓰지않고 항상 가져오게 끔
env:
- name: DJANGO_SETTINGS_MODULE
value: lion_app.settings.test
- name: DJANGO_SECRET_KEY
value: "DJANGO_SECRET_KEY"
ports:
- containerPort: 8000
728x90
반응형
'Dev. > Kubernetes & Helm' 카테고리의 다른 글
Kubernetes: ReplicaSet 적용하기 (0) | 2023.09.26 |
---|---|
Kubernetes: nks 에서 서비스 띄우기 (4) | 2023.09.26 |
Kubernetes: run application via nks (0) | 2023.09.24 |
Kubernetes: ConfigMap (0) | 2023.09.18 |
Kubernetes: svc - pod 구조 이해 (0) | 2023.09.17 |
댓글