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

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..

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..

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

docker.io의 공식 이미지인 curimages/curl을 이용하여, 한 줄로 Pod를 생성하는 방법입니다. 테스트를 위해 pod, service를 생성합니다. apiVersion: apps/v1 kind: Deployment metadata: labels: app: hostnames name: hostnames spec: selector: matchLabels: app: hostnames replicas: 1 template: metadata: labels: app: hostnames spec: containers: - name: hostnames image: k8s.gcr.io/serve_hostname --- apiVersion: v1 kind: Service metadata: labels: a..
kubectx cluster 전환을 쉽게 해주는 툴-helps you switch between clusters back and forth: kubens namespace 전환을 쉽게 해주는 툴-helps you switch between Kubernetes namespaces smoothly: 아래 github들어가서 자세한 설명을 참조하세요. 설치는 아래와 같이 하시면 됩니다. 1. https://github.com/ahmetb/kubectx 오픈 2. kubectx파일의 내용을 복사하여, kubectx파일 생성 3. kubens파일의 내용을 복사하여, kubens파일 생성 4. 실행파일 속성 추가 및 복사 chmod +x kubectx kubens sudo mv kubectx /usr/local/b..

kubectl 명령은 매우 많이 사용하는데, 매번 전체 명령을 치는데 불편하게 느껴질겁니다. 줄인 명령어를 만드는 방법에는 symbolic link와 alias가 있습니다. 1) symbolic link 먼저, kubectl이 어디에 있는지 확인합니다. $ which kubectl 보통 /usr/bin디렉토리에 있을겁니다. 아래와 같이 'k'라는 alias를 symbolic link를 사용하여 생성합니다. $ ln -s /usr/bin/kubectl /usr/local/bin/k $ ls -al /usr/local/bin 아래 예제와 같이 이제는 k라는 명령으로 kubectl 명령을 이용할 수 있습니다. 2) alias $ alias k=kubectl 영구적으로 설정하려면 시작 shell에 추가합니다. ..

kubernetes클러스터를 구성한 후, 자신이 사용할 VM에 사용 환경을 하는 방법을 설명합니다. 작업순서는 아래와 같습니다. 1. docker와 kubectl 설치하기 2. 사용할 OS계정 생성하기 3. k8s클러스터 접근 설정하기 4. 다른 k8s클러스터로 접근 설정 바꾸기 1. docker와 kubectl 설치하기 root 권한으로 실행합니다. 1) docker 설치 # yum install -y yum-utils device-mapper-persistent-data lvm2 # yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # yum install docker-ce -y # systemct..

kubernetes v1.16버전이 나오면서 더 이상 지원되지 않는 API(예:extentions/v1beta1)들이 있습니다. v1.18에서는 완전히 없어진답니다. https://kubernetes.io/docs/setup/release/notes/ 따라서 기존에 yaml파일들은 수정이 필요합니다. 사실 오픈소스로 공개된 많은 helm chart들도 문제가 발생합니다. 일단, 임시로 이 API들을 계속 사용하는 방법은 아래와 같습니다. Master Node에서 수행 $ vi /etc/kubernetes/manifests/kube-apiserver.yaml 아래와 같이 --runtime-config에 계속 사용할 API들을 추가함 --runtime-config=apps/v1beta1=true,apps/v..
kubernetes 명령 자동완성 설정하기 즉시 적용하기# source
- Total
- Today
- Yesterday
- 버라이어티가격
- agile
- 돌봄경제
- 스핀프로젝트
- 마이크로서비스
- CQRS
- 분초사회
- spotify
- 애자일
- 마이크로서비스 패턴
- micro service
- 호모프롬프트
- 육각형인간
- Event Sourcing
- 리퀴드폴리탄
- 요즘남편 없던아빠
- 디토소비
- AXON
- 스포티파이
- 도파밍
- API Composition
- SAGA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |