분류 전체보기

🐳 Container/K8S

[K8s] PV(Persistent Volume), PVC(Persistent Volume Claim)

[K8s] PV(Persistent Volume), PVC(Persistent Volume Claim)이전에 볼륨에 관련하여 포스팅을 하면서 PV/PVC에 대해 다뤘는데, 헷갈리는 개념이 있어 더 자세히 정리해보고자 한다. [K8s] 쿠버네티스(Kubernetes) Volume 관리쿠버네티스 (Kubernetes) Volume 관리 Kubernetes Volume 파드 내의 컨테이너가 종료되더라도 파일 시스템이 유지되도록 하고 싶다면? 쿠버네티스 볼륨을 정의해서 사용 가능 여러 개의 컨테이너가 볼륨을heywantodo.tistory.com 쿠버네티스 컨테이너 내의 디스크에 있는 파일은 임시적이며, 이는 몇가지 문제가 있다. 1. 컨테이너가 crash될 때 파일이 손실된다2. pod에서 같이 실행되는 컨테..

🐳 Container/K8S

[K8s] kubeconfig를 사용하여 다중 클러스터 접근 구성하기

[K8s] kubeconfig를 사용하여 다중 클러스터 접근 구성하기만약 여러 클러스터가 있고, 사용자와 구성요소가 다양한 방식으로 인증할 때,kubeconfig 파일들을 사용해서 클러스터, 사용자, 네임스페이스 및 인증 메커니즘에 대한 정보를 관리할 수 있다.기본적으로 kubectl은 $HOME/.kube 디렉터리에서 config라는 이름의 파일을 찾는다. 컨텍스트 (Context)kubeconfig에서 컨텍스트 요소는 편리한 이름으로 접속 매개 변수를 묶는데 사용한다.각 컨텍스트는 클러스터, 네임스페이스. 사용자라는 세 가지 매개변수를 가진다. kubectl config use-context위 명령어를 사용하면 컨텍스트를 선택 할 수있다. 클러스터, 사용자, 컨텍스트 정의만약 개발 작업을 위한 클러스..

💽 CICD/Git

[Git] fatal: push options must not have new line characters

[Git] fatal: push options must not have new line characters Merge Request 를 command Line으로 생성하는 법을 포스팅 했었다. [Git] Merge Request command Line으로 생성하기[Git] Merge Request command Line으로 생성하기 자동으로 MR 생성을 해야하는 과제가 있었다. 찾아보니 gitlab 11.10 부터 git 2.10 이상을 사용하는 경우, 다음과 같이 CLI로 Merge Request를 생성할 수 있었다. git pheywantodo.tistory.comgit push \-o merge_request.create \-o merge_request.remove_sour..

💾 Data/SQL

[MySQL] DB 테이블 row 수 확인

[MySQL] DB 테이블 row 수 확인 전체 테이블 별 row count를 구하기 위해선 다음과 같은 Query를 사용할 수 있다.SELECT table_name, table_rows FROM information_schema.tables WHERE table_schema = 'DBNAME' ORDER BY table_name;

👩‍💻 Develope/Python

[Python] Set

[Python] SetPython의 set은 중복되지 않는 고유한 항목들의 모음늘 나타내는 자료형이다.set은 중괄호 {}를 사용하여 정의되며, 각 항목은 쉼표로 구분된다.my_set = {1, 2, 3, 4, 5} set의 특징중복이 없는 고유성: set은 중복된 요소를 허용하지 않는다.따라서 같은 값을 여러 번 포함하여 정의하더라도, 각 값은 한번만 나타난다.  변경 가능한 자료형: 요소를 추가하거나 제거가 가능하다.#요소 추가my_set.add(6)#요소 제거my_set.remove(3) 집합 연산: set은 집합 연산을 지원한다.set1 = {1, 2, 3}set2 = {3, 4, 5} 1. 합집합union_set = set1 | set2>>> uni..

💽 CICD/Git

[Git] remote: You are not allowed to push code to this project.

[Git] remote: You are not allowed to push code to this project. 어제까지만 해도 잘 되던 Push가 다음과 같은 에러 메시지와 함께 안되기 시작했다 😥 remote: You are not allowed to push code to this project. fatal: unable to access 'http//git_repositoy.git/ ': The requested URL returned error: 403 원인은 여러가지가 있는 것으로 보였다. 1. Protect Branch로 설정되어있는데, force Push가 허용이 되어있지 않은 경우 2. 자격 증명이 잘못 설정되어 있는 경우 1번의 경우엔 브랜치 설정에서 proctect branch로 설..

👩‍💻 Develope/Python

[Python] 파이참 콘솔에서 output이 깨져서 보일 때

