조타 장치 설치의 실제 기사는 Kubernetes

시리즈 카탈로그

투구는 주로 차트를 관리하는 데 사용되는 CNCF 부화기에서 프로젝트이다,는 Kubernetes 응용 프로그램 패키지 관리 도구입니다. 비슷한에 CentOS에서 우분투 APT 또는 YUM은. 그것은 발견, 공유 및 준비는 Kubernetes의 패키지를 사용하는 쉬운 방법을 제공합니다. 그것은 따라서 크게 힘으로 개발자의 항목을 증가, 복잡한 구성 및 배포를 제거 효율성.

어떻게 우리의 프로젝트는 매우 복잡 가정, 다음을 이해하고, 필요 미들웨어 및 미들웨어 캐시가 ...이 구성을 많이 생성합니다 대기 API 게이트웨이, 등록 센터, 유통 센터, 웹 서비스, 데이터베이스, 미들웨어, 메시지를 배포 특정 매개 변수의 행동 이상 여부를 주문하지 않는 경우 파일은, 그가 여전히 전체 배포 프로세스에 대해 잘 알고 연습 기간을 통해 갈 경우 많은 시간이 필요하지만, 다른 동료에게 작업 할 수 있습니다, 전체 시스템의 구축이 실패 될 수 있습니다 인터넷에서 공유 할 수있는 프로그램을 원하는 경우, 배포 시나리오를 이해하기 위해, 개발자들은 복잡한 구성을위한 핵심 배포가 금지 될 수있다합니다. 연습 만이 워드 프레스 배포하는 웹 프로젝트와 MySQL 서버를 배포 정말 많은 개발자는 위와 같이 복잡한 구성은 말할 것도없고, 빛하지 실망 넣어 ...

조타가 함께 국가와 비 국가 서비스 패키지의 복잡한 일련의 배치입니다,이 문제를 해결하기 위해 정확하게 (사실, YAML 파일의 조직), 당신은 선택하는 사용자를 위해 일부 사용자 지정 매개 변수 정보를 노출 할 수 있습니다 일반적으로 사용되는 용어에 대한 그러한 배포를 훨씬 쉽게 될 것입니다.하자 조타 장치는 조타 장치를 설치하는 방법을 소개 및 시연된다

관련 용어의 투구

  • 투구는 명령 줄 클라이언트 도구입니다. 주로는 Kubernetes, 포장, 출판의 응용 프로그램 차트를 만드는 데 사용하고, 로컬 및 원격 차트웨어 하우스를 생성하고 관리 할 수 있습니다.

  • 경운기 는 Kubernetes 클러스터의 서버 투구, 배포입니다. 투구 틸러 요청을 수신하기 위해, 표에있어서 다음는 Kubernetes 작성 애플리케이션에 제출 (릴리스 투구 라 함)는 Kubernetes 배치 파일을 생성. 경운기도, 삭제 기능의 일련의 롤백, 업그레이드 출시를 제공합니다.

  • 차트 차 평가 보고서 형식을 사용하여 패키지 투구. 자원 관련 YAML 파일는 Kubernetes의 정의 된 세트가 포함의 APT 가방 또는 유사한 DEB YUM RPM 패키지,

  • Repoistory 투구 창고, 저장소는 기본적으로 다운로드하는 사용자를위한 차트 소프트웨어 패키지의 일련의 보유 및 문의에 대한 차트 패키지의 저장소에있는 파일의 목록을 제공하는 웹 서버입니다. 투구는 동시에 여러 가지 다른 저장소를 관리 할 수 있습니다.

  • 릴리스 설치 명령을 조타 장치를 사용하여이는 Kubernetes 클러스터라는 릴리스 차트에 배포하는 방법

참고 :이 주 : 릴리스 투구와 우리가 일반적 개념 버전에서 언급하는 것은 다른 여기에 릴리스 투구에 대한 응용 프로그램 패키지 배포 차트의 예를 사용하여 이해 될 수있다.

차트 설치 과정

  • 지정된 디렉토리 나 파일 TAR에서 구성 정보를 분석 투구 차트.

  • 투구 차트 구성 및 gRPC를 통해 경운기 값에 지정된 정보를 제공합니다.

  • 틸러 및 차트 값에 따라 자료를 생성합니다.

  • 틸러는 릴리스 릴리스를 생성는 Kubernetes로 전송 될 수있다.

차트 업데이트 프로세스

  • 지정된 디렉토리 나 파일 TAR에서 구성 정보를 분석 투구 차트.

  • 투구는 릴리스, 차트의 이름을 업데이트해야하고 경운기에 구조 정보 값 것이다.

  • 역사 틸러 생성하고 지정된 이름의 릴리스 릴리스를 업데이트합니다.

  • 틸러는 업데이트의 릴리스 릴리스는 Kubernetes로 전송.

차트 롤백 과정

  • 투구는 경운기에 전달 릴리스의 이름으로 롤백됩니다.

  • 경운기의 이름에 따라 역사 자료를 찾아보십시오.

  • 경운기의 역사에서 릴리스를 가져옵니다.

  • 틸러는 릴리스 현재 릴리스를 교체 위는 Kubernetes로 전송.

표 처리 안내 의존

차트 처리 경작하고는 Kubernetes을 통과하면서 종속되던 하나에 직접 모든 차트 차트. 부팅 순서 사이의 종속성을 관리에 대한 책임을지지 않습니다 틸러 그래서. 응용 프로그램은 이러한 종속성 도표 처리 할 수 ​​있어야합니다.

설치 프로세스

1) 먼저 K8S 클러스터의 각 노드에 설치된 소프트웨어를 socat, 또는 다음과 같은 오류를보고합니다 :

E0522 22:22:15.492436   24409 portforward.go:331] an error occurred forwarding 38398 -> 44134: error forwarding port 44134 to pod dc6da4ab99ad9c497c0cef1776b9dd18e0a612d507e2746ed63d36ef40f30174, uid : unable to do port forwarding: socat not found.
Error: cannot connect to Tiller
# YUM 安装(每个节点都要安装)
yum install -y socat 

설치되어 socat를 확인하려면 명령 용기를 입력sockat

2) 조타 자료를 다운로드

각 버전 투구는 다양한 운영 체제의 바이너리 버전을 제공합니다. 수동으로 다운로드하고 이러한 버전을 설치할 수 있습니다.

다운로드 페이지 https://github.com/helm/helm/releases/

이 다운로드 시간을 참고하면 다운로드 할 수있는 옵션입니다 Installation and Upgrading다음 패키지를 내부가 아닌 다음과 같은 자산의 내용

위의 주소 GitHub의 다운로드 링크가 실제로 가리키는 참고 storage.googleapis.com현재 국내에 주소 여전히 액세스 할 수 있지만 좋은 시간과 나쁜, 실패 할 수 있습니다 많이 다운로드 wget을 통해, 그것은 다음 다운로드 성공하지 못한 경우, 창문에있는 링크를 클릭 다운로드하는 것이 좋습니다 여러 성공을 다운로드 할 수 있도록, 여러 번 시도 다시 시도 물론, 인터넷 소프트웨어는 더있다!

3) 추출 및 복사

tar -xzvf helm-v2.12.0-linux-amd64.tar.gz
cd linux-amd64 && mv helm /usr/bin/

압축이 개 실행 파일 투구, 경운기가 포함되어 있습니다. 경작 서버 인 것을 특징으로는 Kubernetes에 배포 용기가 고용 경우, 경운기는 단순히 투구는 / usr / bin 디렉토리를 복사 제어 할 수 없습니다.

4) 설치 서버 (경운기)

```bash는

서버를 작성합니다

투구 초기화 --service-계정 경운기 --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.13.1 --stable-REPO-URL은 https : //kubernetes.oss-cn-hangzhou.aliyuncs .COM / 차트

TLS 인증 서버를 생성, 참조 주소 : HTTPS : //github.com/gjmzj/kubeasz/blob/master/docs/guide/helm.md

투구 초기화 --service-계정 경운기 --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.13.1 --tiller-TLS-CERT /etc/kubernetes/ssl/tiller001.pem --tiller -tls 키 /etc/kubernetes/ssl/tiller001-key.pem --tls-CA-CERT /etc/kubernetes/ssl/ca.pem --tiller - 네임 스페이스 KUBE 시스템 --stable-REPO-URL은 https : //kubernetes.oss-cn-hangzhou.aliyuncs.com/charts


若遇到错误 failed to list: configmaps is forbidden: User “system:serviceaccount:kube-system:default” cannot list configmaps in the namespace “kube-system”

다음 명령을 실행

kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller

kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

이는 라이너 경운기 서버가 배포 서버에 장착 될 때 때문에 INIT INIT 인 경우, 상기 소스 이미지에서 지정되어야한다.

당신은 또한 다음과 같은 주요 설치 명령을 시도 할 수 있습니다

$ curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > get_helm.sh
$ chmod 700 get_helm.sh
$ ./get_helm.sh

에 다음 참조 참고 이 문서를 실제로 여기에. 잊어 버린 후 기본 사 새 버전이 생성 된 또는 내가 수동으로 생성하고 모르는 내 계정이 이미 정상하므로, 설치시 기록되지 않았다, 또한 게시, 초보자 친구는 디폴트가 생성 된 경우에도 두려워하지 않고, 다음 명령은 오류가 발생한 발생하지 않습니다 실행합니다.

경운기에 인증
경운기 투구 서버는 System 네임 스페이스에 Kube-? 배포에는 Kubernetes에 배치되어 있기 때문에, 그것은 응용 프로그램에서는 Kubernetes에서 연결 KUBE-API를 생성하고 제거로 이동합니다.

는 Kubernetes 버전 1.6의 시작 부분에서, API 서버는 RBAC 인증을 활성화. 기본값은 정의되어 있지 ServiceAccount 현재 경운기 액세스 API 서버를 거부 당할 수있는 배포를 승인했다. 그래서 우리는 명시 적으로 추가 경운기의 배포 권한을 부여해야합니다.

이 운영 권한이 필요하므로 투구 자체가 포드를 만들고 삭제할 수 있기 때문에, 사실은 이해할 수없는 여전히 혼란 친구 일 수도있다 위의 설명을 읽어보십시오.

  • 의는 Kubernetes 만들기? 서비스 계정 및 역할 바인딩
$ kubectl get deployment --all-namespaces
NAMESPACE     NAME                   DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
kube-system   tiller-deploy          1         1         1            1           1h
$ kubectl create serviceaccount --namespace kube-system tiller
$ kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
  • 계정 틸러을 설정하려면
使用 kubectl patch 更新 API 对象
$ kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
deployment.extensions "tiller-deploy" patched
  • 인증이 성공하면 확인하려면
$ kubectl get deploy --namespace kube-system   tiller-deploy  --output yaml|grep  serviceAccount
serviceAccount: tiller
serviceAccountName: tiller
  • 틸러는 설치가 성공했는지 여부를 확인
[centos@k8s-master ~]$ kubectl -n kube-system get pods|grep tiller
tiller-deploy-6df646875f-ttbn7         1/1     Running   5          15d
[centos@k8s-master ~]$ helm version
Client: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}

투구 클라이언트 버전 및 서버 작업에 일치해야합니다

스마트 조타 명령 완료

source <(helm completion bash)

zsh을 명령의 경우, 다음 명령을 사용하여

source <(helm completion zsh)

제거 투구

서울은 몇 가지 작은 문제가 될 것이지만, 지배 상상력의로 완벽하게 정상 작동하지 않습니다, 당신은 발견 할 것이다 사용, 당신은 제거하려면 다음 명령을 사용할 수 있습니다

helm reset

투구 버전 정보를 확인

[centos@k8s-master tekton]$ helm version
Client: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}

추천

출처www.cnblogs.com/tylerzhou/p/11130137.html