공유할 서비스 선택

TECH


TECH

Middleware (Kubernetes-2) 오라클 클라우드로(무료 VM) 쿠버네티스 (OKE) 생성 및 Nginx 기동

페이지 정보

작성자 미들웨어 아이디로 검색 전체게시물 댓글 0건 조회 130회 좋아요 0회 작성일 21-09-06 11:09

본문

안녕하세요. 미들웨어 입니다.

 

지난 시간에는 쿠버네티스가 무엇인지에 대해 개념파악을 했습니다.

이번 시간에는 쿠버네티스를 직접 설치해서 Nginx 가지 기동시켜 보도록 하겠습니다.

핸즈온 형식이니 따라서 진행해주세요.

 

클라우드에서 쿠버네티스를 활용하는 방안으로는 GCP, AWS, OCI등이 있습니다.

무료로 vm을 2대까지 생성할 수 있는 OCI가 비용적인 면과 테스트 하기에도 적절하니 OCI(오라클 클라우드) 로 구성해보겠습니다.

OCI 에서 VM을 생성하는 것은 아주 간단합니다.

 

 

1. 오라클 클라우드 가입

오라클클라우드 홈페이지 가입한뒤 순서대로 생성하면 됩니다.

이건 간단해서 별도 정리는 안할께요.

 

- 오라클클라우드 홈페이지 가입

https://www.oracle.com/kr/cloud/free/ 

 

5a03ca21fdd56f83ac67158c71bc2461_1630893000_6124.png
 

 

2. 오라클 클라우드 쿠버네티스 (OKE) 생성 

VM서버를 생성 할 수 있도록 계정이 완료되면 OKE 설치 진행을 해보겠습니다.

오라클 클라우드 서비스는 쿠버네티스(Kubernetes:K8S)를 사용할 수 있도록 Container Engine for Kubernetes(OKE)가 제공됩니다. 

 

- OCI에 접속한뒤 상단에 OKE 검색 

5a03ca21fdd56f83ac67158c71bc2461_1630893176_6881.png
 

 

- 빠른생성 클릭 후 생성 진행

5a03ca21fdd56f83ac67158c71bc2461_1630894769_4058.jpg
 

 

- OKE 설치 진행중인 화면입니다.

 

 

 

완료되면 다음을 클릭해주세요

5a03ca21fdd56f83ac67158c71bc2461_1630893243_3287.png
 

 

3.  OKE 서버 접속을 위한 공용키 생성

오라클은 생성된 VM에 접속하기 위해서는 key가 있어야 합니다.

저 같은 경우는 puttyzen으로 공용키를 생성했고 제 공용키를 아래처럼 OKE 생성서버에 등록해줬습니다.

제가 직접 테스트 해보니까...

 

오라클VM은 초기 VM구축할때 KEY입력을 안해주면 VM생성후 key등록 및 생성후 붙여넣기 해도 인식이 안되네요.. 

결론은 초기 구축할때 필히 키값을 입력해주셔야 합니다.

 

 

- 생성된 공용키 복사 등록 

5a03ca21fdd56f83ac67158c71bc2461_1630893439_7203.png


4. OKE 실행

- Oracle Container Engine for Kubernetes(OKE) 실행

  

시간이 조금 걸리지만, OKE생성되면 활성화 됩니다

5a03ca21fdd56f83ac67158c71bc2461_1630894937_446.jpg

  

 

5. OKE VM 서버 shell통해 접속

- OKE에서 CloudShell 실행하여 kubectl 활성화 
아래 내용처럼 클러스터에 엑세스를 진행해주세요

5a03ca21fdd56f83ac67158c71bc2461_1630895023_719.jpg




위 처럼 진행하시면 오라클클라우드에서 OKE 쿠버네티스 k8s를 활용할 기본적인 준비가 완료됐습니다.

 



6. Nginx 설치를 위해 yaml 생성
opc로 로그인 한뒤 sudo su -  하시면 root 로 접근 가능합니다.

 

파일생성 (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를 입력해주세요.

 

http://152.70.94.74/ 

5a03ca21fdd56f83ac67158c71bc2461_1630893854_3205.png
 

 

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

 

내용이 좀 길었는데요.. 흐름상 중간에 멈추고 다시 설명드리면 따라오기 어려우실까봐 한번에 쫘악~ 설명 진행했습니다.

꼭 성공하세요~

 

 

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
100 OS LeeHyongDong 아이디로 검색 전체게시물 10-20 13
[Linux] NFS 동작 아키텍쳐 및 포트 변경

카테고리 : OS

13 0
작성자 : LeeHyongDong 21/10/20
99 Middleware 미들웨어 아이디로 검색 전체게시물 10-20 14
(Kubernetes-5) 신규VM 생성, kubectl 설치 후 접속 방법

카테고리 : Middleware

14 0
작성자 : 미들웨어 21/10/20
98 Middleware 미들웨어 아이디로 검색 전체게시물 10-05 50
(Kubernetes-4) docker 설치 & 삭제하기

카테고리 : Middleware

50 0
작성자 : 미들웨어 21/10/05
97 OS LeeHyongDong 아이디로 검색 전체게시물 09-28 54
[Linux] ansible 플레이북 작성 및 실행

카테고리 : OS

54 0
작성자 : LeeHyongDong 21/09/28
96 Middleware 미들웨어 아이디로 검색 전체게시물 09-23 77
(Kubernetes-3) prometheus & Grafana 활용하여 모니터링 구성하기

카테고리 : Middleware

77 0
작성자 : 미들웨어 21/09/23
열람중 Middleware 미들웨어 아이디로 검색 전체게시물 09-06 131
열람중
(Kubernetes-2) 오라클 클라우드로(무료 VM) 쿠버네티스 (OKE) 생성 및 Nginx 기동

카테고리 : Middleware

131 0
작성자 : 미들웨어 21/09/06
94 Middleware 미들웨어 아이디로 검색 전체게시물 08-26 170
(Kubernetes-1) Kubernetes 아키텍처 흐름도 와 개념 정리

카테고리 : Middleware

170 0
작성자 : 미들웨어 21/08/26
93 OS LeeHyongDong 아이디로 검색 전체게시물 08-24 146
[Linux] ansible 환경설정 및 애드혹

카테고리 : OS

146 0
작성자 : LeeHyongDong 21/08/24
92 ETC Leesangwoo 아이디로 검색 전체게시물 08-24 111
[ MariaDB ] MariaDB Replication

카테고리 : ETC

111 0
작성자 : Leesangwoo 21/08/24
91 Middleware 미들웨어 아이디로 검색 전체게시물 08-11 249
(weblogic 활용-2) 리눅스에 VNC 설치 하여 UI모드로 Weblogic 콘솔모드 접속

카테고리 : Middleware

249 0
작성자 : 미들웨어 21/08/11
Total 100건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top