
쿠버네티스 소개 쿠버네티스는 “여러 서버에 분산된 서비스를 통합 지휘하는 컨테이너 관리 플랫폼"입니다. 여러분들이 마이크로서비스를 컨테이너화 하여 제공하고 싶다면 도커Docker와 더불어 쿠버네티스Kubernetes에 대해서도 반드시 알아야 합니다. 왜일까요 ? 다른 여러 이유가 있겠지만 가장 기본적인 이유는 도커는 한대의 머신 또는 가상머신에서만 컨테이너를 관리할 수 있기 때문입니다. 거의 대부분의 서비스는 여러 대의 머신 또는 가상머신에서 서비스 되야 하고 여러 대에 컨테이너를 배포하고 운영하려면 쿠버네티스가 반드시 필요 합니다. 쿠버네티스는 도커에 비하면 훨씬 복잡하고 제공하는 기능도 많습니다. 그만큼 배워야 할 것도 많고 다루기도 까다롭습니다. 쿠버네티스Kubernete는 그리스어이며 ‘조정', ..

학습 목표 마이크로서비스는 ‘Time to market을 달성하는 ‘Speedy’한 서비스, 수익 창출하는 ‘Service Always’한 서비스, 비용 최적화하는 ‘Save Cost’한 서비스를 보장해 기업의 성공 확률을 높여주는 강력한 수단입니다. 이러한 ‘3S’를 보장하는 서비스는 마이크로화, 독립적 빌드/배포/스케일, 반복/순환적인 발전이 되어야 합니다. 그러려면 마이크로서비스 간의 독립성을 유지해야 하는데, 독립성 유지는 컨테이너로 격리하는 방법이 가장 좋습니다. 그래서 마이크로서비스에 컨테이너 기술이 많이 이용되고 있습니다. 마이크로서비스의 컨테이너화에 가장 많이 사용하는 제품 중 도커Docker를 알아보겠습니다. 이 장의 목표는 도커 그 자체에 대한 깊이 있는 기술 지식을 전달하는것이 아니라..
혹시 시크릿이 쿠버네티스 저장소인 etcd에 저장되지 않는다고 생각하시는 분이 계신가요 ? 아닙니다. 시크릿 데이터도 etcd에 저장됩니다. 그것도 무려 평문으로 저장됩니다. 하긴 base64로 인코딩되어 저장되도 쉽게 디코딩이 되니 그게 그거겠지만 말입니다. 쿠버네티스에서는 etcd에 저장되는 시크릿 데이터를 암호화 하는 방법을 제공 합니다. etcd를 암호화 하는 이유는 컨트롤 플레인 노드의 루트 권한을 가진 사람은 etcd를 접근하여 시크릿 데이터를 볼 수 있기 때문입니다. https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/ Encrypting Secret Data at Rest This page shows how to enable ..

container image는 내부적으로 잘게 쪼개진 layer들로 구성되어 만들어집니다. 아래는 registery로 push할때의 결과 화면입니다. 앞에 id처럼 나오는것들이 layer입니다. 이 layer들의 정체는 무엇일까요 ? 예를 들어 user.js라는 어플리케이션의 image를 build하는 Docker파일을 한번 봅시다. FROM에 명시된 node:carbon이 COPY문에 있는 user.js를 구동시켜주는 nodejs WAS입니다. WAS가 구동 되려면 OS가 있어야 합니다. 그래서 users-img라는 Image는 아래와 같이 구성됩니다. * Core Linux는 최소한의 OS기능 수행을 위한 매우 가벼운 OS입니다. VM의 Guest OS와는 비교가 안될 정도로 매우 작은 크기입니다. ..

IBM Cloud Virtual Box 신청 가이드 https://cloud.ibm.com IBM 계정 작성 IBM계정이 없는 경우 IBM 계정 작성 버튼을 클릭 하여 회원 가입을 합니다. 입력한 메일 계정으로 들어가, 수신된 확인 메일에서 [Confirm account]을 클릭합니다. 계정 업그레이드 VM을 만들려면 계정을 업그레이드 해야 합니다. 카드 정보를 입력하고 [다음]버튼을 누르면 카드정보가 올바른 경우 아래와 같은 확인 페이지가 나옵니다. 가끔 Validation 에러가 나는데 여러번 시도하면 됩니다. VM 작성 VM 작성을 시작합니다. VM의 종류를 선택합니다. 임시 Virtual Server 옵션을 선택한 경우 VM을 Power Off 시키면 비용 청구는 안되지만, 사전 예고 없이 VM이..

kubernetes의 리소스를 CRUD할때 kubectl명령으로 할 수도 있지만, 이를 좀더 편하게 할 수 있는 유틸리티가 있어 소개합니다. k9s라는 툴이고, 실제 해외에서는 많이 사용하고 있다고 하네요. https://k9scli.io/ K9s - Manage Your Kubernetes Clusters In StyleWho Let The Pods Out? K9s is a terminal based UI to interact with your Kubernetes clusters. The aim of this project is to make it easier to navigate, observe and manage your deployed applications in the wild. K9s con..

k8s cluster를 설치할 때 API server의 IP는 보안 때문에 보통 private IP를 지정합니다. 아래와 같이 말입니다. kubeadm init --pod-network-cidr= --apiserver-advertise-address= 어떠한 이유로 외부에서 k8s의 API server로 접근해야 한다면 kubernetes cluster를 다시 설치해야 할까요 ? 예를 들어 본인 PC에 Oracle VirtualBox같은걸로 Centos를 설치하고, 그 VM에서 kubectl로 k8s cluster를 접근하고 싶을때 말입니다. 아래 글에 그 방법을 자세하게 설명하고 있습니다. https://blog.dudaji.com/kubernetes/2020/04/08/add-ip-to-kube-ap..

cluster를 여러 사람이 사용하기 위해서는 OS user를 각각 만들고, 각 OS user에게 특정 namespace만 Write할 수 있도록 허용해야 합니다. 이를 자동화하기 위한 Shell을 공유합니다. k8s를 설치한 user 계정으로 수행해야 하며 그 유저는 sudo 권한이 있어야 합니다. create-user 실행 파일 만들기아래 내용으로 ~/.kube/create-user라는 shell파일을 만든 후 실행파일로 만드십시오.$ cd ~/.kube$ vi create-user1) Ubuntu#!/bin/bash# Get parameterif ([ $# == 0 ]) || ([ $# -eq 1 ] && [ "$1" == "-h" -o "$1" == "--help" ]); then echo ..

1. 개요 1.1 가이드 목표 prometheus와 grafana를 이용하여 모니터링 체계를 구축하는 방법에 대해 이해 1.2 아키텍처 kubernetes 리소스의 metric(사용현황) 정보를 수집(prometheus)하여 대시보드로 제공 (grafana)할 수 있도록 하기 위해 prometheus와 grafana툴을 이용함 1.3 사전 작업 1) helm 설치 happycloud-lee.tistory.com/3?category=832245 2) helm chart repository 추가 helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo add kube-state-metrics h..

1. 개요 1.1 가이드 목표 EFK스택을 이용하여 통합로깅체계를 구축하는 방법에 대해 이해 1.2 EFK아키텍처 elastic search는 로그가 저장되는 Database입니다. fluentd는 각 Pod의 로그를 수집하는 데몬 프로그램입니다. kibana는 elastic search의 로그를 통합 조회 및 검색할 수 있는 web UI를 제공합니다. 1.3 사전 작업 1) helm 설치 happycloud-lee.tistory.com/3?category=832245 2) helm chart repository 추가 helm repo add elastic https://helm.elastic.co helm repo update 3) namespace 작성 $ kubectl create ns efk 4)..
kubernetes config (보통 ~/.kube/config파일)를 셋팅해주는 shell프로그램입니다. 아래 소스로 shell파일을 만들고, 실행권한을 준 후 , 실행하시면 됩니다. $ vi setup-config $ chmod +x setup-config $ ./setup-config kubernetes hklee kubernetes 클러스터에 아래와 같이 작업 - 네임스페이스 ns-hklee 생성 - Service account sa-hklee 생성 - rb-sa-hklee라는 rolebinding하면서 sa-hklee에게 ns-hklee의 'admin' 역할 부여. 다른 namespace는 접근 못하게 함 - kubeconfig에 service account 'sa-hklee'생성 - kube..

centos7.x과 RHEL7.x에 설치하는 방법입니다. bastion서버는 internet 연결이되는 서버를 의미합니다. Download Docker (bastion node에서 수행) o yum utility 설치 $ yum install -y yum-utils o Docker repository 등록 $ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo $ yum repolist RHEL7.x에서는 위 명령 결과를 보면 404에러가 날 수 있습니다. Repository URL이 이상하게 등록되기 때문입니다. 아래와 같이 repository의 URL을 수동으로 변경합니다. $ cd /etc/yum...

