본문 바로가기

분류 전체보기

(70)
[CKA] Network Policy [CKA] Network Policy 데이터베이스 파드(DB Pod)를 다른 pod에서 접근할 수 없도록 보호하려고 한다.하지만 API Pod에서의 접근은 허용한다.기본적으로 kubernetes는 모든 트래픽을 허용하지만 데이터베이스 파드로 들어오고 나가는 모든것을 차단하고 싶다. 그래서 네트워크 정책을 생성한다. 우리는 그것을 DB 정책이라고 부른다. 첫번째 단계는 보호하려는 pod에 네트워크 정책을 연결하는것이다. (label, selector 이용) 하지만 아직 정책 유형(policyTypes)을 지정하지 않았기 때문에 여전히 트래픽을 차단하지 않는다. 따라서 지정된 정책 유형이 없는경우 네트워크 정책으로 보호되지 않는다. Ingress(수신) 및 Egress(송신) 를 모두 차단하고 싶다면 정책 ..
[CKA] Kubernetes Image Security Kubernetes Image Security 이미지 이름의 기본부터 시작하여 보안 이미지 저장소와 안전한 저장소의 이미지를 사용하도록 포드를 구성하는 방법에 대해 알아보자. 웹 애플리케이션 및 데이터베이스, Rediscache 등과 같은 다양한 종류의 pod를 생성해보았다. # nginx-pod.yaml apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx image: 간단한 pod 정의 파일로 시작하자. 예를 들어, 여기서는 Nginx 이미지를 사용하여 Nginx 컨테이너를 배포했다. 이 이미지 이름을 자세히 살펴보면 이름은 Nginx이지만 이 이미지는 무엇이고 이 이미지는 어디에서 가져온 것일까? 이 이름..
[CKA] Kubernetes TLS Kubernetes TLS SSL TLS 인증서에 대해 알아보자. 우선 TLS는 SSL의 업데이트 버전이며 명칭만 다르다. TLS 인증서가 무엇인지, 왜 필요한지, 인증서 구성 방법이 뭔지 알아보자. TLS 인증서는 SSH 또는 웹 서버를 보호한다. 인증서는 거래중 두 당사자 사이의 신뢰를 보장하는데 사용된다.사용자가 웹 서버에 액세스하려고 할 때 TLS 인증서는 사용자와 서버 간의 통신이 암호화되고 서버가 자신의 이름임을 보장한다. 예를 들어보면 보안 연결이 없으면 사용자가 은행 홈페이지에 들어가 ID와 Passwd를 입력하면 일단 텍스트 형식(id:daaa055501 passwd:3281378!@#) 으로 은행 서버에 전송이 된다. 이 경우 네트워크 트래픽을 스니핑하는 해커는 쉽게 자격증명 데이터를 ..
[CKA] Kubernetes drain/cordon/uncordon Kubernetes OS(Operating System) Upgrade 클러스터의 일부로 노드를 제거해야 하는 시나리오(예: 기반 소프트웨어 업그레이드 또는 클러스터에 보안 패치 등의 패치 적용)에 대해 알아보자 이러한 경우를 처리하는 데 사용할 수 있는 옵션을 살펴보자 애플리케이션을 지원하는 몇 개의 노드와 포드가 있는 클러스터가 있다. 이 노드 중 하나가 중단되면 어떻게 될까? 물론, 그 노드 안에 있는 Pod는 접근할 수 없다. 그 Pod들을 어떻게 배치했느냐에 따라 사용자가 영향을 받을 수 있다. 예를 들어, Blue Pod의 복제본이 여러 개 있다면 Blue Application에 액세스하는 사용자는 온라인 상태의 다른 Blue Pod를 통해 서비스를 받을 때 영향을 받지 않는다. 그러나 Gre..
[CKA] 쿠버네티스 ConfigMap 구성하기 애플리케이션에서 configmap 구성하기 Kubernetes에서 configmap으로 작업하는 방법에 대해 알아보자. Pod 정의 파일이 많으면 쿼리의 파일에 저장된 환경 데이터를 관리하는 것이 어려워진다. 이 정보를 Pod 정의 파일에서 가져와 구성 맵을 사용 하여 중앙에서 관리할 수 있다. configmap은 Kubernetes에서 키 값 쌍의 형태로 구성 데이터를 전달하는 데 사용된다. Pod가 생성되면 configmap을 Pod에 적용하여 키 값 쌍을 Pod의 컨테이너 내부에서 호스팅되는 애플리케이션의 환경 변수로 사용할 수 있도록 한다. configmap 구성에는 두 단계가 포함된다. 먼저 configmaps을 만들고 두 번째로 Pod에 적용한다. 다른 Kubernetes 개체와 마찬가지로 c..
[테라폼] TerraForm 이란? 2 https://dodo-devops.tistory.com/55 [테라폼] TerraForm 이란? IaC란? 코드로 필요한 인프라를 만들고, 수정하고, 삭제하는 것 즉 인프라를 코드로 관리하는 것 필요한 인프라를 코드로 정의하고 관리한다면 수동으로 명령어를 실행하여 설정을 변경하던 환 dodo-devops.tistory.com (3) 코드형 인프라의 장점 코드형 인프라의 여러 측면을 살펴보니 다음과 같은 의문이 생긴다. 왜 새로운 언어와 도구를 배우고 더 많은 코드를 관리해야 하는걸까? 이유는 간단하다. 코드로 할 수 있는 것이 많기 때문이다. 수동으로 코드를 변환하지 않아도 되므로 소프트웨어를 효율적으로 배포 할 수 있다. 인프라가 코드로 정의되면 다음과 같은 배포 프로세스를 극적으로 개선할 수 있다...
[테라폼] TerraForm 이란? IaC란? 코드로 필요한 인프라를 만들고, 수정하고, 삭제하는 것 즉 인프라를 코드로 관리하는 것 필요한 인프라를 코드로 정의하고 관리한다면 수동으로 명령어를 실행하여 설정을 변경하던 환경보다 훨씬 더 정확하고 효율저그올 인프라를 관리할 수 있다. 테라폼(TerraForm) 이란? 가장 대표적인 코드형 인프라 도구 중 하나이다. 여러 클라우드 공급자에 적용할 수 있으며 클라우드 공급자가 제공하는 기능들을 빠르게 반영한다. 따라서 안정적인 인프라를 구축하고 관리할 수 있는 최적의 도구이다. 예전에는 시스템 관리자가 인프라를 수동으로 구축하고 관리했다. 하지만 모든 서버, 데이터 베이스, 로드 밸런서, 네트워크 등을 수작업으로 관리하기에는 서버 다운이나 휴먼 폴트, 긴 배포 시간 등의 단점이 많았다, 하지만..
[CKA] Kubernetes kubectl apply 명령어 Kubernetes kubectl apply 명령어 # nginx.yaml apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp type: front-end-service spec: containers: - name: nginx-container image: nginx:1.18 # Live object configuration (Last applied Configuration) apiVersion: v1 kind: Pod metadata: name: myapp-pod annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion": "v1","kind": "Po..
[CKA] Kubernetes Imperative(명령형) vs Declarative(선언형) Kubernetes Imperative(명령형) vs Declarative(선언형) Kubernetes의 명령적, 선언적 접근법에 대해 이야기해보자 지금까지 우리는 쿠버네티스에서 객체를 만들고 관리하는 다양한 방법을 알아보았다. 우리는 객체 구성 파일뿐만 아니라 명령을 실행하여 직접 객체를 만들었다. 이제 코드형 인프라(Infrastructure as Code, IaC)로서 인프라를 관리하는 데 있어 다양한 접근 방식이 있고, 명령적 접근 방식과 선언적 접근 방식으로 분류된다. 비유를 들어, 당신이 친구의 집을 방문하고 싶다고 하자. 과거에 당신은 택시를 타서 목적지까지 가는 방법을 운전자에게 단계별로 말해주었다. 예를 들어 B 거리로 우회전하고, C 거리로 가기 위해 좌회전하고, 그리고 나서 다른 도로..
[CKA] Kubernetes Namespace Kubernetes Namespace 마크라는 이름의 두 소년이 있다. 그들을 구별하기 위해 우리는 그들을 성으로 부른다. 스미스와 윌리엄은 서로 다른 집에서 왔다. 물론 스미스와 윌리엄 집에는 다른 가족들이 있다. 집안에 있는 가족들은 단순히 그들의 이름으로 서로를 부른다. 예를 들어, 아버지는 마크 스미스를 단순히 마크라고 부른다. 그러나 아버지가 다른 집에 있는 마크를 부를때는 마크 윌리엄이라고 부를것이다. 이 집들 각각은 그들만의 규칙이 있다. 이 집들은 kubernetes의 네임스페이스에 해당한다. 지금까지 클러스터에 Pod Deployment Service와 같은 개체를 만들었다. 우리가 해왔던 것은 모두 네임스페이스 안에서 해왔다. 이 네임스페이스가 기본(default) 네임스페이스로 알려져..