k8s 134

[k8s] 사용자 전체 권한 확인 - 1

개요 2022.01.06 - RBAC에서 사용자가 특정 리소스에 대한 권한을 확인할 수 있는 can-i 명령을 살펴보았었다. 다만 현재 사용자에게 부여된 권한 전체를 확인할 필요성이 있어 추가로 정리한다. 사용자 권한 목록 확인 can-i 명령의 --list 옵션은 허용된 모든 action을 출력한다. 다만 --all-namespaces 옵션을 지원하지 않아 네임스페이스 별로 확인해야 한다. kubectl auth can-i --list 모든 권한을 부여받았는지 여부 can-i 명령에서 *는 모든 리소스 또는 모든 verb를 의미한다. 따라서 아래와 같은 방식으로 모든 리소스에 대한 모든 권한이 부여되어 있는지 확인할 수 있다. # 현재 네임스페이스 kubectl auth can-i '*' '*' # 모..

Kubernetes 2023.01.28

[AWS] EKS 접근 설정

개요 이미 생성되어 있는 EKS에 접속할 수 있도록 설정해보려고 한다. EKS에 접근하기 위해서는 다음과 같은 사항이 필요하다. aws cli : eks는 버전 2에서만 지원한다. EKS 클러스터 접근 권한이 부여된 IAM 사용자 또는 역할 kubectl 방법은 다음과 같다. 권한 설정 및 확인 aws profile을 등록하고, 접근할 EKS 클러스터의 정보를 조회할 수 있는지 확인한다. # profile 등록 aws configure # 클러스터 목록 확인 aws eks list-clusters \ --profile --region ap-northeast-2 # 클러스터 정보 확인 aws eks describe-cluster \ --name \ --profile --region ap-northeast-..

AWS 2023.01.09

[kubeadm] 노드 삭제

개요 kubeadm으로 구성한 쿠버네티스 클러스터에서 특정 노드를 제외하려고 한다. 방법을 정리해둔다. kubectl로 작업 1. Node 상태 확인 kubectl get nodes 2. Node 스케쥴링 비활성화 Node에 Pod가 스케쥴링되지 않도록 상태를 변경한다. kubectl drain # --ignore-daemonsets : drain 시 daemonset에 의한 pod 제외 Daemonset에 의해 생성된 Pod가 동작 중인 경우에는 --ignore-daemonsets 옵션을 사용하여 실행한다. 참고 : 2022.06.23 - [k8s] drain 3. 노드 삭제 kubectl delete nodes 제거한 노드에서 작업 1. kubeadm reset kubeadm reset은 kubead..

Kubernetes 2022.11.08

[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

[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

[dcgm-exporter] Grafana/Prometheus no data 현상

현상 관리하던 쿠버네티스 클러스터에서 Grafana/Prometheus 서비스를 위한 kube-prometheus-stack helm chart를 설치하고 GPU 서버 모니터링을 위해 dcgm-exporter를 함께 설치해서 사용하고 있었다. 다만 최근 몇 가지 이슈가 있어 기존의 kube-prometheus-stack을 완전히 삭제하고 재설치했더니 dcgm-exporter 대시보드에 어떤 메트릭도 보이지 않았다. 프로메테우스에서 관련 메트릭을 수집하는지 확인해봤지만, 마찬가지로 dcgm-exporter가 내보내는 메트릭은 수집되지 않는 상태였다. 환경 환경은 아래와 같다. kubeadm으로 구성한 온프레미스 쿠버네티스 클러스터 kubernetes version 1.17.2 ~ 1.19.0 helm v3..

Kubernetes/삽질 2022.07.13
1 2 3 4 5 6 7 ··· 14