NHN Cloud Native 알아보기 오프라인 교육 정리 자료입니다!
NHN Cloud 콘솔 서비스에서 NKS, NCR, NCS 선택을 해주었습니다.
먼저 클러스터 생성을 해봅니다.
클러스터 생성에 있어 설정 화면 입니다.
기존에 직접 설치할때는 번거로웠던 오토스케일링도 클릭 몇번으로 생성 할 수 있네요.
이번엔 사용 안함으로 하고 생성 해보겠습니다.
제가 생성한 클러스터 생성 정보입니다.
클러스터 생성되는동안 NCR 레지스트리 생성합니다.
레지스트리가 생성되면 Public URI가 나오게되는데, 나중에 쓸데가 있으니 따로 복사해줍시다.
인스턴스에 가보면 생성하지 않은 인스턴스 2개가 생성되어있습니다. 이건 이전에 클러스터 생성할 때 노드수를 2로 지정해놓았기 때문입니다. 이 2개는 워커노드로 실제 동작하는 노드이며, 마스터 노드는 NHN 백단에서 3개의 노드가 돌아가게 됩니다.
생성되어있는 2개의 인스턴스를 제외하고, 관리 인스턴스 MGMT를 생성해줍니다. 생성정보는 이미지와 같습니다. 생성에 필요한 스크립트도 코드블럭으로 적어놓겠습니다. 도커와 kubectl 관련 스크립트입니다.
#!/bin/sh
sudo su
apt-get update -y
apt-get install ca-certificates curl gnupg lsb-release -y
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update -y
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
systemctl start docker
docker version
apt-get update -y
apt-get install -y apt-transport-https ca-certificates curl
##curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
##echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
apt-get update -y
apt-get install -y kubectl
apt-mark hold kubectl
systemctl daemon-reload
kubectl version --output=yaml --client
apt-get install bash-completion -y
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
sudo echo "source /usr/share/bash-completion/bash_completion" >> ~/.bashrc
sudo echo "source <(kubectl completion bash)" >> ~/.bashrc
24/04/15 기준
#!/bin/bash
sudo su
apt-get -y update
apt-get update -y
apt-get install ca-certificates curl gnupg lsb-release apt-transport-https -y
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update -y
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
systemctl start docker
docker version
curl -LO "https://dl.k8s.io/release/v1.26.3/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
export PATH=${PATH}:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin/:/usr/local/bin/
kubectl version --output=yaml --client
apt-get install bash-completion -y
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
sudo echo "export PATH=:${PATH}:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin/:/usr/local/bin/" >> ~/.bashrc
sudo echo "source /usr/share/bash-completion/bash_completion" >> ~/.bashrc
sudo echo "source <(kubectl completion bash)" >> ~/.bashrc
apt-get -y install python3-pip
apt-get -y install unzip
pip3 install --upgrade pip
pip3 install jupyterlab
mkdir ~/notebook
cd ~/notebook
git clone https://github.com/docker/getting-started-app.git
nohup jupyter lab --allow-root --ip=0.0.0.0 --ServerApp.password='argon2:$argon2id$v=19$m=10240,t=10,p=8$FyNtkcX7M7pIOWikeCB+DA$HSswgISi3D+Cxm04W7ufMkKiUIFH29MeMEGCqv3TuSI' --ServerApp.token='' &
생성된 mgmt 서버에 접속한 모습입니다.
스크립드 일부분을 한번 더 입력해줍니다. 이 설정을 해주시면 TAB버튼을 눌렀을때 K8S 관련 명령어를 쉽게 완성하실수 있습니다. 위 스크립트 맨 뒤 4줄에 해당하는 명령어입니다.
콘솔로 가서 Kubeconfig 파일을 받아줍시다.
대충 아래와 같은 YAML 파일을 받으실겁니다
서버로 돌아가서 아래와 같이 디렉토리 및 파일을 생성해주시고 위에서 받은 파일을 작성해줍시다. 이때 디렉토리 이름과 파일 명은 고정입니다.
config 파일 설정까지 마치고 kubectl get nodes 해주면 워커노드 2개를 확인 할 수 있습니다. (직접설치땐 굉장히 복잡했던걸로 기억하는데..)
설치되어있는 도커도 확인해봅시다. nginx이미지로 컨테이너 생성 후 웹페이지에서 확인!
웰컴 페이지를 바꿔보자. 로컬에서 작성 후 도커 카피로 컨테이너 웰컴페이지 경로로 복사 후 확인!
Welcome to Nginx -> Welcome to NHN으로 바뀌었으면 바뀐 이미지를 커밋 해보자. docker image로 확인!
다시 콘솔로 넘어와 우측상단에 계정 누르고 API 보안 설정을 해주자. User Access Key ID 생성을 누르면 비밀번호가 뜨게 되는데 한번밖에 확인 못하니 잘 작성해놓자
NCR로 돌아가서 레지스트리를 클릭하게 되면 Docker 접근 명령어라는 부분이 있다. 이 부분을 복사해주자.
복사한 명령어를 기입하고, 위에서 잘 적어놓으라던 정보를 입력해보면 로그인이 성공했다는 명령어 확인이 가능하다.
이전에 생성했던 도커 이미지를 푸시해보자.
푸시했던 도커 이미지가 NCR 콘솔에서 확인이 가능하다.
Private 레지스트리 이미지를 받기 위해 인증 secret을 생성하자.
kubectl create secret generic regcred --from-file=.dockerconfigjson=/root/.docker/config.json --type=kubernetes.io/dockerconfigjson
deployment 설정을 해보자 yaml파일은 아래와 같다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nhn-nginx-deployment
labels:
app: nhn-nginx
spec:
replicas: 3
selector:
matchLabels:
app: nhn-nginx
template:
metadata:
labels:
app: nhn-nginx
spec:
containers:
- name: nhn-webserver
image: [사용자 NCR URI]/nhn-nginx:0.1
ports:
- containerPort: 80
imagePullSecrets:
- name: regcred
replicas 3 설정을 해주니 3개의 pod가 생성되었다.
replica 설정 때문에 pod를 지워도 새로운 pod 하나가 생성된다
웹페이지에서의 확인을 위해 expose 해주자. type은 LoadBalacner
웹페이지에서 확인이 가능하다.
신기하게도 Type을 로드밸런서 설정했다고, NHN 로드 밸런서가 자동으로 생성되었다.
내용을 기존 nginx에서 httpd로 고쳐보자
변경한점이 적용되고 있다.
호우 이제 아파치가 확인된다.
'Cloud > NHN' 카테고리의 다른 글
[NHN Cloud] VPC로 Public/Private 구분, 접속까지 (0) | 2022.10.28 |
---|