kubespray image

kubespray

다양한 설치 옵션 및 운영체제를 지원하는 Ansible 기반의 쿠버테니스 설치 자동화 도구

https://github.com/kubernetes-sigs/kubespray

 

1) 소스 받기

git clone https://github.com/kubernetes-sigs/kubespray.git

sudo apt update -y

 

2) 파이썬 가상화 환경 셋팅

sudo apt install python3-venv

 

3) kubespray디렉토리에 가상환경 생성

python3 -m venv .venv

 

4) 가상환경 활성화

source ./venv/bin/activate

 

5) 가상환경 활성화 된 상태에서 패키지 설치

sudo pip3 install -r requirements.txt

안녕하세요.

 

컨테이너 기술인 도커를 돌려볼려고 합니다.

 

목표는 아주 쉬운 기초입니다.

 

node.js 프로그래밍 언어로 만들어진 간단한 api 요청을 받아주는 웹사이트를 도커 컨테이너에 띄우는 것이 목표입니다.

 

따라서 도커 데스크탑 등을 설치해야 구동할 수 있습니다.

윈도우, Mac os에서는 도커 데스크탑을 설치하는 것이 편합니다.

리눅스에서는 도커 엔진을 깔면 되죠.

 

--

이제 작업을 시작합니다.

node.js로 된 간단한 웹서버 하나를 만듭니다.

요청을 받으면 Hello World! 라고 응답하는 기능입니다.

 

디렉토리를 우선 만듭니다.

 

mkdir nodejs-docker-example 

nodejs-docker-example이라는 디렉토리를 생성한 것입니다.

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

이 파일을 app.js 라고 저장합니다.

{
  "name": "nodejs-docker-example",
  "version": "1.0.0",
  "description": "Node.js Docker Example",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "^4.17.1"
  }
}

이 파일을 package.json 이라고 저장합니다.

# Use the official Ubuntu base image
FROM ubuntu:latest

# Update package list and install Node.js
RUN apt-get update
RUN apt-get install -y nodejs
RUN apt-get install -y npm

# Set the working directory in the container
WORKDIR /app

# Copy package.json and package-lock.json to the container
COPY package.json ./

# Install app dependencies
RUN npm install

# Copy the application files to the container
COPY . .

# Expose the port the app runs on
EXPOSE 3000

# Command to run the application
CMD ["npm", "start"]

# Add a command to create a start_success file in /tmp/
RUN touch /tmp/start_success

이 파일을 Dockerfile 이라고 저장합니다.

 

app.js
0.00MB
Dockerfile
0.00MB
package.json
0.00MB

 

 

위 파일을 nodejs-docker-example 디렉토리에 집어넣습니다.

커맨드라인 프로그램을 켭니다.

 

docker build -t nodejs-docker-example .

더보기

-t nodejs-docker-example: 빌드한 이미지의 태그를 지정합니다.
-f Dockerfile-custom: 사용할 도커파일을 지정합니다. 여기서는 Dockerfile-custom을 사용합니다.
.: 현재 디렉토리를 빌드 컨텍스트로 사용합니다. 즉, 현재 디렉토리에 있는 모든 파일과 도커파일을 빌드에 포함시킵니다.

 

docker run -p 3000:3000 --name my-nodejs nodejs-docker-example

 

앞 3000포트는 호스트(로컬머신)의 포트입니다.

뒤 3000포트는 컨테이너의 포트입니다.

두 포트를 매핑합니다.

 

컨테이너 이름은 my-nodejs 로 하였습니다.

 

컨테이너 내부를 접근하고 싶다면

docker exec -it my-nodejs /bin/bash 로 접속해서 볼 수 있습니다.

 

크롬에서 http://localhost:3000 을 요청하게 되면 Hello World!를 볼 수 있습니다.

안녕하세요. 첫 글입니다.

쿠버네티스 실습을 하려고 합니다.

 

스터디를 목적으로 진행하려고 하며 이 환경을 차근 차근 알아볼 예정입니다.

 

----

virtualbox를 활용하여 가상머신 virtual machine(이하 vm)에서 쿠버네티스를 설치, 운영하는 것을 해보려고 한다.

virtualbox 설치, ubuntu 20.04 설치는 이 포스트에서 다루지 않는다.

구글 검색 추천!

 

총 3개의 vm을 준비한다.

node1  192.168.50.61

node2  192.168.50.62

node3  192.168.50.63

 

--

1) ubuntu 20.04

 

필요한 셋팅을 아래 순서대로 진행한다.

 

sudo apt install net-tools

 

sudo vi /etc/sudoers

# User privilege specification
root    ALL=(ALL:ALL) ALL
sunsh   ALL=(ALL) NOPASSWD:ALL

 

sudo vi /etc/sudoers.d/sunsh

sunsh   ALL=(ALL) NOPASSWD:ALL

 

 

네트워크

sudo vi 00-installer-config.yaml

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      dhcp4: no
      addresses:
              - 192.168.50.61/24
      nameservers:
              addresses: [8.8.8.8, 8.8.4.4]
    enp0s9:
      dhcp4: no
      addresses:
              - 192.168.50.61/24
  version: 2

각 vm마다 해당 아이피를 입력합니다. 61,62,63으로 정했다.

 

sudo netplan apply

 

방화벽 해제

sudo ufw disable

 

 

우선 여기까지로 다음 포스트를 참고한다.

+ Recent posts