라벨의 1.Kubernetes LABLE
LABLE이는 Kubernetes의 중심 개념이다하는 lable가이 키 = 키 - 값 쌍 키 및 상기 사용자에 의해 지정된 값의 값이 다양한 lable가 자원 오브젝트, 예를 들어 기지국, 포드, 서비스, RC 등 (A)에 부착 될 수있다 리소스 객체 정의는, 또한 동적으로 추가 또는 객체가 생성 된 후에 제거 될 수있는 경우 자원 객체도 LABLE와 개체 자원의 수를 추가 할 수 LABLE 임의의 개수를 정의 할 수 LABLE 보통 결정된다.
예를 들면, 상이한 환경에 대한 애플리케이션의 다른 버전을 배포 자원 객체 또는 다른 패킷 자원 관리 LABLE 다차원 복수의 결합에 의해 달성 될 수 있으며 또는 모니터링 및 분석 애플리케이션 (기록, 모니터링 경보) 등등. 태그의 일반적인 예는 다음과 같다 :
- 버전 라벨 "릴리스": "안정", "릴리스": "카나리아". . . . .
- 환경 라벨 "환경": "DEV", "환경": "생산"
- 架构 标签 "계층": "프론트 엔드", "계층": "백엔드", "계층": "미들웨어"
- 파티션 레이블 "파티션": "customerA"...
- 품질 관리 태그 "트랙": "매일", "트랙": "주간"
자원 객체를 정의하려면 LABLE 그에게 레이블에 해당하는 준, 당신은 조회 할 수 있습니다 및 필터 LABLE 선택기 (태그 선택기)를 통해 일부 LABLE 자원 객체를 가지고는 Kubernetes 달성 SQL과 같은 쿼리는이 방법으로 개체를 메커니즘. SQL에서 쿼리가 현재 표현 LABLE 선택기 두 종류가있는 곳으로 LABLE 선택기에 해당 : 세트에 식 (평등 기반)을 기반으로하고 기반의 (세트 기준).
전자 용도는 매칭 태그 표현식은 다음 예 "식 기반"
- 이름 = 레디 스 - 슬레이브는 매치는 레이블 이름을 가진 모든 자원 객체는 = 레디 스 - 슬레이브을
- ! 봉투 = 생산 :의 목적은 모든 태그 봉투에 맞게 자원이없는 = 생산
식 매칭 태그 다음의 예를 사용하는 작업의 후반 세트 :
- (레디 스 마스터가, 레디 스 - 슬레이브)에 이름 : 레이블 이름 = 레디 스 마스터 또는 이름을 가진 모든 자원 객체를 일치 = 레디 스 - 슬레이브
- 에없는 이름 (mysql을 - 백엔드) : 자원 객체의 모든 레이블 이름 = mysql을 - 백엔드 일치하지 않습니다
여러 가지 조건 사이의 관계 "AND"분리 될 수있다 ","즉, 복수의 조건이 만족된다 lable가 선택기 복잡한 조건식을 선택 쉼표 여러 식의 복수의 조합에 의해 달성 될 수있다 다음 예제 :
- 이름 = 레디 스 마스터, ENV! = 생산
- (레디 스 마스터, 레디 스 - 슬레이브), ENV에 이름을! = 생산
다음과 같이 일반적으로, 우리는 포드 lable가의 정의를 제공합니다 :
apiVersion : V1
종류 : 포드
메타 데이터 :
이름 : myweb
lables :
응용 프로그램 : myweb
RC 및 서비스 관리는 선택기와 포드 정의 된 사양에 준 개체 :
apiVersion : V1
종류 : ReplicationController
메타 데이터 :
이름 : myweb
투기:
복제본 : 1
선택자:
응용 프로그램 : myweb
apiVersion : V1
종류 : 서비스
메타 데이터 :
이름 : myweb
투기:
선택자:
응용 프로그램 : myweb
포트 :
- 포트 : 8080
당신이 선택에 따라 정의 된 필터 조건의 집합을 사용할 수 있습니다 배포, ReplicaSet, DaemonSet 작업 신흥 관리되는 객체로서 다음과 :
선택자:
matchLables :
응용 프로그램 : myweb
matchExpressions :
- {키 계층 연산자에서는 값 [프론트 엔드]}
LABLE, 직접 쓰기 선택기 같은 역할의 집합을 정의하기위한 matchLables이 matchExpressions 가능한 상태 사업자의 집합을 기준으로 필터링 기준의 세트를 정의하는 데 사용은 다음과 같습니다에서, NotIn,은, DoesNotExist을 존재
모두 matchLables 및 matchExpressions 경우, "AND"관계, 필요 조건의 두 세트는 심사 선택을 완료하기 위해 충족되어야합니다.
몇 가지 중요한 사용 시나리오는 Kubernetes에서 LABLE 선택은 다음과 같습니다
- KUBE 제어기 프로세스는 자동 유동 제어 설정 포드 일관 충족 기대 매수를 달성하기 위해, 포드 LABLE 선택기 리소스 객체 RC에 의해 정의 모니터링 매수를 필터링 할
- KUBE 프록시 프로세스는 서비스기구 지능적인로드 밸런싱을 가능 자동 라우팅 테이블을 각 서비스 포드 포워딩 해당 요청을 수립하기 위해, 포드 LABLE 선택기 서비스를 통해 대응하는 선택
- 정의 특정 LABLE 일부 노드 및 사용 NodeSelector 포드 스케줄링 정책 정의 파일에서이 레이블로, KUBE-스케줄러 프로세스는 포드를 달성하기 위해 "직접 예약"기능이 될 수 있습니다
2.Kubernetes 之 복제 컨트롤러
복제 컨트롤러는 Kubernetes에 실제로 원하는 장면의 정의, 다음과 같은 값을 포함하여 예상 값에 맞춰 언제든지 특정 포드 문 사본의 수, RC에서 언급 :
- 포드는 예상 번호 (복제본) 사본
- 포드의 선별 LABLE 선택기 대상
- 매수는 포드가 적은 예상 수보다 경우, 템플릿은 새 포드 (템플릿)을 만드는 데 사용
우리는 RC의 수를 정의와는 Kubernetes에 제출하면, 마스터 노드 컨트롤러 Manager 구성 요소는 정기적 인 검사 시스템 현재 가능한 대상 포드를 통지하고, 이상의 경우 정확히의 대상 포드 예 것으로, 복제본의 값과 동일 이 값이, 시스템은 포드의 일부를 중지됩니다, 적게는 몇 가지 포드를 작성합니다. 그것은 RC에 의해, 말할 수있다, 많은 수동 작업의 운영 및 유지 보수를 줄이고, 고 가용성 클러스터를 달성하기 위해 사용자 응용 프로그램을는 Kubernetes
우리는 동적으로 인스턴스 포드의 수를 확대 할 수 있습니다, kubectl 스케일 RC 명령은 우리를 위해이 기능을 제공합니다
kubectl 스케일의 RC 레디 스 슬레이브 --replicas = 3
삭제가 이미 포드에 의해 생성 된 RC 및 RC 영향을 미치지 않습니다 모든 포드를 제거하기 위해 주목해야한다, 당신은 복제본을 설정할 수 있습니다 0, 다음 RC를 업데이트합니다. 또한 kubectl 모든 포드 RC 및 RC 타임 컨트롤을 삭제 정지 및 삭제 명령을 제공합니다
RC는 또한 부드럽게 포드의 10 개 이전 버전이 새 버전으로 업데이트해야하는 등 현재의 시스템으로 사용자 응용 프로그램의 기능이 업그레이드 제공, 가장 좋은 방법은 몇 분 후, 때마다 포드의 이전 버전을 중지 포드의 새 버전을 만드는 것입니다 모든 포드 업그레이드의 새 버전이 완료되면, 사용자는 사업의 효과를 느끼지 않을 것입니다,이은으로는 Kubernetes라고 "롤링 업그레이드."