참고: https://argoproj.github.io/argo-workflows/quick-start/


ArgoCD 개념

  • GitOps를 구현하기 위한 도구 중 하나
    • GitOps: Git 저장소를 사용하는 소프트웨어 배포 접근 방식(인프라+소프트웨어)
    • Declarative Application Management 사용
      • git에 push한 desired state와 현재 kubernetes의 상태를 확인해 동기화 시켜줌
  • 이외의 기능
  • 단점
    • 쿠버네티스에서만 동작
    • 많은 지식이 필요
    • 빌드 파이프라인은 별도 구축 필요
    • 버전마다 버그가 있어 최신 버전 권장

ArgoCD 설치

  • ArgoCD 설치 - Rancher Desktop 기반의 k3s 환경에서 진행 중

❗ 튜토리얼의 설치 방법은 연습을 위한 것으로 실 운영 환경에선 설정 검토가 필수!!! ❗

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

# 설치 확인
kubectl -n argocd get po

 

  • argocd-server service 접속

접속을 위해 ClusterIP가 아닌 NodePort로 변경 (LoadBalancer가 있으면 그걸로 바꿔도 됨)

kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'

# window powershell에서 작업할 경우
kubectl patch service argocd-server -n argocd -p '{\"spec\": {\"type\": \"NodePort\"}}'

https://127.0.0.1:31497 로 접속

# 초기 비밀번호 확인
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo

# window powershell의 경우 base64 설치 안되어있음(그냥 직접 확인하자)
 kubectl edit secret -n argocd argocd-initial-admin-secret
 # 찾은 비밀번호를 base64로 디코딩!!!!

admin / 찾은 초기 비밀번호 로 로그인!

 

  • hello-world 예제 배포

실습 자료: https://github.com/choisungwook/argocd-practice/tree/main/example-1

New App 클릭
App Name, Project Name 작성
설정 후 create 클릭
sync버튼 눌러서 동기화..

'Container > Kubernetes' 카테고리의 다른 글

[Kubernetes] Rancher Desktop 설정  (0) 2023.09.25

참고: https://zellyshu.github.io/posts/2022-01-27-rancher-desktop-installation/

 

로컬 환경에서 간단하게 쿠버 환경 테스트 해보고자 구성 도구를 찾다가 Rancher를 알게 되었다.

해당 관련 내용 정리 예정!


Rancher Desktop

Electron으로 구현되어서 Windows, MacOS, Linux 에서 사용 가능한 것이 특징

특히 Mac의 경우 Intel 과 Silicon Mac 모두 지원

컨테이너 관리뿐만 아니라 간편하게 쿠버네티스 환경을 만들 수 있다는 것이 장점

Docs에서 자세한 내용을 확인할 수 있다.

 

 

❗ Rancher와는 다르다.. Rancher는 기업 대상으로 하는 클라우드 기반의 플랫폼 ❗

https://ksr930.tistory.com/133

  Rancher Desktop Rancher
대상 사용자 개인 기업 및 조직
기능 Kubernetes 클러스터 프로비저닝 및 관리 Kubernetes 클러스터 관리, 애플리케이션 배포 및 관리, 멀티 클라우드 관리
배포 데스크톱 운영체제 온프레미스, 클라우드 및 하이브리드 환경

Rancher Desktop 설치 및 사용

  • Rancher Desktop 설치

https://rancherdesktop.io/

위의 링크에서 환경에 맞는 걸로 설치! (나는 Windows)

관리자 권한으로 실행해야한다.

 

  • 이미지 pull

Add Image 클릭 후 hello-world 검색

pull 버튼 누르면 이미지 다운로드 완료

 

  • Windows powershell에서 실행
docker images
docker run hello-world

 

 

❗만약 이전에 eks 클러스터 연결되어 있는 상태였어서 자꾸 역할 에러 뜨면 context 변경을 해줘야한다 ❗

 kubectl config use-context rancher-desktop

'Container > Kubernetes' 카테고리의 다른 글

[Kubernetes] ArgoCD 설치  (0) 2023.09.26

https://linuxcontainers.org/lxd/introduction/

 

Linux Containers - LXD - Introduction

What's LXD? LXD is a next generation system container and virtual machine manager. It offers a unified user experience around full Linux systems running inside containers or virtual machines. It's image based with pre-made images available for a wide numbe

linuxcontainers.org

https://github.com/lxc/lxd

 

GitHub - lxc/lxd: Daemon based on liblxc offering a REST API to manage containers

Daemon based on liblxc offering a REST API to manage containers - GitHub - lxc/lxd: Daemon based on liblxc offering a REST API to manage containers

github.com

LXD(Linux Container Daemon)

  • LXC + security
  • Unprivileged container
  • Machine container
  • Container Hypervisor
  • 도커와 병행 가능
  • 요소
    • Daemon(Server), Command Line Client, Openstack Nova Plugin
  • kvm을 경쟁자로 본다.

'Container' 카테고리의 다른 글

[oslab] LXC  (0) 2021.09.13
[Docker] Docker Swarm  (0) 2021.09.11
[Docker] Docker Machine  (0) 2021.09.11
[Docker] Docker Compose  (0) 2021.09.11
[Docker] Docker Engine  (0) 2021.09.11

