brunch
매거진 NCP

(강의)PRO-LAB6. NKS, VPC Peering

by Master Seo

<1> NKS . 쿠버네티스를 위한 네트워크 생성

<2> 네이버 생성권한 설정

<3> 쿠버네티스 생성권한 설정 ncp-iam

<4> Container에 올라간 이미지를 이용해 Pod 생성

<5> VPC Peering



<1> NKS . 쿠버네티스를 위한 네트워크 생성


1

슬라이드2.JPG
슬라이드3.JPG






2

k8s-08-01-1

KVM

public 으로 변경


k8s-08-01-1-np

노드 1대

추가

다음

다음

생성





<2> 네이버 생성권한 설정


1

ncloud config 하기위해 ncloud 명령어 설치


wget https://www.ncloud.com/api/support/download/files/cli/CLI_1.1.23_20241121.zip

unzip CLI_1.1.23_20241121.zip

cd CLI_1.1.23_20241121/

cd cli_linux/

cp ncloud /usr/bin/

ncloud help






2

ncloud config

# 네이버 클라우드에 명령을 내릴수 있도록 권한 부여


ncloud configure

ncp_iam_xxxxxxxxxxx

ncp_iam_xxxxxxxxxxx

URL 입력 : <엔터> 치시면 됩니다.



# 권한 있는지 확인 = 리전에 서버 리스트 확인하기

ncloud vserver getRegionList


# 명령툴들 설치하기


1) 네이버 클라우드에 권한이 있어야 한다.- access-key,secret-key

2) ncloud CLI 다운로드 , ncloud configure 실행

3) # NKS 사용을 위한 인증 - ncp-iam 설치

4) # kubectl 명령어 설치

5) # alials 단축 명령어




<3> 쿠버네티스 생성권한 설정 ncp-iam



1

cd

curl -o ncp-iam-authenticator -L https://github.com/NaverCloudPlatform/ncp-iam-authenticator/releases/latest/download/ncp-iam-authenticator_linux_amd64

chmod +x ./ncp-iam-authenticator

mkdir -p $HOME/bin && cp ./ncp-iam-authenticator $HOME/bin/ncp-iam-authenticator &&

export PATH=$PATH:$HOME/bin

echo 'export PATH=$PATH:$HOME/bin' >> ~/.bash_profile

ncp-iam-authenticator help



2

# clusterUuid는 콘솔에서 확인하자. 쿠버네티스 클러스터 UUID이다.

104333ef-6256-4fa7-9141-79623d0522b3


ncp-iam-authenticator create-kubeconfig --region KR --clusterUuid xxxxxxxxxxxxxxxx --output kubeconfig.yaml


ncp-iam-authenticator create-kubeconfig --region KR --clusterUuid 104333ef-6256-4fa7-9141-79623d0522b3 --output kubeconfig.yaml



3

# kubectl 명령어 설치


curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"


sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl



4

# alials 단축 명령어


vi ~/.bash_profile

맨 아래줄에 아래 내용 3줄 추가


alias k='kubectl --kubeconfig="/root/kubeconfig.yaml"'

alias kw='watch -d kubectl get deploy,svc,pods --kubeconfig="/root/kubeconfig.yaml"'

alias kwn='watch -d kubectl get no,deploy,svc,pods --kubeconfig="/root/kubeconfig.yaml"'


저장하고 나옴

:wq!



# 반영 , 아래 2줄 실행

source ~/.bash_profile

k get nodes





<4> Container에 올라간 이미지를 이용해 Pod 생성


1

# 참고 - secret 사용하기


# private end point

t4h5vvxm.kr.private-ncr.ntruss.com



k create secret docker-registry regcred --docker-server=t4h5vvxm.kr.private-ncr.ntruss.com --docker-username=ncp_iam_xxxxxx --docker-password=ncp_iam_xxxxxxx --docker-email=topasvag@kakao.com



[root@init2 lab3]# k get secret

NAME TYPE DATA AGE

regcred kubernetes.io/dockerconfigjson 1 22s




2

# pod 생성 랩 해보기


cd

cd lab_source/

cd lab3/


vi create_only_pod.yaml


k create -f create_only_pod.yaml


k get pods -w



3

# 디플로이먼트로 pod 생성


vi create_deployment.yaml


k create -f create_deployment.yaml



4

디플로이먼트 로드 밸런서 연결






<5> VPC Peering



VPC ID , 계정명, VPC명

Peering 구성

Route table 추가


서울과 싱가포르에 네트워크를 구축하고 내부 연동해보자~

VPC 간 연결 = 피어링 하기



결론

현재 동일 리전의 VPC 간 피어링만 가능 것으로 보임.

다른 리전과 VPC 피어링은 안되는 것으로 보임



<1> 구성 1 - 같은 계정 - 서울--- 피어링 -----서울 = 잘됨

<2> 구성 2 - 같은 계정 - 서울 ---피어링--- 싱가포르 = 안됨

<3> 구성 3 - 다른 계정 - 서울 ---피어링--- 서울 = 잘됨

<4> 구성 4 - 다른 계정 - 서울 ---피어링--- 싱가포르 = 안됨

<5> vpc peering 삭제 순서

<10> 네이버 클라우드 가이드



<1> 구성 1 - 서울--- 피어링 -----서울 = 잘됨


1

같은 계정

서울 k8s-vpc --------- 피어링-------- 서울 vpc2

서버 1번 서버 2번


서울 k8s-vpc는 10.0.0.0 /22 (C-class 4개)

서울 vpc2는 10.10.0.0 /22 (C-class 4개)



2

서버 1에서 서버 2의 사설 IP로 통신되도록 하기. ping 되게 하기


10 서울-서울.png



3

