전체 글 794

쿠버네티스 인증서 만료된 상태에서 인증서 갱신

인증서 만료 오류 집에서 구축한 쿠버네티스에서 kubectl명령어를 치니 오류메세지가 출력되었습니다. 오류 메세지를 보자마자… 인증서 갱신날짜가 지난 것을 바로 눈치챘습니다. 저는 kubeadm으로 쿠버네티스를 설치해서 쉽게 인증서를 갱신할 수 있었습니다. Unable to authenticate the request due to an error: x509: certificate has expired or is not yet valid 인증서 갱신 인증서 갱신을 위해 기존 인증서를 다른 위치로 백업하거나 삭제해줘야 합니다. 집에서 구축한 서버여서 기존 인증서는 백업하지 않고 바로 삭제 했습니다. $ cd /etc/kubernetes/pki $ sudo rm -rf apiserver.key $ sudo r..

백준 - 14502 바이러스 풀이

풀이방법 완전탐색 유형 문제입니다. 총 4단계로 문제를 풀 수 있습니다. 완전 탐색은 2단계인 바이러스 전파에서 진행됩니다. 이 문제의 핵심은 완전탐색을 하기 전에 벽을 생성하고, 영역 계산후 벽을 제거하여 원래 상태로 되돌리는 것입니다. 1️⃣ 벽 생성 2️⃣ 바이러스 전파 3️⃣ 최대 영역 계산 4️⃣ 벽 제거 코드 1️⃣ 벽을 생성하기 위해 벽이 생성될 수 있는 위치를 조합으로 계산합니다. 위치를 계산하기 전에 바이러스 위치와 아무것도 없는 위치를 구해야합니다. from collections import deque from itertools import combinations # 바이러스와 벽이 있는 위치 계산 graph = M * N virus = deque() empty = [] if graph..

kubectl로 쿠버네티스 API검색 하기

영상: https://youtu.be/i20A2bFFbZw 쿠버네티스 API를 사용할 때, 공식문서를 참조하여 어떤 API를 어떻게 써야하는지 찾기 매우매우 어렵습니다. 문서 내용이 너무 많아 API를 찾기 힘듭니다. 다행히, kubectl verbose모드로 쿠버네티스 API를 쉽게 찾을 수 있습니다. 예를 들어 default namespace에 있는 pod API를 찾으려면 아래처럼 찾으면 됩니다. kubectl -n default get po -v=6 API 파라미터를 포함한 API도 쉽게 kubectl verbose로 찾을 수 있습니다. 찾은 API를 curl명령어를 이용하여 호출하면!! API호출 결과를 받을 수 있습니다. 물론, 쿠버네티스 인증에 대한 설정이 필요합니다. 프로그래밍 언어에서도 ..

테라폼 시리즈 35편. 중앙 집중식 비밀저장소와 테라폼 연동

영상: https://youtu.be/IM8Xdx9-wGk 테라폼 코드에 불가피하게 민감정보를 작성해야 하는 경우, 중앙 집중식 비밀 저장소(aws Secret Manager, Valut 등)를 사용하여 민감정보 노출을 최소화 할 수 있습니다. 중앙 집중식 비밀 저장소란? 중앙 집중식 비밀 저장소는 민감정보를 안전하게 저장하는 저장소입니다. 운영자가 민감정보를 저장소에 저장하면 사용자는 저장소에 접근하여 민감정보를 조회합니다. 테라폼 연동 테라폼에서는 data block으로 중앙 집중식 비밀 저장소에 저장된 민감정보를 조회할 수 있습니다. 예제 - aws secret manager aws secret manager를 이용하여 aws RDS 계정과 비밀번호를 설정하는 예제를 실습하겠습니다. 먼저 secre..

연재 시리즈 2022.11.26

테라폼 시리즈 34편. 민감정보 보호

영상: https://youtu.be/-ysCr2BsC1I 민감정보 노출되는 부분 테라폼의 민감정보(비밀번호 등)는 외부에 공개되거나 보안사고를 당했을 때 노출이 되는 문제가 있습니다. 민감정보가 노출될 수 있는 위치는 테라폼 코드와 상태파일 2종류입니다. provider block 민감정보 provider block에서 인증정보 설정가 민감정보에 해당합니다. 예로 aws provider에는 access_key와 secret_key가 민감정보입니다. 외부에 공개될 경우 인증정보가 그대로 노출되므로 절대 인증정보를 provider block에 설정하면 안됩니다. provider "aws" { region = "us-west-2" access_key = "my-access-key" secret_key = "..

연재 시리즈 2022.11.24

담낭절제 수술을 하다 ㅜ.ㅜ

11월 21일 청담튼튼병원에서 담낭제거 수술을 받았습니다. 단일 복강경으로 수술을 받았습니다. 약 한달간 대학병원 2곳에서 검사를 받고 2차병원인 청담튼튼병원에서 수술받았습니다. 담낭제거 수술 중에 장 유착도 발견되어 장유착도 풀어줬습니다. ㅜ.ㅜ 검진 22년 3월 건강건진에서 담석이 있는걸 처음 알았습니다. 3월에는 별다른 통증이 없었습니다. 4월에 알수없는 상하 복부통증이 있어 동네내과에서 복부CT를 찍었고 게실염과 담석진단을 받았습니다. 항생제를 먹고 통증을 잊고 있다가... 10월에 못움직일만큼 너무 아파 동네내과를 갔습니다. 대학병원으로 가라고 소견을 줘서 구로고대병원 소화기내과와 삼성서울암병원 소화기내과 2곳에서 한달간 검사를 받았습니다. 삼성서울병원에서는 대장내시경을 검시 받았고 게실염 이외..

일상생활 2022.11.23

테라폼 시리즈 33편. for expression을 이용한 반복문

영상: https://youtu.be/Hj_FGLNmXNI for expression이란? For expression은 반복을 이용하여 일괄 변환작업에 사용합니다. 변환작업은 타입 또는 값을 수정하는 작업입니다. 주의사항은 For expression의 결과 타입은 tuple 또는 object입니다. 원본이 list이더라도 결과는 tuple 또는 Object로 변환됩니다. [ ]를 사용하면 tuple 타입, { }를 사용하면 object 타입으로 변환됩니다. [for item in 조회할 expression: 변환작업] --> 리턴값이 tuple {for item in 조회할 expression: 변환작업} --> 리턴값이 object 예제 - s3 bucket이름 일괄 수정 for expression을 ..

연재 시리즈 2022.11.19

테라폼 시리즈 32편. 조건문 - 3항 연산자

사용방법 테라폼은 3항 연산자를 지원합니다. 3항 연산자는 간단한 조건문(타입 검사 등)을 구현할 때 적합합니다. ? : 예제1 - string타입 검사 아래 테라폼 코드는 instance_type을 검사하여 aws EC2 Instance를 생성하는 예제입니다. instance_type은 3항 연산자 조건문 결과로 설정됩니다. 3항 연산자는 variable ec2_type이 빈값이면 t2_nano로 설정합니다. 코드링크: https://github.com/sungwook-practice/terraform-study/tree/main/week5/condition/condition-basic provider "aws" { region = "ap-northeast-2" } variable ec2_type { ..

연재 시리즈 2022.11.19