본문 바로가기
728x90
반응형

2020/1212

2020년을 돌아보며 어느새 2020년 12월 31일이 되었다. 코로나로 인해서 온 세상이 멈춰버린듯 한 2020년이었지만 시간은 여지없이 흘러갔고 몇시간 후면 2021년을 맞이하게 되었다. 올 한해 내가 무엇을 했었고 무엇을 못했는지 한번 돌아보려 한다. 2019/12/24 - [P's Life] - 2020년에는 꼭 실천해 보자. 1. 영어 영어 일기는 초반에 좀 쓰다가 나중에 안쓰게 됐다. 처음 계획은 주 5일 매일매일 하겠다는 야심찬 계획이었으나 쉽게 지켜지지 않았다. 3월 말까지 쓰고 안쓴듯 하다. 단지 꾸준히 했던것은 회사에서 신청한 전화영어 정도. 전화영어 같은 경우는 올해 한해동안 계속 했는데 생각보다 실력이 좋아지지는 않았다. 예습 또는 복습이 같이 병행되지 않고 전화하는 순간에만 영어를 하려다 보니 강사에게.. 2020. 12. 31.
쿠버네티스 입문 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.
쿠버네티스 입문 - 8장 인그레스 Ingress 개념 클러스터 외부에서 안으로 접근하는 요청들을 어떻게 처리할지 정의해둔 규칙 인그레스는 규칙들의 모음이며 실제로는 인그레스 컨트롤러가 동작시킨다. 설정 apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: test annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - host: foo.bar.com http: paths: - path: /foos1 pathType: Prefix backend: service: name: s1 port: number: 80 - path: /bars2 pathType: Prefix backend: service: name:.. 2020. 12. 30.
쿠버네티스 입문 - 7장 서비스 Service 개념 동적으로 변하는 Pod 들을 고정적으로 접근할 때 사용한다. 서비스는 주로 L4영역에서 통신할 때 사용한다. 서비스 타입 ClusterIP default, 클러스터 내부에서만 사용가능 NodePort 모 모든 노드에 지정된 포트를 할당함. 외부에서 접근 가능 LoadBalancer EXTERNAL-IP 생성 외부에서 Pod 접근 가능 할수 있게 해줌 ExternalName 서비스를 .spec.externalName 필드에 설정한 값과 연결한다. 클러스터 안에서 외부에 접근할 때 주로 사용한다. 서비스 사용 설정 apiVersion: v1 kind: Service metadata: name: my-service spec: type: ClusterIP selector: app: MyApp.. 2020. 12. 30.
쿠버네티스 입문 - 6장 컨트롤러 Controller 개념 Pod 를 관리하는 역학을 한다. Replicatoin Controller(레플리케이션 컨트롤러), ReplicaSet(레플리카 셋) Replication Contller 초기부터 있었던 기본적인 컨트롤러 명시한 Pod 개수만큼 유지하도록 해준다. 현재는 ReplcaSet 을 쓴다. ReplicaSet 레플리케이션 컨트롤러의 발전형. 레플리케이션 컬트롤러와 차이점은 집합기반 셀렉터를 지원 한다. (in, notin, exists) rolling-update 옵션 사용불가 설정 apiVersion: v1 kind: ReplicaSet metadata: name: nginx-replicaset spec: template: metadata: name: nginx-replicaset l.. 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.
IntelliJ Git 스테이징 지원 활성화 하기 IntelliJ 2020.3 의 기능 중에 Git 스테이징 지원 이라는 항목이 있다. 그래서 이걸 써보려고 위에 나와있는 것 처럼 환경 설정을 확인해봤다. 그런데 Git 설정을 들어가 보니 위의 그림처럼 Enable staging area 가 비활성화 되어있다. (처음에는 체크가 안된 상태로 비활성화 되어있었다. ) 이것때문에 한참을 찾았는데 다음과 같이 해결을 하면 된다. Version Control > Commit 항목에 보면 Use non-modal commit interface 라는 항목이 있다. 이걸 체크해주고 apply 해주면 위에 Enable staging area 가 활성화 된다. 활성화를 하고 나면 위와 같이 staged, unstaged 항목을 볼 수 있는 창을 사용할수 있게 된다. 2020. 12. 10.
다른 브랜치에서 pull 하면 어떻게 될까??? Git 을 사용하면서 pull 을 받을때 다른 브랜치를 pull 받는 경우가 있다. 예를 들어서 나는 현재 A 브랜치에서 작업을 하고 있다. 그런데 B 브랜치의 내용을 A 브랜치로 pull 을 받아야 한다. ( 왜 이렇게 사용하냐고 묻는 다면.. 어쩌다 보니 이렇게 사용하게 됐다..) 그래서 한가지 궁금한게 생겼다. 다른 브랜치를 pull 받는것과 merge 하는것과 차이가 있을까??? 그럼 한번 실험을 해보자. - master 브랜치, dev01 브랜치 생성 먼저 위 그림을 보자. 위 상황은 다음과 같다. 1. master 브랜치에서 test1.md 파일 생성후 커밋 2. dev01 브랜치 생성 3. dev01 브랜치에서 test2.md 파일 생성 - dev02 브랜치 추가 , test3.md 파일 추.. 2020. 12. 7.
728x90
반응형