Kops는, master node까지 관리해야 함을 기억하자.
(kubernetes cluster를 생성하고 설계하는 역할을 담당한다.)
KOPS를 LOCAL에 설치하여, EC2를 통해 MASTER, WORKER NODE를 설정한다.
Instance의 type(ssh,tls등) port numb. 등을 설정할 수 있다.
(public IP를 제공한다)
SSH(보안 protocol)-> 제공하는 pem(키)를 local에 저장하고, 키쌍을 생성하면
제공하는 instance의 ip
IAMFull,VPCFull 등 instance의 filter를 관리해주어야 한다.
이후 Instance의 사용자를 추가해준다.
이때 발급받은 Accesskey와 Secret Accesskeyid(이는 잘 보호해야 한다)
<CLUSTER 생성>
aws ec2 describe-availability -zones --region us-west-2로 가능한 가용성 영역을 설정한다.
us-west-2는 아마존에서 제공하는 data center 분할 단위이다.
(실제 us에 있는 것은 아닐 수도 있다)
KOPS CREATE CLUSTER --ZONES (eu-west 2a, eu-west-2c 등등, 가용성영역)
이후 ssh를 활용하여 key를 저장하는(서버 인증과 사용자 인증의 권한이 분리되어있다)
Kops create secret -- name {} ssh publickey admin (생성한 공개키 pub)
이렇게 (설정이 조금 더 필요하지만, 실습이 불가능해 제외하였다)
Kops gets ig -- name ${clustername} 을 통해, 각 가용성 영역에 따라 MASTER과 WORKER NODE가 할당된다.
출처 - aws qna
만약 영역에 따라 NODE의 수가 2개 밖에 없다면, kops edit ig nodes-eu-west-2a를 통해 변경이 가능하다.
kops update cluster ${NAME} --YES --ADMIN=87600h 과 같은 방식으로 일정 시간동안 CLUSTER를 동작시킨다.
각 NODE별로 INSTANCE가 동작함을 기억하자.
INSTANCE를 강제 종료하면 , 이 또한 자동으로 다시 생성된다.
<실제 배포>
1. pv, pvc
YAML 파일로 K8S의 POD 생성 등을 관리함을 기억하자.
*AWS에서는 hostpath를 변경해주어야 한다. (이전 db를 local에 저장하는 위치였다)
+ 이때 추가로 PV(볼륨)의 apiVersion,kind등을 변경해야 한다.
apiVersion : storage.k8s.io/v1
kind : StorageClass
metadata:
name:cloud-ssd (pvc의 storageclassname도 맞추어 주어야한다)
provisioiner: kubernetes.io/aws-ebs
parameters:
type: gp2
이후 본인이 원하는 yaml을 kubectl apply 로 적용시키면 된다.
2.db설정
db설정은 변경할 내용이 없다. (pv,pvc로 조종하는 형태 였기 때문이다.)
3. Service의 변경
NodePort를 사용할때 30080을 사용했었다. (외부에서 접근하기 위하여)
그럴 필요 없이 , LoadBalancer로 type을 변경해주면, 자동으로 loadbalancer가 Pod에 분산해준다.
LOADBALANCER로 동작하였기 떄문에, 아마존 측에서 AMAZON DNS ENTRY를 통해
도메인 주소를 제공해준다.
<도메인 주소 변경>
SERVICE-RESOURCEGROUPS로 DOMAIN을 구매할 수 있다.
'자바 , 기타 공부 > 클라우드 공부' 카테고리의 다른 글
yaml 파일 연습 (0) | 2024.02.21 |
---|---|
AWS (0) | 2024.02.06 |
퍼시스턴트 (0) | 2024.02.06 |
마이크로서비스(MSA) 네트워킹 (0) | 2024.02.05 |
쿠버네티스 네트워킹 (1) | 2024.02.04 |