brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Feb 21. 2021

22.  네이버 클라우드 플랫폼에 쿠버네티스 설치1/1

네이버 클라우드 플랫폼의 쿠버네티스 (NKS) 설치해보자.

아래 내용은 개인적으로 정리한 내용이고, CSP의 개발에 따라 내용이 틀려질수 있습니다.


<1> 콘솔 로그인과 VPC모드로 전환

<2>  VPC와 서브넷 생성

<3> 관리 서버 생성과 접속

<4> 서버에 Kubectl과 도커 설치 (선택)

<5> 컨테이너 이미지 생성

<6>  Container Registry 생성

<7>  Container Registry 접속을 위해 Access-key , Secert key 확인

<8>  Container registry 로그인하고 도커파일 올리기 push

<9>  Naver Container registry 에서 이미지 확인

<10> 삭제 필요시

<11> 같이보면 좋을 사이트



진행 순서

1. 관리용 웹서버 1대, 도커 이미지 생성

2. 레지스트리 생성,레지스트리에 도커 이미지 올리기

3. 쿠버네티스 클러스터 생성,kubectl 설정하고,   레지스트리의 도커 이미지로  Pod생성

4. 로드밸런서에 pod연결,서비스 확인



<1> 콘솔 로그인과 VPC모드로 전환


1

기본 Platform을 VPC모드 변경한다.




<2> VPC와 서브넷 생성

1

VPC생성

VPC > VPC Management > VPC생성

game-prd-vpc

10.0.0.0/16


2

서브넷 생성 시 이름?

서비스명-public-server-subnet1


game-public-server-subnet1

10.0.1.0/24

public, 일반


game-private-lb-subnet1

10.0.2.0/24

private, lb


game-private-ku-subnet1

10.0.3.0/24

prvate , 일반


이런식으로  서비스명-public -어떤 서브넷인지 표기해주는 게 좋다.

subnet 삭제 시 server나 lb가 있으면 서브넷 삭제가 안된다.

어떤 서브넷인지 표기를 해주면 해당 서브넷 삭제 시 해당 리소스를 삭제하고 서브넷 삭제하면 된다.



3

nacl 설정

game-web-nacl

외부에서 내부로 80 허용

외부에서 내부로  ssh 22 허용

내부에서  외부로 1-65535  tcp , udp 허용



4

서버에 적용할 acg  설정 , access group 설정

Server > ACG >  ACG생성


game-kube-acg

IN

TCP

22

80

3000

4000

5000


OUT

TCP

UDP

1-65535




5

NAT Gateway 생성한다.

private의 k8s가 외부 통신을 할수 있도록 한다.

VPC > NAT Gateway

game-pri-k8s-ngw


이제 네트워크는 다 되었다!!



6

설치후 

접속법이 IAM 설정법으로 변경 됨. 2022년 3월 1일 현재


생성과 접속법

https://brunch.co.kr/@topasvga/2210




<3> 관리 서버 생성과 접속


1

centos 7.3 설치

game-public-web-subnet1에 설치

game-k8s-man-sever

공인 ip 할당 - 외부에서 접속해야 하므로

game-web-man-server

(게임 웹 관리 서버)


2

관리자 비밀번호 확인에서 키 넣고  비밀번호 확인


3

root암호를  개인 암호로 변경

[root@game-k8s-man-sever ~]# passwd root

Changing password for user root.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.


4

putty로 서버 로그인

root






<4> 서버에 Kubectl과 도커 설치 (선택)


cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg 

https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

EOF


yum install -y kubectl

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum install -y docker-ce

systemctl start docker




<5> 컨테이너 이미지 생성


1

mkdir  image

cd image



# vi Dockerfile

-------------------------------------------------------------------------------------------

FROM centos:7

# Install Apache

RUN yum -y update && yum install -y httpd httpd-tools && yum install -y telnet

# change index.html

RUN echo '<!DOCTYPE html> \ <head> \

<title> game </title> \

</head>\

<body style="text-align:center">\

<h2> game test! </h2>\

<div><b>Subject :</b> Kubernetes Service </div> </body> </html>' >  /var/www/html/index.html

CMD ["systemctl","restart","httpd"]

#Start Apache

CMD ["/usr/sbin/httpd","-D","FOREGROUND"]


2

docker build -t image_apache .


3

docker images



4

docker run -tid -p 80:80 --name=hello_apache image_apache



5

브라우저에서   서버 공인 IP 접속




<6> Container Registry 생성


1

버킷 만들기

seo-bucket 1


2

NCR (Naver Container Registry  ) 생성

Products & Services > Compute > Container Registry > 레지스트리 생성  >


NCR  프라이빗 엔드포인트 확인?   프라이빗이다.

oooxxx.kr.private-ncr.ntruss.com




<7>  Container Registry 접속을 위해 Access-key , Secert key 확인


1

마이페이지  > 계정 관리 > 인증키 관리 >

Access-key , Secert key 확인?

KFxxxxxxxxxxxxx




<8>  Container registry 로그인하고 도커파일 올리기 push


1

 Container registry 로그인


# docker login -u <access-key-id> <private-endpoint> Password : <secret-key> Login Succeeded

docker login -u  KFLxxx  ooooooxxx.kr.private-ncr.ntruss.com 

Password : <secret-key>

Login Succeeded


2

도커 파일 올리기 push


# docker image tag image_apache <private-endpoint>/image_apache:1.0

docker image tag image_apache oooox.kr.private-ncr.ntruss.com/image_apache:1.0


# docker push <private-endpoint>/image_apache:1.0

docker push oooox.kr.private-ncr.ntruss.com/image_apache:1.0





<9>  Naver Container registry 에서 이미지 확인




다음은


3 쿠버네티스 클러스터 생성

kubectl 설정하고,   레지스트리의 도커 이미지로  Pod생성


4 로드밸런서에 pod연결

서비스 확인


해보자~~


https://brunch.co.kr/@topasvga/2035



관련 정보

https://www.youtube.com/watch?app=desktop&v=RWBOZPevWNY




<10> 삭제 필요시


네이버 클라우드 플랫폼은 VPC를 한번에 삭제하지 않는다.

서브넷 부터 삭제후 VPC가 삭제 가능하다.

서브넷 삭제시 운영중인게 있으면 서브넷 삭제가 안된다.

서버는 정지후 반납 한다.

nks는  반납 보호 설정이 되어 있다.  서버 관리 및 설정 변경에서 반납 보호 설정 변경을 해지후 삭제가 가능하다.



<11> 같이보면 좋을 사이트


https://brunch.co.kr/@topasvga/1863



감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari