GKE manifests 생성 및 배포 deploy
컨텐츠 정보
- 3,408 조회
- 0 추천
- 
					
					
					
					
						
						목록
					
											
본문
				# 1. Create deployment manifests and deploy to the cluster
## Connect to the lab GKE cluster
### 환경 변수 설정
```
export my_zone=us-central1-a
export my_cluster=standard-cluster-1
```
### 설정 반영
```
source <(kubectl completion bash)
```
### 클러스터 구성
```
gcloud container clusters get-credentials $my_cluster --zone $my_zone
```
#### OUTPUT
```
Fetching cluster endpoint and auth data.
kubeconfig entry generated for standard-cluster-1.
```
### Repository 복제
```
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
```
### 심볼릭 링크 
```
ln -s ~/training-data-analyst/courses/ak8s/v1.1 ~/ak8s
```
### ak8s 디렉토리로 이동
```
cd ~/ak8s/Deployments/
```
## Create a deployment manifest
### nginx-deployment.yaml 
```
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
```
### kubectl apply 
```
kubectl apply -f ./nginx-deployment.yaml
```
### kubectl get deployments
**Output**
```
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3/3     3            3           11s
```
# 2. Manually scale up and down the number of Pods in deployments  
> 끄고 싶을 때가 있음..
## Scale Pods up and down in the console
☰ > Kubernetes Engine > Workloads.



## Scale Pods up and down in the shell
replicas 갯수 커맨드로 늘이기 
### 현재 deployments보기
```
kubectl get deployments
```
### Output
```
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   1/1     1            1           4m24s
```
### replicas 3개로 늘이기 
```
kubectl scale --replicas=3 deployment nginx-deployment
```
### 결과 
```
$kubectl get deployments
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3/3     3            3           4m53s
```
# 3. Trigger a deployment rollout and a deployment rollback
## Trigger a deployment rollout
```
$kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 --record
Flag --record has been deprecated, --record will be removed in the future
deployment.apps/nginx-deployment image updated
```
### To view the rollout status, execute the following command:
```
kubectl rollout status deployment.v1.apps/nginx-deployment
```
### 확인
```
kubectl get deployments
```
###  rollout history 보기
```
kubectl rollout history deployment nginx-deploymentkubectl rollout history deployment nginx-deployment
```
### Output
```
deployment.apps/nginx-deployment
REVISION  CHANGE-CAUSE
1         
2         kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 --record=true
```
### 최신 배포판 상세 보기 
```
$kubectl rollout history deployment/nginx-deployment --revision=3
```
# 4. Define the service type in the manifest
## 메니패스트에서 버시스 유형 정의
#### yaml
```
apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  type: LoadBalancer
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 60000
    targetPort: 80
    
```
### 로드 반렌스 확인 
```
$kubectl get service nginx
NAME    TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)           AGE
nginx   LoadBalancer   10.12.7.221        60000:30953/TCP   28s
```
# 5. 배포
## yaml
```
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-canary
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
        track: canary
        Version: 1.9.1
    spec:
      containers:
      - name: nginx
        image: nginx:1.9.1
        ports:
        - containerPort: 80
```
##  kubectl
```
kubectl apply -f nginx-canary.yaml
```
```
kubectl get deployments
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-canary       1/1     1            1           38s
nginx-deployment   3/3     3            3           14m
```
## replicas 0으로 줄이기 
```
kubectl scale --replicas=0 deployment nginx-deployment
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-canary       1/1     1            1           84s
nginx-deployment   0/0     0            0           15m
```			
					관련자료
			댓글 0
					
			
				등록된 댓글이 없습니다.
			
					 
								





