CLOUD/Docker&Kubernetes 21

[Kubernetes/Ubuntu] 쿠버네티스 워크로드 - Pod

[ Pod ] ☆ Pod 를 만들어보자 ☆ ● go-http-pod.yaml 작성 # gedit go-http-pod.yaml apiVersion: v1 kind: Pod metadata: name: http-go spec: containers: - name: http-go image: nuy0307/http-go ports: - containerPort: 8080 ● 파드 생성 & 확인 # 생성 kubectl create -f go-http-pod.yaml # 파드 상태 확인 kubectl get pod http-go # 자세한 정보 출력 kubectl get pod http-go -o wide # 작성된 내용 확인 kubectl get pod http-go -o yaml # json 형식으로 작성된 ..

[Kubernetes/Ubuntu] 쿠버네티스 환경 구축하기

◈ Oracle VM VirtualBox 이용 ◈ ◇ 노드 3개 : 마스터 노드, 워커 노드1, 워커 노드2 ◇ [ Master Node ] ● 도커 및 kubeadm 설치 sudo apt update sudo apt install docker.io -y # 아래와 같은 에러 발생 시 리부팅 : reboot # E: /var/lib/dpkg/lock-frontend 잠금 파일을 얻을 수 없습니다 - open (11: 자원이 일시적으로 사용 불가능함) # E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it? # 설치 확인 docker ● 쉘 스크립트 작성 & 실행 》 쿠버네티..

[Kubernetes] K8S 구조 - K8S 네트워크

▷ 하나의 파드 안에 여러 개의 컨테이너 생성 ▷ 파드 간 통신 [ 네트워크 확인하기 ] ● 마스터 노드 kubectl get pod -o wide -n kube-system netstat -anlp | grep 6443 | grep LISTEN 》 kube-apiserver : 6443 포트로 실행 ● 워커 노드 systemctl status kubelet netstat -anlp | grep kubelet 》 워커 노드의 kubelet (프로그램) 이 마스터 노드 6443 포트와 연결되어 있음 [ 다른 컨테이너의 파드 간 통신하기 ] ● 파드 생성하기 apiVersion: v1 kind: Pod metadata: name: hello-pod labels: app: hello spec: containe..

[Kubernetes] K8S 구조 - K8S 컴포넌트

k8s 구조가 중요한 건 다들 아시죠 ~ !_! ~ 참고참고 ~ https://kubernetes.io/ko/docs/concepts/overview/components/ 쿠버네티스 컴포넌트 쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다. kubernetes.io [ K8S Component ] ● Control Plane Component (Master Node) ① Etcd 모든 클러스터의 데이터를 저장하는 쿠버네티스 저장소 (키-값 형태) 분산 데이터 저장소 대규모 클러스터의 경우 고가용성을 위해 3개, 많으면 5개의 노드 etcd 클러스터 구성 ② Kube-apiserver 각 노드에서 보내온 api 요청이 전달됨 Etcd 에 데이터 저장 ③ Kube-con..

[Kubernetes] Namespace

어 ? 쿠버네티스 대시보드에 네임스페이스 한 번 만들러 갈래 ? 그래 따라와 ~ (1) Namespace 설정 방법 # Namespace 생성 apiVersion: v1 kind: Namespace metadata: name: nm-1 # Pod 생성 apiVersion: v1 kind: Pod metadata: name: pod-1 namespace: nm-1# Namespace 지정 spec: containers: - name: container image: ubuntu:latest command: ["/bin/sh", "-ec", "while :; do echo '.'; sleep 5 ; done"] (2) ResourceQuota ▷ 네임스페이스별 총 리소스 사용을 제한하는 제약 조건 제공 : 오..

[Kubernetes] MSA 실습하기 - Admin & Main MSA

[ 이미지 준비 ] ● 이미지 만들기 https://github.com/scalablescripts/python-microservices GitHub - scalablescripts/python-microservices Contribute to scalablescripts/python-microservices development by creating an account on GitHub. github.com # git 설치 dnf -y install git # git repository 다운로드 git clone https://github.com/scalablescripts/python-microservices # 방화벽 실행 systemctl start firewalld # 이미지 빌드 docker ..

[Kubernetes] AutoScaling (HPA)

[ 기본 설정 추가 ] ● Metrics Server 설치 kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.3/components.yaml ● Kubernetes Dashboard 의 네임스페이스 : kube-system 설정 변경 》 kube-system 네임스페이스에 추가된 metrics-server 디플로이먼트 설정 변경 args: - '--cert-dir=/tmp' - '--secure-port=443' - '--kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname' - '--kubelet-use-node-status-port'..

[Kubernetes] Controller - Deployment (Recreate / RollingUpdate / BlueGreen)

- ReplicaSet 을 컨트롤 - 기본 방식 : RollingUpdate ● Deployment 》 Recreate 방식 # Recreate 방식 apiVersion: apps/v1 kind: Deployment# deployment 선언 metadata: name: deployment-1# deployment 이름 spec: replicas: 2# 생성할 replicaset 개수 strategy: type: Recreate revisionHistoryLimit: 1# 기억할 업데이트 개수 (이전 버전으로 돌아갈 수 있음) selector: matchLabels: type: app template: metadata: labels: type: app spec: containe..

[Kubernetes] Controller - ReplicaSet

- Pod 를 컨트롤 - Labels 를 통해 연결 - matchLabels: 쓰여진 모든 라벨을 가지고 있어야 연결 - matchExpressions: 조건부 라벨 selector: matchLabels: type: web ver: v1 matchExpressions: - {key: type, operator: In, values: [web]}# type 라벨 이름에 web 이 들어가면 - {key: ver, operator: Exists}# ver 라벨이 존재하기만 하면 ● Pod apiVersion: v1 kind: Pod metadata: name: hello-replica spec: containers: - name: hello image: nuy0307/hello:8..

728x90