Oracle Cloud Infrastructure (OCI) 에서 이스티오(ISTIO)를 활용한 서비스 메쉬(Service Mesh)에 대한 기술 정리 및 이를 데모로 구현한 내용을 정리합니다.
글 순서
5. 이스티오 데모 - 이스티오 설치, 엔보이 프록시 주입
6. 이스티오 데모 - 샘플 어플리케이션 (Bookinfo) 배포
8. 이스티오 데모 - 결함 주입(Fault Injection)
REFERENCES
아래 도서 및 사이트를 참조하여 작성한 문서입니다.
- 도메인 주도 설계로 시작하는 마이크로 서비스 개발 (위키북스)
- 쿠버네티스 완벽 가이드 (길벗)
- Istio로 시작하는 서비스 메시 (에이콘)
- Isitio Documentation
쿠버네티스 대쉬보드 접속
kubeconfig 설정 확인과 이후 관리 편의를 위해 쿠버네티스 대쉬보드를 사용하겠습니다.
쿠버네티스 대쉬보드 UI는 기본으로 배포되지 않습니다. 배포하려면 다음 커맨드를 실행하면 됩니다.
[opc@demo ~]$ kubectl apply -f <https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml>
namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created
쿠버네티스 대쉬보드는 내부적으로 apiserver에 접근해서 클러스터 환겨의 자원들을 가져오기 때문에 이를 위한 권한이 필요합니다. 이를 위해 서비스 어카운트 (Service Account)를 만들고 이 계정을 롤 어드민 권한으로 묶는 클러스트 롤 바인딩(ClusterRoleBinding) 생성이 필요합니다.
먼저 아래 내용으로 파일을 YAML 파일을 생성합니다. 여기에서는 “oke-admin-service-account.yaml" 라는 이름으로 파일을 만들었습니다.
[opc@demo ~]$ cat oke-admin-service-account.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: oke-admin
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: oke-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: oke-admin
namespace: kube-system
kubectl 명령으로 생성한 파일 내용으로 서비스 어카운트와 클러스터 롤 바인딩을 생성합니다.
[opc@demo ~]$ kubectl apply -f oke-admin-service-account.yaml
serviceaccount/oke-admin created
clusterrolebinding.rbac.authorization.k8s.io/oke-admin created
oke-admin 서비스 어카운트에 대한 인증 토큰 값을 복사해 둡니다. 이는 쿠버네티스 대쉬보드에서 로그인할 때 필요합니다.
[opc@demo ~]$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep oke-admin | awk '{print $1}')
Name: oke-admin-token-vg27w
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name: oke-admin
kubernetes.io/service-account.uid: c9aa90a0-d27c-4c5d-8a69-044f1e25bb46
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1285 bytes
namespace: 11 bytes
token: eyJh______px1Q
kubectl 커맨드라인 도구를 이용해 다음 커맨드를 실행함으로써 대쉬보드로의 접속을 활성화할 수 있습니다.
[opc@demo ~]$ kubectl proxy
이제 VNC 접속 환경에서 웹 브라우저를 열어서 아래 URL로 접속합니다.
**http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login**
인증방법에 Token을 선택하고 앞서 복사해 둔 토큰값을 붙여넣습니다. 그리고 Sigh in을 클릭합니다.
아래는 로그인 후 대쉬보드의 노드 정보 화면입니다.
<END>
'Cloud > Oracle Cloud Infrastructure (OCI)' 카테고리의 다른 글
OCI상에서 ISTIO를 활용하여 구현한 Service Mesh - #6. 이스티오 데모 - 샘플 어플리케이션 (Bookinfo) 배포 (0) | 2022.07.26 |
---|---|
OCI상에서 ISTIO를 활용하여 구현한 Service Mesh - #5. 이스티오 데모 - 이스티오 설치, 엔보이 프록시 주입 (0) | 2022.07.26 |
OCI상에서 ISTIO를 활용하여 구현한 Service Mesh - #3. 이스티오 데모 - 사전 준비 (0) | 2022.07.26 |
OCI상에서 ISTIO를 활용하여 구현한 Service Mesh - #2. 이스티오 작동 방식 (0) | 2022.07.26 |
OCI상에서 ISTIO를 활용하여 구현한 Service Mesh - #1. Overview (0) | 2022.07.26 |