[Python] 파이참 콘솔에서 output이 깨져서 보일 때 파이참에서 subprocess 명령어를 사용하는데 에러가 발생했다. 원인을 파악하려고 하는데 아웃풋이 다음과 같이 깨져서 나와 알 수가 없었다. 알고보니 파이썬 콘솔은 UTF-9이고,불러오는 터미널은 CP-949가 활성 코드 페이지로 설정되어있기 때문에 콘솔에서 터미널 명령어를 불러올 때 깨지는 현상이 발생하는 것이다. 현재 사용 중인 콘솔창에서 언어 코드를 변경하는 명령어(chcp)를 사용하면 해결이 가능하다. os.system("chcp 65001")

🌏 OS/Linux

[Linux] namespace, cgroup

[Linux] namespace, cgroup Docker 및 Kubernetes와 같은 컨테이너 도구들이 현대적인 애플리케이션에서 대부분 사용되고 있다. 컨테이너의 기반이 된 리눅스의 기술들에 대해 궁금즘이 생겨 알아보고자 한다. Namespaces 2002년부터 Linux 커널의 일부였으며, 실제 지원은 13년에 추가 되었다. 네임스페이스의 주요 기능은 프로세스를 서로 격리한다는 것이다. 다양한 서비스를 실행하는 서버에서, 각 서비스 및 관련 프로세스를 다른 서비스와 격리하면 변경사항과 호환성을 관리하기 쉬워진다. os, 커널에서 작동하며, 한 덩어리의 데이터에 이름을 붙여 분할함으로써 네임스페이스가 다르면 이름이 같아도 다르게 처리하게된다. 네임스페이스 종류 mnt : 마운트 조작 시 namespa..

👩‍💻 Develope/Web

[etc] HTTP 상태코드

[etc] HTTP 상태코드 HTTP는 웹서버와 클라이언트 간의 통신을 가능하게 하는 프로토콜이다. 서버는 클라이언트의 요청에 대한 응답으로 HTTP 상태 코드를 반환하여 요청의 결과를 전달한다. 몇 가지 일반적인 HTTP 상태 코드와 그 의미에 대해 알아보자. 1XX (Informational) 100 Continue: 서버가 클라이언트의 일부 요청을 받았으며, 클라이언트는 나머지 요청을 계속해도 된다는 것을 알린다. 101 Switching Protocols: 서버가 클라이언트의 요청을 수락하고 프로토콜 변경 요청을 받았음을 나타낸다. 2XX (Success) 200 OK: 요청이 성공적으로 처리되었음을 나타낸다. 201 Created: 요청이 성공적으로 처리되어 새로운 리소스가 생성되었음을 나타낸다..

🐳 Container/K8S

[K8s] Network Policy

[K8s] Network Policy Network Policy 네트워크 정책 적용을 통해 클러스터에서 쿠버네티스 네트워크 정책을 생성 할 수 있다. 허용되는 다른 파드 허용되는 네임 스페이스 IP 블록 네트워크 정책을 정의하면, 클러스터가 다중 수준의 애플리케이션을 제공할 때, 심층 방어와 같은 기능을 지원하는 데 도움이 된다. Network Policy 생성 예를 들어 다음과 같이 access: true 레이블을 가지고 있는 pod만 nginx 서비스에 접근할 수 있도록 Network Policy 객체 생성이 가능하다. apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: access-nginx spec: podSelector: m..

🐳 Container/K8S

[K8s] RBAC(Role-Based Access Control)

[K8s] RBAC(Role-Based Access Control) RBAC는 개별 사용자의 역할을 기반으로 컴퓨터 또는 네트워크 리소스에 대한 액세스를 규제한다. 특정 사용자(User)와 역할(Role) 두 가지를 조합해서 사용자에게 특정 권한을 부여할 수 있다. API 객체 RBAC API는 Role, ClusterRole, Rolebinding 및 ClusterRoleBinding의 네가지 종류의 개체를 선언한다. Role, ClusterRole Role 및 ClusterRole 객체에서 RBAC 규칙을 정의한다. Role : 단일 네임스페이스에 포함된 리소스에 대한 액세스를 정의한다. apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: n..

🐳 Container/K8S

[K8s] ServiceAccount

[K8s] ServiceAccount 서비스 어카운트 (Service Account) 서비스 어카운트는 쿠버네티스에서 애플리케이션의 인증 및 권한 관리를 담당한다. 쿠버네티스 클러스터 내에서 실행되는 애플리케이션은 기본적으로 API 서버와 상호작용을 해야하는데, 서비스 어카운트를 통해 API에 접근 권한을 부여받을 수 있다. 서비스 어카운트는 파드에서 실행되는 프로세스에 대한 ID를 제공하며, 해당 프로세스 ID는 서비스 어카운트 객체에 매핑된다. API 서버에 액세스 모든 쿠버네티스의 네임스페이스에는 ServiceAccount가 하나 이상 포함되어 있다. 만약 서비스 어카운트를 따로 지정하지 않고 Pod를 생성하여 API 서버에 연결하면, Pod는 default 네임스페이스에 명명된 서비스 어카운트를 ..

heywantodo
'분류 전체보기' 카테고리의 글 목록 (7 Page)