반응형 kubernetes17 [k8s] drain 명령어 kubectl drain 노드명 - drain 명령어를 사용하게 되면 해당 노드의 pod 를 다른 노드로 옮긴다. - 실제로는 pod 를 옮기는게 아니라 다른 노드에 재 생성한다. - 데몬셋을 무시하고 진행할 경우에는 --ignore-daemonsets 옵션을 사용한다. 아래와 같이 myserver-002와 myserver-003 에 pod 가 각각 deploy 되어있다. root@myserver-001:~# kubectl get po -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES rollout-nginx-74695fdcd-5trw5 1/1 Running 0 3m55s 10.32.0.2 myserver-002 r.. 2021. 11. 4. 쿠버네티스 입문 12장 파드스케줄링 파드 스케줄링 파드를 만들때 어떤 노드에서 실행할지 다양한 옵션으로 선택할 수 있다. NodeSelector(노드 셀렉터) 설정spec: containers: nodeSelector: key: value Node Affinity 노드 레이블을 기반으로 파드를 스케줄링 한다. 노드 셀렉터를 함께 설정할 경우 둘다 만족하는 노드에 스케줄링된다. requiredDuringSchedulingIgnoredDuringExecution : 스케줄링 하는동안 꼭 필요한 조건 preferredDuringSchedulingIgnoredDuringExecution : 만족하면 좋은 조건. (필수아님) 스케줄링 하는 동안 조건이 변경되더라도 무시한다. 설정spec: affinity: nodeAffinity: requiredD.. 2020. 12. 31. 쿠버네티스 입문 11장 secret Secret 비밀번호 같은 민감한 정보를 저장하는 용도로 사용 생성 명령어 kubectl create generic secret명 --from-file~ 실제 값은 base64 로 인코딩한 값이 들어간다. 템플릿 apiVersion: v1 kind: Secret metadata: name: user-pass-yaml type: Opaque data: username: 값 password: 값 type Opaque : 기본값 kubernetes.io/service-account-token : 쿠버네티스 인증토큰 저장 kubernetes.io/dockerconfigjson: 도커 저장소 인증정보 저장 kubernetes.io/tls: TLS 인증서 저장 data 값은 base64 로 인코딩 한 값을 넣어야 .. 2020. 12. 30. 쿠버네티스 입문 9장 레이블&애너테이션 Label, Annotation Label(레이블) 키-값 쌍으로 구성 파드 관리할때 구분하는 역할을 한다. 규칙 63글자 넘으면 안됨 시작과 끝문자는 알파벳 대소문자 및 숫자 중간에는 대시(-), 밑줄(_), 점(.), 숫자등이 올수 있음 레이블 셀렉터 등호기반(=, ==) 집합기반(in, notin..) 레이블을 모두 만족시켜야 하는경우 (And) 는 쉼표로 연결 실제 서비스에서 정상적으로 셀렉트를 했는지 보려면 서비스의 endpoint를 확인해보면 된다. pod 선택시 -l 옵션 사용 kubectl get pod -l 레이블~ Annotation 쿠버네티스 시스템이 필요한 정보를 담는다. 키는 쿠버네티스 시스템이 인식할 수 있는 값을 사용한다. 출처 : 쿠버네티스 입문 - 90가지 예제로 배우는 컨.. 2020. 12. 30. 쿠버네티스 입문 10장 컨피그맵 ConfigMap 컨테이너에 필요한 환경 설정을 컨테이너와 분리해서 제공하는 기능 사용 설정apiVersion: v1 kind: ConfigMap metadata: name: config-dev data: DB_URL: localhost DB_USER: myuser DB_PASS: mypass DEBUG_INFO: debug 컨피그맵 일부만 사용spec: containers: - name: image: env: - name: DEBUG_LEVEL valueFrom: configMapKeyRef: name: config-dev key : DEBUG_INFO .env[].valueFrom 사용 .env[].valueFrom.configMapKeyRef 를 통해 이미 정의된 configmap 사용 컨피그맵 전.. 2020. 12. 30. 쿠버네티스 입문 - 5장 파드 Pod 개념 쿠버네티스에서 실제로 컨테이너를 묶어서 관리하는 단위 설정 apiVersion: v1 kind: Pod metadata: name: simple-pod (Pod 이름) labels: app: simple-pod (오브젝트를 식별하는 레이블) spec: containers: - name: simple-pod (컨테이너 이름) image: ~~~ (컨네이너에서 사용할 이미지) ports: - containerPort: 8080 Pod 생명주기 Pending -> Running Successed Failed Unknown 컨테이너 진단 ivenessProbe 컨테이너가 실행됐는지 확인 실패시 컨테이너를 종료시키고 재시작 정책에 따라서 재시작 readinessProbe 컨테이너 실행된 후 실제로 서.. 2020. 12. 23. [나는 리뷰어다] Kubernetes Best Practices 쿠버네티스 모범 사례 이 책은 Kubernetes 에 대한 이론적인 내용을 담고 있으면서 각각의 Best Practice 에 대한 내용들을 담고 있다. 실습을 하면서 읽어볼 수도 있고 그런 여건이 되지 않는다면 참고 서적처럼 읽는 방법도 괜찮아 보인다. 나같은 경우는 내용을 따라 해보면서 완독을 했다. 책을 읽으면서 몇가지 좋았던 점과 아쉬웠던 점을 말하고자 한다. 우선 좋았던 점은 책 제목에서 처럼 여러가지 사례들이 많이 담겨 있다는 것이다. Kubernetes 에 대한 이론을 설명해주면서 어떻게 활용하는 것이 좋은 방법인지 알려준다. Kubernetes 를 공부하다 보면 노드에 파드를 생성하고 서비스가 잘 동작하는걸 확인해 보는건 그나마 쉽다. 하지만 그걸 운영에 가져갔을때 어떻게 사용을 해야 올바른 방법인지는 찾기가 좀.. 2020. 12. 17. [K8S] Kubernetes 설치시 오류 조치 [K8S] ## K8S 설치시 Trouble Shooting - kubeadm init 했는데 다음과 같이 나오는 경우 [wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s [kubelet-check] Initial timeout of 40s passed. Unfortunately, an error has occurred: timed out waiting for the condition This error is likely caused by: - The kubelet is not.. 2020. 10. 13. [K8S] Kubernetes secret 생성 ingress 에 tls 에서 사용되는 인증서가 만료되어서 secret 을 생성 해야 할 경우 다음과 같이 생성하면된다. 인증서와 key 파일은 있다고 가정한다. 없다면 다음 글을 참고하면 된다. 2018/08/22 - [Development/Tech&Seminar] - Openssl로 SSL 을 위한 인증서 발급하기 (HTTPS) secret 이름은 my-secret 이라고 가정하고 dev 네임스페이스에 생성되어있다고 가정한다. 1. 기존 secret 삭제 kubectl delete secret my-secret -n dev 2. secret 생성 kubectl create secret tls my-secret --key my.key --cert my.crt -n dev 이렇게 하면 끝난다. 이미 in.. 2020. 4. 14. [Qwiklabs]Scale Out and Update a Containerized Application on a Kubernetes Cluster Tasks Check that there is a tagged image in gcr.io for echo-app:v2 Echo-app:v2 is running on the Kubernetes cluster The Kubernetes cluster deployment reports 2 replicas. The application must respond to web requests with V2.0.0 1. 파일 압축 풀기 및 Docker Build - 압축 풀기 tar -xvzf resources-ehco-web-v2.tar.gz - PROJECT_ID 환경변수 등록 export PROJECT_ID=$(gcloud info --format='value(config.project)') - Image 를 .. 2020. 3. 26. [Qwiklabs]Build and Deploy a Docker Image to a Kubernetes Cluster Tasks An application image with a v1 tag has been pushed to the gcr.io repository A new Kubernetes cluster exists (zone: us-central1-a) Check that an application has been deployed to the cluster Test that a service exists that responds to requests like Echo-app 1. 클러스터 생성 gcloud beta container --project "qwiklabs-gcp-00-337f72711928" clusters create "echo-cluster" --zone "us-central1-a" --no-ena.. 2020. 3. 26. [나는 리뷰어다] Managing Kubernetes!!! 이 책이 최근에 나온 것을 알고 읽어봐야겠다라는 생각을 하고 있었는데 이렇게 리뷰어로 선정되어 읽게 되었다. 우선 이 책의 목차를 보면 총 13개의 Chapter 로 구성되어있다. 1. 쿠버네티스란 2. 쿠버네티스 살펴보기 3. 아키텍처 4. 쿠버네티스 API 서버 5. 스케줄러 6. 쿠버네티스 설치 7. 인증과 사용자 관리 8. 인가 9. 승인제어 10. 네트워킹 11. 모니터링 12. 재해복구 13. 쿠버네티스 확장하기 Chapter 1 에서부터 6 까지는 쿠버네티스의 이론 적인 내용이 주로 설명되어있다. 단, 이 책은 운영에 대해서 초점을 맞춘 책이기 때문에 오브젝트 단위까지의 자세한 설명은 언급하지 않았다. 그리고 그 이후 Chapter 에서는 운영 환경에서 설정을 해줄수 있는 또는 해줘야 하는 .. 2019. 7. 10. 이전 1 2 다음 728x90 반응형