분류 전체보기 1191

[Killercoda] 쿠버네티스 플레이그라운드

소개 기본적으로 쿠버네티스를 실습하려면 클러스터가 구성되어 있어야 한다. 다만 사용할 수 있는 서버도 없고 구성하기 귀찮은 경우에는 웹 상에서 쿠버네티스 플레이그라운드를 이용해 쿠버네티스를 실습할 수 있다. 기존에 katacoda의 쿠버네티스 플레이그라운드를 사용할 수 있었는데 현재는 서비스를 중단한 것 같다. 이 글에서는 killercoda를 소개한다. killercoda kubernetes 환경 : https://killercoda.com/playgrounds/scenario/kubernetes 환경 정보 로그인 계정 필요 : Github, Gitlab, Google, Email로 로그인 가능 1시간 유지 후 만료 controlplane 1개, node 1개 구성 : 1 CPU, 2GB MEM, 10..

기타 2022.09.09

[k8s] kubeconfig - 사용자 추가

kubectl config 사용자는 쿠버네티스 클러스터를 조작하기 위해 apiserver에 작업을 요청한다. 이때 curl 명령으로도 요청할 수 있으나 key, cert, cacert를 매번 지정해주어야 하는 불편함이 있어 kubeconfig 파일에 해당 정보를 설정해두고 kubectl 명령어로 요청하게 된다. kubectl config 명령은 kubeconfig 파일을 수정한다. 관련 명령어를 통해 2022.09.07 - [k8s] 인증서 기반 User 생성 에서 생성한 user를 추가하고, user가 kubectl을 통해 클러스터를 조작할 수 있도록 설정해보도록 한다. 등록된 정보 확인 kubeconfig에 등록된 사용자, 클러스터, context 정보는 get-* 명령으로 확인할 수 있다. 💡 co..

Kubernetes 2022.09.08

[k8s] 인증서 기반 User 생성

User vs Service Account 쿠버네티스에서 일반 사용자(Human User)와 Service Account라는 두 종류의 사용자가 존재한다. 일반 사용자 : 쿠버네티스 클러스터 외부에서 쿠버네티스 클러스터를 조작하는 사용자. 클러스터 관리자 입장에서의 사용자에 해당한다. Service Account : 쿠버네티스 내부에서 관리되는, Pod가 쿠버네티스 API를 조작할 때 사용한다. 개발자 입장에서의 사용자에 해당한다. 그리고 사용자는 RBAC에 의해서 클러스터를 조작할 권한을 부여받는데, 이 글에서는 일반 사용자를 생성하는 방법을 정리해둔다. API 인증 방법 쿠버네티스는 사용자 인증을 위해 아래와 같은 방법을 지원한다. Service Account Token 정적 Token Passwor..

Kubernetes 2022.09.07

[kubeadm] 노드 join

개요 2022.09.05 - [kubeadm/cri-dockerd] Kubernetes 설치 / 클러스터 생성 에서 생성한 단일 노드 클러스터에 노드를 추가하고자 한다. kubeadm join node join 시에는 apiserver 주소, token 그리고 인증서 정보가 필요하다. join 명령은 join할 노드에서 실행하면 된다. master와 마찬가지로 container runtime, kubectl, kubeadm, kubelet은 설치되어 있어야 한다. kubeadm join : --token --discovery-token-ca-cert-hash sha256: # 예시 kubeadm join 172.31.29.238:6443 --token kglces.6gw78mgmpybtvtpz \ --d..

Kubernetes 2022.09.06

[kubeadm/cri-dockerd] Kubernetes 설치 / 클러스터 생성

개요 이 글에서는 kubeadm으로 클러스터를 생성하고, 컨테이너 엔진/런타임은 docker/cri-dockerd를 사용할 것이다. 설치 환경은 아래와 같다. AWS EC2 Ubuntu 20.04 LTS arm64 RAM >= 2GiB , CPU >= 2 core 참고로 master(controlplane)까지만 세팅할 것이다. master/worker 설정 및 패키지 설치 아래 과정은 master(controlplane), node 모두 설정해두어야 한다. 1. iptables가 bridge 된 트래픽을 보도록 설정 # br_netfilter 모듈 로드 cat

Kubernetes 2022.09.05

[IAM] default profile과 EC2Role 함께 사용하기

