일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Linux
- 오답노트
- 한강
- 정보처리기사
- 달리기
- 자전거
- zabbix
- Grafana
- 힐링
- 맛집
- 뚝섬유원지
- Shell
- 소모임
- 건대입구역
- 10km
- GitHub
- Run The Bridge
- 성수대교
- 2021
- docker
- Podman
- 유산소
- 대전
- Kubernetes
- 대구
- DSEC
- 하체
- 러닝
- Python
- 중식
- Today
- Total
목록Cloud/k8s (20)
Run The Bridge
0. 쿠버네티스 모니터링 쿠버네티스에 앱을 배포하여 운영 단계를 계획하고 있다면 모니터링 시스템 구축이 필요 사용자 요청이 갑작스럽게 몰려서 부하가 발생할 때 인프라 또는 애플리케이션 장애가 발생했을 때 애플리케이션의 일반적인 리소스 사용 패턴을 파악해야 할 때 그 외의 다양한 상황들 쿠버네티스 시스템과 애플리케이션을 모니터링 하기 위해서는 기본적으로 CPU나 메모리 외에도 디스크 사용량, 네트워크 I/O, 초당 요청 수 등 다양한 종류의 메트릭을 확인해야 한다 /metrics 경로 - 모니터링 에이전트와 같은 부류의 도구들은 /metrics 경로를 노출시켜 키-값 쌍으로 구성된 매트릭 데이터를 반환한다. - 이러한 인터페이스를 제공하는 서버를 일반적으로 'exporter'라고 부른다 1. 인프라 수준의..
0. pod의 자원 사용량 제한 쿠버네티스에서는 클러스터를 구성하는 여러 대의 서버의 자원을 하나의 풀로 사용할 수 있다 자원이 부족하면 노드를 추가함으로써 수평적 확장이 가능하다 내부 자원 활용률을 올리는 것도 중요하므로 자원을 컨테이너에 할당하기 위한 여러 기능이 제공된다 서버를 클러스터에 추가해 리소스 풀의 크기를 늘리는 것을 Scale-Out 기존 서버에 CPU나 메모리 등을 추가로 꽂아 스펙을 높이는 것을 Scale-Up 기본적으로 k8s에서 CPU나 메모리 사용량을 명시하지않으면, 자원 할당량에 제한이 없어 무제한 사용이 가능 둘 다 500MB를 할당했지만, 한 쪽은 100MB도 쓰지못했고 한 쪽은 500MB 가깝게 사용중이다. 그래서 각 A, B 컨테이너에 750MB를 할당하고 사용량이 오버..
0. 보안을 위한 인증과 인가 : ServiceAccount와 RBAC 인증 = login(Authentication) 인가 = login한 사용자가 가지는 권한(Authorized) 쿠버네티스는 다수의 사용자가 함께 사용하는 시스템이기 때문에 사용자의 접근과 사용자별로 사용할 수 있는 기능을 제어하는 등 보안 측면에서 다양한 기능을 제공 사용자 또는 애플리케이션에 해당하는 ServiceAccount 명령을 실행할 수 있는 권한을 부여하는 RBAC(Role Based Access Control) kubectl은 k8s 설치 시 기본적으로 관리자 권한을 갖도록 설정되어 있다. vi /etc/kubernetes/admin.conf user는 kubernetes-admin 밖에없다. kubernetes-adm..
0. 실습과제 1. Private docker-registry를 k8s의 RelicaSet으로 올리기 해당 작업을 하기 위해서는 먼저 docker-registry를 올려야 한다. docker-registry를 올릴 때, NFS를 사용하기 때문에 pv, pvc 설정도 해주어야 하며, registry의 config.yml 파일의 위치도 지정해주어야 한다. docker-registry.yaml 파일 구조는 다음과같다. # vi docker-registry.yaml apiVersion: apps/v1 kind: ReplicaSet metadata: name: docker-registry labels: app: docker-registry spec: replicas: 1 # replicas 설정 selector:..
인그레스(ingress) 사전적 의미로 '진입' (반대 의미로는 '진출' egress를 사용) 네트워크 7계층(L7) 레벨에서 정의하는 쿠버네티스 오브젝트 외부 요청의 라우팅 가상 호스트 기반의 요청 처리 SSL/TLS 보안 연결 처리 등 TCP/IP 통신을할 때는 IP와 Port가 필요하다. → 한계가 존재한다. 해당 도메인에 대한 하위정보에 이런 경로가 있고, image가 있고 확인이 가능하다 → L7 switch(응용레벨제어) 인그레스 설정만으로는 인그레스가 동작하지는 않는다 → 인그레스 컨트롤러(Ingress Controller) 설치 필요 (실습) ingreess # vi ingress-example.yaml apiVersion: networking.k8s.io/v1beta1 kind: Ingr..
0. 실습과제 1. mysql 패스워드를 시크릿으로 생성하여 wordpress - mysql pod에 적용하기, Mysql의 두 환경변수 중, 패스워드는 시크릿으로, 나머지는 컨피그맵으로 적용 Secret으로 루트 패스워드를 먼저 만들어준다. kubectl create secret generic mysql-root-password --from-literal MYSQL_ROOT_PASSWORD=password 나머지는 지난시간에 쓴 configMap를 가져와서 수정 후 configMap을 생성하면 된다. # vi mysql-configmap MYSQL_DATABASE=my-db MYSQL_USER=test MYSQL_PASSWORD=test k create configmap mysql-envfile --f..
0. Persistent volume(PV)과 Persistent Volume Claim(PVD) 포드의 데이터를 영구적으로 저장하기 위한 방법 쿠버네티스는 여러 워커 노드를 사용하고, 어떤 노드에서 접근하더라도 사용할 수 있는 공용 볼륨 필요 호스트의 디렉토리를 포드와 공유해 데이터 저장 포드가 있는 노드에서만 생성되기 때문에 장애 발생 시에는 문제 모든 노드에서 필요한 특수한 포드의 경우 유용하게 사용할 수 있다 1. 워커 노드의 로컬 디렉토리를 볼륨으로 사용 : hostPath # vi hostpath-pod.yaml apiVersion: v1 kind: Pod metadata: name: hostpath-pod spec: containers: - name: my-container image: bu..
0. 실습과제 1. wordpress-mysql이 사용하는 환경변수를 configmap을 이용하여 적용하기 먼저 mysql configmap파일을 만들어야 한다. 만약 configmap을 어떻게 써야 하는지 모르겠다면 먼저 예전 mysql.yaml 파일 자체를 configmap으로 만들면 된다. kubectl apply -f mysql-pod.yaml # 예전에 만든 mysql-pod.yaml 파일 실행 kubectl exec mysql -- env # 환경설정파일 확인 빨간색 네모 박스 부분만 필요하다 root@kube-master1 ~/practice_7/configmap_test # kubectl exec mysql -- env PATH=/usr/local/sbin:/usr/local/bin:/us..