Middleware (Kubernetes-2) 오라클 클라우드로(무료 VM) 쿠버네티스 (OKE) 생성 및 Nginx 기동
페이지 정보
작성자 미들웨어 아이디로 검색 전체게시물 댓글 0건 조회 3,352회 좋아요 0회 작성일 21-09-06 11:09본문
안녕하세요. 미들웨어 입니다.
지난 시간에는 쿠버네티스가 무엇인지에 대해 개념파악을 했습니다.
이번 시간에는 쿠버네티스를 직접 설치해서 Nginx 가지 기동시켜 보도록 하겠습니다.
핸즈온 형식이니 따라서 진행해주세요.
클라우드에서 쿠버네티스를 활용하는 방안으로는 GCP, AWS, OCI등이 있습니다.
무료로 vm을 2대까지 생성할 수 있는 OCI가 비용적인 면과 테스트 하기에도 적절하니 OCI(오라클 클라우드) 로 구성해보겠습니다.
OCI 에서 VM을 생성하는 것은 아주 간단합니다.
1. 오라클 클라우드 가입
오라클클라우드 홈페이지 가입한뒤 순서대로 생성하면 됩니다.
이건 간단해서 별도 정리는 안할께요.
- 오라클클라우드 홈페이지 가입
https://www.oracle.com/kr/cloud/free/
2. 오라클 클라우드 쿠버네티스 (OKE) 생성
VM서버를 생성 할 수 있도록 계정이 완료되면 OKE 설치 진행을 해보겠습니다.
오라클 클라우드 서비스는 쿠버네티스(Kubernetes:K8S)를 사용할 수 있도록 Container Engine for Kubernetes(OKE)가 제공됩니다.
- OCI에 접속한뒤 상단에 OKE 검색
- 빠른생성 클릭 후 생성 진행
- OKE 설치 진행중인 화면입니다.
완료되면 다음을 클릭해주세요
3. OKE 서버 접속을 위한 공용키 생성
오라클은 생성된 VM에 접속하기 위해서는 key가 있어야 합니다.
저 같은 경우는 puttyzen으로 공용키를 생성했고 제 공용키를 아래처럼 OKE 생성서버에 등록해줬습니다.
제가 직접 테스트 해보니까...
오라클VM은 초기 VM구축할때 KEY입력을 안해주면 VM생성후 key등록 및 생성후 붙여넣기 해도 인식이 안되네요..
결론은 초기 구축할때 필히 키값을 입력해주셔야 합니다.
- 생성된 공용키 복사 등록
4. OKE 실행
- Oracle Container Engine for Kubernetes(OKE) 실행
시간이 조금 걸리지만, OKE생성되면 활성화 됩니다
5. OKE VM 서버 shell통해 접속
- OKE에서 CloudShell 실행하여 kubectl 활성화
아래 내용처럼 클러스터에 엑세스를 진행해주세요
위 처럼 진행하시면 오라클클라우드에서 OKE 쿠버네티스 k8s를 활용할 기본적인 준비가 완료됐습니다.
파일생성 (nginx-deployment.yaml)
명령어 입력 .kube (ap-seoul-1)$ vi nginx-deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
- nginx-deployment.yaml 실행 명령어 입력 .kube (ap-seoul-1)$ kubectl apply -f nginx-deployment.yaml Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply deployment.apps/nginx-deployment configured
- get pod 포드 3개 생성 확인 명령어 입력 .kube (ap-seoul-1)$ kubectl get pod NAME READY STATUS RESTARTS AGE nginx-deployment-66b6c48dd5-7x2pt 1/1 Running 0 46m nginx-deployment-66b6c48dd5-gh884 1/1 Running 0 46m nginx-deployment-66b6c48dd5-h257f 1/1 Running 0 22s
- 노드 IP 및 OS정보 확인 명령어 입력 .kube (ap-seoul-1)$ kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME 10.0.10.179 Ready node 7h37m v1.20.8 10.0.10.179 <none> Oracle Linux Server 7.9 5.4.17-2102.203.6.el7uek.x86_64 cri-o://1.20.2 10.0.10.73 Ready node 7h37m v1.20.8 10.0.10.73 <none> Oracle Linux Server 7.9 5.4.17-2102.203.6.el7uek.x86_64 cri-o://1.20.2 10.0.10.99 Ready node 7h37m v1.20.8 10.0.10.99 <none> Oracle Linux Server 7.9 5.4.17-2102.203.6.el7uek.x86_64 cri-o://1.20.2
## nginx 생성 (nginx-service, nodepot) -nginx.service 생성 kubectl expose deployment nginx-deployment --port=80 --target-port=80 --type=LoadBalancer --name=nginx-service service/nginx-service exposed
- NodePort으로 nginx 생성 kubectl expose deployment/nginx-deployment --type="NodePort" --port 8080 --target-port=80 --protocol="TCP"
- kubectl get services 확인 공인IP(152.70.94.74) 명령어 입력 .kube (ap-seoul-1)$ kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 7h51m nginx-deployment NodePort 10.96.190.144 <none> 8080:32647/TCP 54m nginx-service LoadBalancer 10.96.171.33 152.70.94.74 80:30166/TCP 18m
|
7. Nginx 브라우저 호출
6번 항목에서 확인된 로드벨런싱 IP를 입력해주세요.
8. Nginx 상세 정보 확인
OCI 퍼블릭 로드벨런서 등록 후 공인 IP 확인가능 합니다.
명령어 확인 .kube (ap-seoul-1)$ kubectl describe services nginx-service Name: nginx-service Namespace: default Labels: app=nginx Annotations: <none> Selector: app=nginx Type: LoadBalancer IP: 10.96.171.33 LoadBalancer Ingress: 152.70.94.74 Port: <unset> 80/TCP TargetPort: 80/TCP NodePort: <unset> 30166/TCP Endpoints: 10.244.0.132:80,10.244.0.4:80,10.244.1.5:80 Session Affinity: None External Traffic Policy: Cluster Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal EnsuringLoadBalancer 8m53s service-controller Ensuring load balancer Normal EnsuredLoadBalancer 8m15s service-controller Ensured load balancer |
내용이 좀 길었는데요.. 흐름상 중간에 멈추고 다시 설명드리면 따라오기 어려우실까봐 한번에 쫘악~ 설명 진행했습니다.
꼭 성공하세요~
댓글목록
등록된 댓글이 없습니다.