개요 AWS EC2의 특정 사용자에게 default profile을 등록해두었다. 그런데 같은 사용자로 EC2 Role을 이용해 AWS를 조작해야 하는 상황이 생겼다. 다만 AWS에서 자격 증명을 확인하는 순서는 아래와 같다. CLI 실행 시의 옵션 : 파라미터로 지정한 --region, --output, --profile 옵션 환경 변수 : 시스템의 환경 변수 ~/.aws/credential (Linux 기준) ~/.aws/config (Linux 기준) 컨테이너 자격 증명 : ECS에 연결된 IAM Role EC2 인스턴스 프로파일 보안 인증 : EC2에 연결된 IAM Role 즉, EC2에 연결된 Role의 적용 우선순위가 가장 낮기 때문에 default profile을 설정하면 Role에 접근할 ..

AWS 2022.09.04

[linux] n초 주기로 스크립트/명령어 실행

개요 일정한 주기마다 스크립트나 명령어를 실행하는 대표적인 방법은 크론탭을 사용하는 것이다. 다만 크론탭의 최소 주기는 1분이라 초 단위로 명령어나 스크립트를 실행해야 할 때에는 사용할 수 없다. 이 글에서는 초 단위로 스크립트나 명령어를 실행하는 방법을 간단히 정리해둔다. watch 프로그램을 주기적으로 실행하여 결과를 전체 화면에 표시한다. watch [options] command # -n : --interval. 실행 주기 # -t : header 제외하여 출력 # 예시 watch -n 1 -t "date >> date.log" 예시 명령어의 경우 표준 출력을 리다이렉션 했기 때문에 출력이 보이지 않는다. 하지만 tail -f로 출력 파일을 확인하면 정상적으로 실행되는 상태임을 확인할 수 있다. ..

Linux 2022.09.03

[MySQL] 테이블 컬럼 확인

개요 2022.01.09 - [MySQL/MariaDB] 테이블 목록 확인 2022.03.12 - [MySQL] 테이블 용량 확인 에서 테이블 정보를 확인하는 방법을 몇 가지 정리했는데, 이 글에서는 테이블의 컬럼 정보를 확인하는 방법을 정리해둔다. SHOW 명령어 SHOW COLUMNS를 사용하면 컬럼의 이름, 데이터형, 기본값, NULL 허용 여부 등을 확인할 수 있다. SHOW COLUMNS FROM ; -- 예시 SHOW COLUMNS FROM docs; 코멘트 등의 추가정보가 필요한 경우, FULL 키워드를 추가하면 된다. SHOW FULL COLUMNS FROM ; -- 예시 SHOW FULL COLUMNS FROM docs; Query SELECT 문을 이용해서 컬럼 정보를 확인할 수도 있다..

Database 2022.09.02

[k8s] Events

Events 쿠버네티스 리소스 타입 중 하나로 다른 리소스의 상태 변화, 에러 등 시스템에 특정 메시지를 전파해야 할 때 자동으로 만들어진다. 쿠버네티스 클러스터를 개발하고 운영하면서 디버깅할 때 유용하다. Events 조회 Events 리소스에 대해 알지 못해도 한 번쯤은 이미 봤을 텐데, describe 명령어로 확인할 수 있기 때문이다. Events 항목에 나열된 목록이 바로 Events 리소스에 해당한다. 다른 리소스와 마찬가지로 get 명령으로도 조회할 수 있다. kubectl get events --field-selector 옵션을 사용하면 원하는 정보만을 찾아볼 수 있다. # Warning 유형만 확인 kubectl get events --field-selector type=Warning #..

Kubernetes 2022.09.01

[정규 표현식] sub - 문자열 치환

sub(pattern, repl, string, count=0, flags=0) sub 함수를 사용하면 정규 표현식과 일치한 부분을 다른 문자로 치환할 수 있다. 이름, 전화번호 등 개인 정보를 마스킹하는 경우에 활용할 수 있다. 사용 방법 매개변수로 패턴과 치환 문자열(repl), 치환 대상 문자열(string)을 전달받는다. 패턴을 찾지 못하면 전달받은 string을 변경하지 않고 반환한다. 예로 들어, 아래와 같은 휴대전화 번호 목록이 있다고 하자. 010-1234-5678 010-0000-0000 010-9876-5432 휴대전화 번호는 개인을 식별할 수 있는 정보이기 때문에 가운데 4개 숫자만 ****로 마스킹하고자 한다. sub 함수에서도 그룹 재참조가 가능하다. 따라서 첫 번째 자리와 세 번..

Python 2022.08.31