Kubnetes 테스트
11274 단어 kubernetes
Docker는 개발 환경 구축에 자주 사용되지만 업무상 컨테이너를 사용하기 때문에 지금은 Kubernetes를 계속 배우고 싶습니다.
이 보도는 아래 책의 비망록이다.
설치하다. Docker Desktop은 Kubernetes를 지원하므로 Docker Desktop이 이미 설치된 환경에서는 사용만 하면 됩니다. 작업 표시줄의 Docker의 "Pregerences..."누름단추
선언문을 사용해 실례를 만들어 보자.
1. 선언문 작성
용기를 관리하는 자원 정의 파일을 yaml 형식으로 만듭니다.
필수 항목은
apiVersion
,kind
,metadata
,spec
입니다.kind
의 자원 유형은 다음과 같은 내용을 참조한다.정의된 견본
apiVersion: v1
kind: Pod
metadata:
# Podの名前
name: nginx
spec:
# 実行するコンテナの定義
containers:
- name: nginx
image: nginx:1.15.7
ports:
- containerPort: 80
kind: Deployment
여러 Pod 관리 리소스3개의 Pod Deployment 정의 샘플 실행
# APIバージョン
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
# 実行するPodの数
replicas: 3
# Pod定義のテンプレード
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.15.7
ports:
- containerPort: 80
API 버전은 kind
의 종류에 따라 다릅니다.조사하려면
kubectl api-resources
를 사용하세요.2. 선언문 등록
작성된 선언 파일을 Kubernetes에 로그인합니다.
여기, 선언문건
deployment.yaml
으로 제작되었습니다.$ kubectl apply -f deployment.yaml
deployment.apps/nginx-deployment created
Pod의 시작을 확인합니다.$ kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-deployment-7d4d8467d9-kr6m9 1/1 Running 0 117s
nginx-deployment-7d4d8467d9-mwhdf 1/1 Running 0 117s
nginx-deployment-7d4d8467d9-srb8g 1/1 Running 0 117s
3. Pod의 부하 분산방금 시작한 3개의 Pod에 대한 로드 분산을 위한 리소스
Service
를 정의합니다.우선 제작
service.yaml
.service.yaml
# APIバージョン
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
# 外部からもアクセス可能にする
type: LoadBalancer
selector:
# 先ほど作成したdeploymentのpod(app: nginx)にトラフィックを分散する
app: nginx
# Port8080への通信をPodの80ポートに転送する
ports:
- protocol: TCP
port: 8080
targetPort: 80
Kubbernetes에 로그인$ kubectl apply -f service.yaml
service/nginx-service created
서비스 상태 확인$ kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 56m
nginx-service LoadBalancer 10.98.68.206 localhost 8080:32539/TCP 61s
부하 분산을 실현하기 위해 서비스는 가상 IP 주소(Cluster IP)를 만들었다.EXTERNAL-IP 는 외부 액세스 가능한 가상 IP 주소입니다.
Docker에서 설치한 Kubernetes의 EXTERNAL-IP는 항상
localhost
입니다.브라우저에서 액세스해 보십시오
http://localhost:8080
.nginx의 화면을 표시했습니다.
객체 관리 방법
다음 세 가지가 있습니다.
①MySQL5.7.21 DB②에 설치하고nginx버전 1.14.2를 WEB에 설치한다. 이러한 절차를 실제 스크립트나 설정 파일에 기록하고 관리 도구가 이 절차를 수행한다.
선언형
①MySQL5.7.21에서 DB,nginx1로 변경됩니다.14.2 WEB에 설치된 시스템의 이상적인 형태를 정의합니다.
명령 유형 명령
단일 컨테이너 인스턴스 시작하기
명령
$ kubectl run nginx --image nginx
서로 다른 문법을 사용하여 같은 조작을 하다명령 페이지
$ kubectl create deployment nginx --image nginx
컨테이너 버전 업데이트set 명령
$ kubectl create deployment nginx --image nginx:1.14.2
$ kubectl set image deployment/nginx nginx=nginx:1.15.8
nginx 용기의 복사본을 3으로 변경scale 명령
$ kubectl create deployment nginx --image nginx
$ kubectl scale deployment/nginx --replicas 3
객체 삭제delete 명령
$ kubectl delete deployment nginx
명령 유형 객체 설정설정 파일에 정의된 객체 만들기
명령 페이지
$ kubectl create -f nginx.v1.14.2.yaml
설정 파일에 정의된 정보로 현재 설정을 덮어씁니다replace 명령
$ kubectl replace -f nginx.v1.15.8.yaml
설정 파일에서 정의된 객체 삭제delete 명령
$ kubectl delete -f nginx.yaml -f redis.yaml
질문$ kubectl create -f nginx.v1.14.2.yaml
$ kubectl scale deployment/nginx --replicas 3
$ kubectl replace -f nginx.v1.15.8.yaml //2つ目のコマンドの変更が消失
이런 문제를 방지하기 위해서는 제3자가 변경하지 않는 방법을 활용할 필요가 있다.선언 유형 객체 설정
성명 유형 사용
apply
.디렉토리를 지정할 수도 있습니다.
// 更新前にdiffで確認
$ kubectl diff -R -f configs/
$ kubectl apply -R -f configs/
성명 형식의 차분 계산차이점
원본 파일
설명
부가 부분
실제 대상
실제 대상에는 없지만 적용된 선언 파일에 존재하는 필드가 추가되었습니다
업데이트 섹션
실제 대상
실제 대상에 적용되는 선언 파일의 차이점 업데이트
부분 삭제
마지막으로 적용된 선언 파일
적용된 선언 파일에 존재하지 않는 마지막 적용된 선언 파일에 존재하는 필드 삭제
삭제분은 실제 대상이 아닌 지난번 선언문건과 비교하는 점이 눈에 띈다.
즉, 실제 객체에 대한 수정 사항을 유지할 수 있습니다.
다음은 실제 대상
replicas:3
과 image:nginx:1.16
을 수정한 경우다.적용 가능한 선언문
마지막으로 적용된 선언 파일
실제 대상
적용 후 객체
kind:Deploymentspec: containers: - name:nginx image:nginx:1.15
kind:Deploymentspec: containers: - name:nginx image:nginx:1.14
kind:Deploymentspec: replicas:3 containers: - name:nginx image:nginx:1.16
kind:Deploymentspec: replicas:3 containers: - name:nginx image:nginx:1.15
replicas:3
적용된 선언문에 존재하지 않는 필드지만 지난번에 적용된 선언문건에도 존재하지 않기 때문에 삭제하지 않는다.image:nginx:1.16
는 이번에 적용된 선언문서의 내용으로 업데이트된다.
Reference
이 문제에 관하여(Kubnetes 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/c3drive/items/fd91e2d16f2a400be277텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)