"Docker는 LXC라는 컨테이너 기술을 기반으로 만들어진 상위레벨의 컨테이너 기술"

https://linuxcontainers.org/

 

Linux Containers

LXC LXC is a well-known Linux container runtime that consists of tools, templates, and library and language bindings. It's pretty low level, very flexible and covers just about every containment feature supported by the upstream kernel. LXC is production r

linuxcontainers.org

https://github.com/lxc/lxc

 

GitHub - lxc/lxc: LXC - Linux Containers

LXC - Linux Containers. Contribute to lxc/lxc development by creating an account on GitHub.

github.com

 LXC(Linux Container)

  • 단일 리눅스 시스템에 동작하고 있는 프로세스를 격리시켜 각 프로세스마다 독자적인 리눅스 시스템 환경을 구축하는 것 ⇒ "OS 수준에서의 가상화"
  • Cgroups와 namespace를 결합하여 고립된 환경을 제공
  • LXC에서 가상화된 프로세스들은 모두 리눅스 시스템을 호환해야한다.
  • 장점
    • 특정 애플리케이션 환경만 따로 간편하게 구축 가능
    • 상대적으로 가볍다. Hypervisor를 이용하지 않아 오버헤드 발생이 적음.

 

'Container' 카테고리의 다른 글

[oslab] LXD  (0) 2021.09.13
[Docker] Docker Swarm  (0) 2021.09.11
[Docker] Docker Machine  (0) 2021.09.11
[Docker] Docker Compose  (0) 2021.09.11
[Docker] Docker Engine  (0) 2021.09.11

https://docs.docker.com/engine/swarm/

 

Swarm mode overview

 

docs.docker.com

 

Docker Swarm

  • docker container를 위한 클러스터링, 스케줄링 툴
  • 여러 개의 서버와 컨테이너 관리를 쉽게
  • 기능
    • docker engine 통합 관리(docker manager node에서 worker node를 통합 관리)
    • load balancing(worker node 접속 시 round robin 방식으로 worker node의 task를 연결)
    • task 개수 조절 기능(scale)
    • multi-host-networking(overlay network를 통해 task 간 사용할 수 있는 네트워크 제공)
    • 내장 DNS 서버 제공
  • 종류
    • docker warm mode: manager-node와 worker-node가 한 host에 공존
    • docker swarm: manager-node와 worker-node를 따로 구성(대규모)

docker swarm mode 물리적 구조

 

docker swarm mode의 load balancing

- 외부에서 어떤 host에 접근 하더라도 IPVSingress network를 사용하여 worker-node들이 제공하는 모든 task에 접속 가능

 

Docker Swarm Node

  • 도커나 스웜 모드에서 돌아가는 도커 서버
  • manager node / worker node

Manager node

  • 클러스터의 상태를 유지(뗏목 합의 알고리즘: 여러 서버 중 일부에 장애가 생겨도 나머지 서버가 정상적인 서비스를 할 수 있도록)
  • 스케줄링 서비스: worker node에게 컨테이너 배포
  • 스웜 모드 제공: docker swarm init

Worker node

  • 하나 이상의 manager node를 가짐
  • docker service create로 도커 스웜 실행("service 제공")
# 노드 상태를 drain으로 변경한다.
docker node update --availability drain <노드ID>

# 노드의 가용성을 확인한다.
docker node inspect --pretty <노드ID>

 

스케줄러가 매니저 노드에게 작업자 노드가 하는 task를 실행시키지 않기 위해서 매니저 노드의 가용성을 drain

스케줄러는 drain 상태의 노드에는 task를 맡기지 않고 active상태의 노드에게만 task 할당

'Container' 카테고리의 다른 글

[oslab] LXD  (0) 2021.09.13
[oslab] LXC  (0) 2021.09.13
[Docker] Docker Machine  (0) 2021.09.11
[Docker] Docker Compose  (0) 2021.09.11
[Docker] Docker Engine  (0) 2021.09.11

https://docs.docker.com/machine/

 

Docker Machine overview

 

docs.docker.com

 

Docker Machine

  • Dokcer Engine을 클라우드 컴퓨터, VM을 비롯한 원격지의 서버에 설치할 수 있도록 돕는 도구
  • 일반적으로 로컬 시스템에 Docker Machine을 설치하고 원격지 서버에는 Docker Engine을 설치하고 로컬과 통신

" Virtual Machine에 Docker 설치하고 이와 쉽게 통신하게 하는 프로그램"

 

사용법

https://kin3303.tistory.com/26

 

20. Docker Machine

Docker Machine Docker Machine 은 Docker Engine을 사용자 로컬 머신이 아닌 클라우드 컴퓨터, VM 을 비롯한 원격지의 서버에 설치할 수 있도록 돕는 도구이다. 1. Docker Engine이있는 호스트를 프로비저닝하고.

kin3303.tistory.com

❗ 실습은 차차 해보는 걸로 ❗

'Container' 카테고리의 다른 글

[oslab] LXC  (0) 2021.09.13
[Docker] Docker Swarm  (0) 2021.09.11
[Docker] Docker Compose  (0) 2021.09.11
[Docker] Docker Engine  (0) 2021.09.11
[Docker] Docker 구조  (0) 2021.09.11

+ Recent posts