NFS서버 설치는 아래 글을 참고하세요 .happycloud-lee.tistory.com/46?category=832247 NFS서버 만들기1. ubuntu https://hiondal.blog.me/221624709742 NFS서버 만들기 k8s에서 Volume으로 사용할 수 있는 종류는 아래와 같이 매우 많습니다. 그 중에 많이 사용하는 volume ty... blog.naver.com 2. centos NFS서버..happycloud-lee.tistory.com PVC만 생성되면, 자동으로 PV를 만들어 binding하려면 nfs dynamic provisioning을 설정해야 합니다.NFS Dynamic Provioning은 아래 글을 참고하세요.변경사항) 2023-02-05 NFS Provisi..
[출처] nevido.tistory.com/640 pv나 pvc삭제시 kubectl delete pv/pv-name or pvc/pvc-name으로 안될때 --grace-period=0 이 옵션을 해보고 안되면 --grace-period=0 --force 이것도 안될경우 edit후 - kubernetes.io/pv-protection 해당 부분이 존재하는지 확인해본다 만약 있다면 kubectl patch pvc pvc_name -p '{"metadata":{"finalizers":null}}' kubectl patch pv pv_name -p '{"metadata":{"finalizers":null}}' kubectl patch pod pod_name -p '{"metadata":{"finalizers"..

centos에 flannel을 CNI(Container Network Interface)로 사용하는 경우 발생 할 수 있습니다. 잘 수행되다가 갑자기 아래와 같은 현상이 발생할 수 있습니다. - kube-system 네임스페이스의 coredns Pod가 모두 Complete상태가 되면서 중지됨 - kube-system 네임스페이스의 flannel Pod중 하나가 CrashLoopBackOff상태가 됨 - Flannel Pod의 log를 보면 아래와 같이 IPv4 주소를 못찾는다는 에러가 발생함 $ kubectl -n kube-system logs kube-flannel-ds-2vnhjI0601 19:31:31.628591 1 main.go:475] Determining IP address of defau..

IBM Public Cloud에서 VPN접근을 설정하는 방법을 설명합니다. VPN접근 설정 - 본인의 계정으로 로그인합니다. - Manage > Access(IAM)을 클릭합니다. - [Users]메뉴를 선택하고, 본인 이름을 클릭합니다. - User details탭에서 VPN암호를 설정합니다. 암호는 연필 모양 눌러 지정합니다. User name도 다른 곳에 잘 복사해 둡니다. - VPN Client설치 및 로그인 1) VPN Client 설치 아래 페이지를 참조하여 OS에 맞는 VPN 클라이언트를 설치합니다. cloud.ibm.com/docs/iaas-vpn?topic=iaas-vpn-standalone-vpn-clients 2) 로그인 [Add]를 클릭하고, Title, Gateway, Userna..

kubeadm으로 k8s를 설치한 후 ingress controller를 추가로 설치해야 합니다.1. minikube에 설치만약, minikube를 사용한다면 아래 명령으로 간단히 설치할 수 있습니다. $ minikube addons enable ingress 2. kubernetes 1.23.* 이상에 설치 2021년 12월 현재 k8s 1.23.1에 설치하는 방법입니다. 그전 버전에서 문제가 있었던 ingress설치 버그가 해결이 되어 공식 페이지에서 가이드하는 아래 방법으로 잘 설치 됩니다. 아래 페이지에서 Baremetal 설치를 이용하여 설치 하십시오. https://kubernetes.github.io/ingress-nginx/deploy/ Installation Guide - NGINX In..
kubernetes를 오프라인에 설치하는 방법을 가이드합니다. 출처: https://docs.genesys.com/Documentation/GCXI/9.0.0/Dep/DockerOffline 위 문서를 기반으로 작성한 vanilla k8s offline 설치 가이드는 아래 문서를 참조하십시오. drive.google.com/file/d/1P39WgYQGobx4LizjVLz9AY9F4pb2uyfe/view?usp=sharing Vanilla Kubernetes Offline 설치 가이드.docx drive.google.com
- Total
- Today
- Yesterday
- 돌봄경제
- 요즘남편 없던아빠
- 도파밍
- CQRS
- SAGA
- 호모프롬프트
- micro service
- 애자일
- 버라이어티가격
- 스핀프로젝트
- agile
- 마이크로서비스
- spotify
- 마이크로서비스 패턴
- Event Sourcing
- 리퀴드폴리탄
- 육각형인간
- 디토소비
- API Composition
- 분초사회
- 스포티파이
- AXON
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |