Kubernetes 13

Service api

virtual_ip(단일 진입점)를 생성하여 각각의 파드에 고르게 접속시키기 위함. Service definition clusterIP : 사용자가 직접 정의해주지 않으면 k8s에서 임의 주소 지정 port : clusterIP의 포트번호 targetPort : 파드의 포트번호 Service Type ClusterIP - selector의 label이 동일한 파드들을 그룹으로 묶어 단일진입점(virtual ip) 생성 - 클러스터 내부에서만 사용가능 - type생략시 default값으로 10.96.0.0/12 범위에서 ip할당. ClusterIP example NodePort - 모든 노드를 대상으로 외부에서 접속 가능한 포트를 예약 - Default NodePort범위 : 30000 - 32767 - ..

Kubernetes 2022.01.11

Deployment

ReplicaSet을 컨트롤해서 파드수를 조절 Rolling update & Rolling back (Rolling update : 서비스 중단없이 버전을 업데이트) 롤링업데이트를 위해 만들어진 api리소스가 deployment이다. Deployment definition Deployment example kubectl get deploy, rs, pod =>현재 동작중인 deploy, replicaSet, pod를 출력 Deployment rolling update & rolling back(1) *Rolling Update kubectl set image deployment = *RollBack kubectl rollout history deployment =>의 버전기록을 표시 kubectl rol..

Kubernetes 2022.01.10

ReplicaSet

ReplicationController와 같은 역할을 하는 컨트롤러 ReplicationController보다 풍부한 selector *matchExressions - In : 키와 밸류를 지정하여 key, value가 일치하는 파드만 연결 - NotIn : key는 일치하고 value는 일치하지 않는 파드에 연결 - Exists : key에 맞는 label의 파드를 연결 - DoesNotExist : key와 다른 label의 파드를 연결 ReplicaSet definition ReplicaSet의 selector ReplicaSet example kubectl delete rs rs-nginx --cascade=false =>pod는 삭제되지않고 컨트롤러만 삭제

Kubernetes 2022.01.10

Replication Controller

*컨트롤러 종류 *Replication Controller 요구하는 pod의 개수를 보장하며 파드집합의 실행을 항상 안정적으로 유지하는 것을 목표 ReplicationController-definition *Replication Controller 실습예제 kubectl create -f rc-nginx.yaml kubectl get replicationcontrollers (=kubectl get rc) kubectl describe rc rc-nginx kubectl run redis --image=redis --labels=app=webui --dry-run > redis.yaml kubectl get pod --show-labels kubectl create -f redis.yaml kubectl..

Kubernetes 2022.01.10

H/W resource 관리

*Resource Requests -파드를 실행하기위한 최소 리소스양 요청 *Resource Limits -파드가 사용할 수 있는 최대 리소스양을 제한 -Memory limit을 초과해서 사용되는 파드는 종료(OOM Kill)되며 다시 스케줄링된다. *resource, env관련 실습 [solution] apiVersion: v1 kind: Pod metadata: name: myweb spec: containers: - image: nginx:1.14 name: myweb env: - name: DB value: mydb resources: requests: memory: 500Mi cpu: 200m limits: memory: 1Gi cpu: 1

Kubernetes 2022.01.07

Kubernetes namespace

*namespace -클러스터하나를 여러개의 논리적인 단위로 나눠서 사용 -쿠버네티스 클러스터 하나를 여러 팀이나 사용자가 함께 공유 -용도에 따라 실행해야하는 앱을 구분할때 사용 *namespace 생성 command kubectl create namespace blue kubectl get namespaces kubectl create namespace green --dry-run -o yaml > green.yaml kubectl create -f green.yaml *namespace 관리 command kubectl get namespace kubectl delete namespace

Kubernetes 2022.01.05