공유할 서비스 선택

TECH


TECH

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

페이지 정보

작성자 미들웨어 아이디로 검색 전체게시물 댓글 0건 조회 764회 좋아요 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 목록
번호 제목 작성자 작성일 조회수
130 Middleware 미들웨어 아이디로 검색 전체게시물 08-08 7
(오픈소스 활용-11) "ISTIO"이스티오 - 오픈소스 서비스 메시 플랫폼

카테고리 : Middleware

7 0
작성자 : 미들웨어 22/08/08
129 Middleware 미들웨어 아이디로 검색 전체게시물 07-25 48
(오픈소스 활용-10) GC 분석을 빠르고 간편하게 할 수 있는 GCeasy 소개 합니다

카테고리 : Middleware

48 0
작성자 : 미들웨어 22/07/25
128 ETC Leesangwoo 아이디로 검색 전체게시물 07-22 25
[ mssql ] Centos 8 에서 mssql 설치

카테고리 : ETC

25 0
작성자 : Leesangwoo 22/07/22
127 Middleware 미들웨어 아이디로 검색 전체게시물 07-06 71
(오픈소스 활용-9) Jenkins 활용 방법 추가 정리 (Docker 활용, Tomcat 설치없이 기동, 에러로그등)

카테고리 : Middleware

71 0
작성자 : 미들웨어 22/07/06
126 OS LeeHyongDong 아이디로 검색 전체게시물 07-01 146
[Linux] RHEL 9.0 변경 사항

카테고리 : OS

146 0
작성자 : LeeHyongDong 22/07/01
125 ETC Leesangwoo 아이디로 검색 전체게시물 06-30 76
[ Postgresql ] Postgresql 설치 및 구성

카테고리 : ETC

76 0
작성자 : Leesangwoo 22/06/30
124 ETC Leesangwoo 아이디로 검색 전체게시물 06-29 65
[ MariaDB ] MariaDB InnoDB buffer_pool 설정 및 사용량 확인

카테고리 : ETC

65 0
작성자 : Leesangwoo 22/06/29
123 Middleware 미들웨어 아이디로 검색 전체게시물 06-22 99
(오픈소스 활용-8) Flask 2장 - Flask 구성 및 실행 방법

카테고리 : Middleware

99 0
작성자 : 미들웨어 22/06/22
122 OS LeeHyongDong 아이디로 검색 전체게시물 06-17 210
[Linux] RHEL 8 loopback 인터페이스 IP 설정

카테고리 : OS

210 0
작성자 : LeeHyongDong 22/06/17
121 Middleware 미들웨어 아이디로 검색 전체게시물 06-08 211
(오픈소스 활용-7) Flask 1장 - Flask 설치 및 python (2.7 -> 3.6) 업그레이드 방법

카테고리 : Middleware

211 0
작성자 : 미들웨어 22/06/08
Total 130건
게시물 검색

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