같은 계정 서울 --- 서울은 자동 수락된다.

20 수락.png



4

vpc2에서도 피어링 요청 필요함

VPC > VPC Peering > VPC Peering 생성 > vpc2-to-k8 svpc-peer > 요청 vpc2 , 수락 내계정 k8s-vpc



4

라우팅 잡자


서울 ks8-vpc에서

VPC > Route Table > k8s-pc-table > Route 설정 >

10.10.0.0/22 VPCPEERING seoul-to-seoul-peer > 생성 > 확인


서울 vpc2에서

VPC > Route Table > vpc2-table > Route 설정 >

10.0.0.0/22 VPCPEERING vpc2-to-k8s-vpc-peer > 생성 > 확인



5

서울 ks8-vpc에서 서울 vpc2 서버의 사설 IP로 ping 테스트하자.

10.0.0.6 ------------- 10.10.0.6


[root@pub1 ~]# ping 10.10.0.6

PING 10.10.0.6 (10.10.0.6) 56(84) bytes of data.

64 bytes from 10.10.0.6: icmp_seq=1 ttl=64 time=1.44 ms

64 bytes from 10.10.0.6: icmp_seq=2 ttl=64 time=0.888 ms

64 bytes from 10.10.0.6: icmp_seq=3 ttl=64 time=0.958 ms

64 bytes from 10.10.0.6: icmp_seq=4 ttl=64 time=0.835 ms

64 bytes from 10.10.0.6: icmp_seq=5 ttl=64 time=0.568 ms




6

acg에서 ping 허용으로 변경?


들어오는 것에 대해 icmp 만 허용하면 되겠네요~

[root@s17 e9 b01433 d ~]# ping 1.1.1.1

PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.

64 bytes from 1.1.1.1: icmp_seq=1 ttl=49 time=33.3 ms

64 bytes from 1.1.1.1: icmp_seq=2 ttl=49 time=32.8 ms

64 bytes from 1.1.1.1: icmp_seq=3 ttl=49 time=32.9 ms

64 bytes from 1.1.1.1: icmp_seq=4 ttl=49 time=32.9 ms



아래는 서버 디폴트 ACG

100 default acg in.png


110 default acf out.png


7

서버 로그온해 root 암호 변경

passwd root




<2> 구성 2 - 같은 계정 - 서울 ---피어링--- 싱가포르 = 안됨



리즌 내 VPC Peering만 가능한 것으로 보임 - 2022년 1월 30일 현재

서울과 타 리즌 간에 VPC Peering 설정은 메뉴에 안 나옴.




<3> 구성 3 - 다른 계정 - 서울(naver) ---피어링--- 서울 (kakao) = 잘됨


1

다른 계정에서 vpc 생성

ka-se-vpc1

카카오 계정 - 서울 - vpc 1

10.30.0.0/22



서브넷 생성

ka-se-pub1-vpc1

10.30.0.0/24


2

양쪽에서 피어링 요청


카카오 계정에서?

ka-se-vpc1-to-na-se-k8s-vpc

카카오 서울 vpc1에서 , 네이버 서울 ks8-vpc로 피어링 요청

네이버 계정 VPC > VPC Peering에서 수락

다른 계정

topasvga@naver.com

VPC ID 17147

VPC 이름 k8s-vpc


네이버 계정에서 수락

na-se-k8s-vpc-to-ka-se-vpc2

네이버 서울 k8s-vpc에서 , 카카오 서울 vpc2로 피어링 요청

카카오 계정 VPC > VPC Peering에서 수락

다른 계정

topasvga@kakao.com

VPC ID 17157

VPC 이름 ka-se-vpc1




3

라우팅 설정

네이버 계정 Route Table에서 10.30.0.0/22 추가

카카오 계정 Route Table에서 10.0.0.0/22 추가


4

B 카카오 계정에 서버 1대 생성, ping 허용


5

A 네이버 계정 서울에서 - B 카카오 계정 서울 사설 IP로 ping 테스트 = 잘됨


[root@pub1 ~]# ping 10.30.0.6

PING 10.30.0.6 (10.30.0.6) 56(84) bytes of data.

64 bytes from 10.30.0.6: icmp_seq=96 ttl=64 time=1.66 ms

64 bytes from 10.30.0.6: icmp_seq=97 ttl=64 time=0.751 ms

64 bytes from 10.30.0.6: icmp_seq=98 ttl=64 time=0.847 ms

64 bytes from 10.30.0.6: icmp_seq=99 ttl=64 time=0.840 ms




6

다른 계정과 VPC Peering 생성 시 필요한 값?


300 다른 계정 vpc.png





<4> 구성 4 - 다른 계정 - 서울 ---피어링--- 싱가포르 = 안됨


피어링에서 안 보임

안됨


카카오 계정에서 작업?


ka-si-vpc1

카카오 싱가포르 vpc1

10.50.0.0/22


ka-si-pub1-subnet


VPC > VPC Peering >

다른 계정

topasvga@naver.com

VPC ID 17147

VPC 이름 k8s-vpc


안됨


다른 계정 다른 리전은 안됨.

결론 : 다른 리전 간의 피어링은 안됨?


100 다른계정 다른 리전 안됨.png





<5> vpc peering 삭제 순서


1

라우팅 테이블에 vpc peering 라우팅 삭제


2

VPC > vpc peering 삭제


3

반대편 계정에서 vpc peering 삭제

vpc 피어링으로 지정된 vpc는 삭제 불가


4

서브넷 삭제


5

VPC 삭제




<10> 네이버 클라우드 가이드


https://guide-gov.ncloud-docs.com/beta/docs/networking-vpc-vpcuserscenario4



다음

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



keyword
매거진의 이전글(강의) PRO-LAB5. 컨테이너 레지스트리