[12]의 연구는 작은 헬기 조종사 노트 : 내 첫 컨테이너 응용 프로그램을

"심층 분석는 Kubernetes - 12 작은 헬기 조종사 :. 내 첫 컨테이너 응용 프로그램을"


제조 화상 YAML 프로파일 (또는 JSON)의 제조 : 두 단계를 포함한다

배치에 대한 일 예로서 Nginx에

apiVersion : 응용 프로그램 / V1의  
종류 : 배포  
메타 데이터 :  
  이름 : nginx를-배포  
사양 :  
  선택 :  
    matchLabels :  
      응용 프로그램 :의 nginx의  
  복제본 : 2  
 템플릿 :  
   메타 데이터 : 라벨 :  
     응용 프로그램 :의 nginx의  
   사양 :  
     컨테이너 :  
     - 이름 : nginx를  
       이미지 :의 nginx : 1.7. 9 개  
       포트 :  
       - containerPort : 80


종류 필드 유형, 예를 들어 배포를 선언하며, 메타 데이터는 구체적 예 : 이름, 네임 스페이스, 라벨, 특수 효과 등을 위해, 설명, 등 daemonset

spec.template는 포드의 상세한 설명, 즉, 컨테이너 구성 템플릿


작성 배포

$의 kubectl은 -f의 nginx-deployment.yaml를 만들


보기 배포 작업

$ kubectl GET 포드 -l 응용 프로그램 = nginx를  
NAME READY 상태는 AGE n을 다시 시작 
ginx 배포-67594d6bf6-9gdvr 1/1 0 10m 달리기  
0 10m 실행 nginx를 배포-67594d6bf6-v6j7w 1/1


API 오브젝트의 세부 정보보기

포드의 nginx 배포-67594d6bf6-9gdvr 설명 kubectl 
이름 : nginx를 배포-67594d6bf6-9gdvr 
네임 스페이스 : 기본 
우선 순위 : 0 
PriorityClassName : <없음> 
노드 : 노드-1 / 10.168.0.3 
시작 시간 : 2018년 (목) 08:48 8월 16일 : 42 0000 
레이블 : 응용 프로그램 = nginx를 
                    포드 템플릿 해시 = 2315082692 
주석 : <없음> 
상태 : 실행 
IP : 10.32.0.23 
ReplicaSet / nginx를 배포-67594d6bf6 :에 의해 제어되지 
... 
이벤트 : 

  메시지에서 유형 이유 나이

  ---- ------ ---- ---- ------- 
  
  일반 예약 된 1m 기본-스케줄러 성공적으로 할당 된 기본 / nginx를 배포-67594d6bf6-9gdvr 노드-1 
  정상 이겠지 25 초 kubelet 노드-1 당기는 이미지 "의 nginx : 1.7.9" 
  일반 빼서 17S의 kubelet, 노드-1을 성공적으로 가져온 이미지 "의 nginx : 1.7.9" 
  일반 만든 17S의 kubelet, 노드 1 만든 컨테이너 
  일반 시작 17S의 kubelet는 노드 1 시작 컨테이너


후반 필드가 이벤트 문제의 위치를 ​​찾을 수 있습니다, 일반

(1)를 포함하는 적합한 노드 노드 일정 창을 찾을

경기 노드는 노드 레이블이 아니다;

노드 노드 자원이 충분하지 않습니다;

노드는 노드의 얼룩을 가지고;

네트워크 노드에서 비정상 노드;


(2) 상기 미러 실패 당겨

컨테이너 미러링 버전 업그레이드

...     
    사양 : 
      컨테이너 : 
      - 이름 : nginx를 
        이미지 : nginx를 여기 # 1.8 1.7.9 1.8에서 수정 된 
        포트 : 
      - containerPort : 80


실행

$의 kubectl은 -f의 nginx-deployment.yaml 교체

보다 일반적인 방법은 만들거나 명령을 통해 수행 할 수 있습니다 수정 여부, 관련 작업의 구현을 통해 적용하는 것입니다

$ Kubectl은 -f의 nginx-deployment.yaml 적용  
# nginx를-deployment.yaml의 내용을 수정  
적용 kubectl $을 -f의 nginx-deployment.yaml을

다음은 탑재 된 볼륨의 예

EmptyDir 및 보통 이가지 hostPath으로 나누어 져, 그 차이는 전자는 호스트 디렉토리 (소스 디렉토리)를 지정할 필요가 없다는 것입니다, K8S는 호스트에 임시 디렉토리를 생성하고 마운트하고, 후자는 명시 적으로 선언 할 필요가 연결되어 소스 디렉토리에 포함 된, 예를 들면, 호스트 컴퓨터 / usr / 지방 / Nginx에 / HTML 디렉토리는 용기의 동일한 위치에 장착 될


emptyDir 예

볼륨 : 
      - 이름 : nginx를-부피 
        emptyDir : {} 
hostPath的例子
...    
    볼륨 : 
      - 이름 : nginx를-부피 
        hostPath :  
          경로의 경우 : / var / 데이터


컨테이너 속으로

$의 kubectl 간부 - 그것은 nginx를 배포-5c678cfb6d-lg9lw - / 빈 / bash는  
# 1!는 / usr / share /의 nginx / html로


컨테이너 삭제

$ Kubectl 삭제 -F의 nginx deployment.yaml


추천

출처blog.51cto.com/pmghong/2404535