이 블로그는 여러 파트로 구성된 블로그 시리즈의 일부로, Kubernetes에서 애플리케이션을 실행하는 방법을 보여줍니다. 이 블로그는 카우치베이스오픈소스 NoSQL 분산 문서 데이터베이스인 Docker
컨테이너.
- 1부에서는 Vagrant를 사용하여 Kubernetes 클러스터를 시작하는 방법에 대해 설명했습니다. Vagrant의 Kubernetes
- 2부에서는 Amazon Web Services에 대해서도 동일한 작업을 수행했습니다. 아마존 웹 서비스의 Kubernetes
- 3부에서는 Google Cloud에 대해서도 동일한 작업을 수행했습니다. 구글 클라우드의 쿠버네티스
이 네 번째 파트에서 보여드릴 내용입니다:
- Azure에서 Kubernetes 클러스터를 설정하고 시작하는 방법
- 쿠버네티스 클러스터에서 도커 컨테이너 실행하기
- 쿠버네티스에서 파드를 서비스로 노출하기
- 클러스터 종료
많은 분들께 감사드립니다. 콜미킨스 이 레시피를 도와주셔서 감사합니다.
Azure CLI 설치 및 구성
Azure CLI 는 Azure 애플리케이션을 개발, 배포 및 관리하기 위한 명령줄 인터페이스입니다. Azure에 Kubernetes 클러스터를 설치하기 위해 필요합니다.
- 노드를 설치합니다:
123456789101112131415brew 설치 노드==> 다운로드 https://homebrew.bintray.com/bottles/node-6.2.0.yosemite.bottle.tar.gz######################################################################## 100.0%==> 붓기 노드-6.2.0.yosemite.bottle.tar.gz==> 주의 사항제발 참고 by 기본값 만 영어 로캘 지원 는 제공. 만약 당신 필요전체 로캘 지원 당신 should 중 하나 재구축 와 함께 전체 icu:`brew 재설치 노드 --와 함께-전체-icu`또는 추가 전체 icu 데이터 에서 런타임 다음:https://github.com/nodejs/node/wiki/Intl1TP5사용 및 커스터마이징-더-작은-icu-빌드Bash 완료 has been 설치된 에:/usr/local/등/bash_complete.d==> 요약? /usr/local/지하실/노드/6.2.0: 3,979 파일, 40.4M - Azure CLI를 설치합니다:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286npm 설치 -g azure-cli/usr/local/bin/azure -> /usr/local/lib/node_modules/azure-cli/bin/azure> 섬유@1.0.13 설치 /usr/local/lib/node_modules/azure-cli/node_modules/섬유> 노드 빌드.js || nodejs 빌드.js`darwin-x64-v8-5.0` 존재; 테스트이진 는 괜찮아요; 종료/usr/local/lib└─┬ azure-cli@0.10.0├─┬ adal-노드@0.1.17│ ├── 날짜-유틸리티@1.2.21│ ├─┬ jws@3.1.3│ │ ├─┬ base64url@1.0.6│ │ │ └─┬ 야옹@2.0.0│ │ │ ├─┬ 카멜케이스-키@1.0.0│ │ │ │ ├── 카멜케이스@1.2.1│ │ │ │ └── 지도-객체@1.0.1│ │ │ ├─┬ 들여쓰기-문자열@1.2.2│ │ │ │ ├── get-stdin@4.0.1│ │ │ │ └─┬ 반복@1.1.3│ │ │ │ └── 는-유한@1.0.1│ │ │ ├── 미니미스트@1.2.0│ │ │ └── 객체-할당@1.0.0│ │ └─┬ jwa@1.1.3│ │ ├── 버퍼-같음-상수-시간@1.0.1│ │ └─┬ ecdsa-sig-포맷터@1.0.5│ │ └── base64-URL@1.2.2│ ├── 노드-uuid@1.4.1│ ├── xmldom@0.1.22│ └── xpath.js@1.0.6├── 애플리케이션 인사이트@0.15.12├── 비동기@1.4.2├── azure-arm-권한 부여@2.0.0├── azure-arm-배치@0.1.0├── azure-arm-cdn@0.1.0-미리 보기├── azure-arm-커머스@0.1.1├── azure-arm-계산@0.18.0├── azure-arm-데이터 레이크-분석@0.3.2├── azure-arm-데이터 레이크-store@0.3.0├── azure-arm-dns@0.10.1├── azure-arm-hdinsight@0.2.0├── azure-arm-hdinsight-일자리@0.1.0├── azure-arm-인사이트@0.11.1├── azure-arm-네트워크@0.13.1├── azure-arm-재 캐시@0.2.1├── azure-arm-리소스@1.4.4-미리 보기├── azure-arm-스토리지@0.13.1-미리 보기├── azure-arm-트래픽 관리자@0.10.5├─┬ azure-arm-웹사이트@0.10.0│ ├─┬ azure-공통@0.9.12│ │ ├─┬ 요청@2.45.0│ │ │ ├── aws-sign2@0.5.0│ │ │ ├── bl@0.9.5│ │ │ ├── 케이스리스@0.6.0│ │ │ ├── 영원히-에이전트@0.5.2│ │ │ ├─┬ 양식-데이터@0.1.4│ │ │ │ ├── 비동기@0.9.2│ │ │ │ └─┬ 결합-스트림@0.0.7│ │ │ │ └── 지연-스트림@0.0.5│ │ │ ├─┬ 호크@1.1.1│ │ │ │ ├── 붐@0.4.2│ │ │ │ ├── 암호 화폐@0.2.2│ │ │ │ ├── hoek@0.9.1│ │ │ │ └── sntp@0.2.4│ │ │ ├─┬ http-서명@0.10.1│ │ │ │ ├── asn1@0.1.11│ │ │ │ └── assert-플러스@0.1.5│ │ │ ├── 마임-유형@1.0.2│ │ │ ├── 노드-uuid@1.4.7│ │ │ ├── oauth-sign@0.4.0│ │ │ └── qs@1.2.2│ │ └── xml2js@0.2.7│ └── 순간@2.6.0├── azure-asm-계산@0.15.0├── azure-asm-hdinsight@0.10.2├── azure-asm-mgmt@0.10.1├── azure-asm-네트워크@0.11.0├── azure-asm-sb@0.10.1├── azure-asm-sql@0.10.1├── azure-asm-스토리지@0.10.1├── azure-asm-구독@0.10.1├── azure-asm-트래픽 관리자@0.10.3├─┬ azure-asm-웹사이트@0.10.1│ └── 순간@2.6.0├── azure-배치@0.3.0├─┬ azure-공통@0.9.16│ ├── 날짜 형식@1.0.2-1.2.3│ ├── 듀플렉서@0.1.1│ ├── 환경설정@0.0.4│ ├─┬ 요청@2.45.0│ │ ├── aws-sign2@0.5.0│ │ ├── bl@0.9.5│ │ ├── 케이스리스@0.6.0│ │ ├── 영원히-에이전트@0.5.2│ │ ├─┬ 양식-데이터@0.1.4│ │ │ ├── 비동기@0.9.2│ │ │ ├─┬ 결합-스트림@0.0.7│ │ │ │ └── 지연-스트림@0.0.5│ │ │ └── 마임@1.2.11│ │ ├─┬ 호크@1.1.1│ │ │ ├── 붐@0.4.2│ │ │ ├── 암호 화폐@0.2.2│ │ │ ├── hoek@0.9.1│ │ │ └── sntp@0.2.4│ │ ├─┬ http-서명@0.10.1│ │ │ ├── asn1@0.1.11│ │ │ ├── assert-플러스@0.1.5│ │ │ └── ctype@0.5.3│ │ ├── 마임-유형@1.0.2│ │ ├── 노드-uuid@1.4.7│ │ ├── oauth-sign@0.4.0│ │ └── qs@1.2.2│ ├── 유효성 검사기@3.22.2│ └── xml2js@0.2.7├── azure-갤러리@2.0.0-pre.18├── azure-그래프@0.1.1├─┬ azure-키볼트@0.10.1│ └── 노드-uuid@1.4.7├─┬ azure-모니터링@0.10.2│ └── 순간@2.6.0├─┬ azure-스토리지@0.7.0│ ├── 브라우저-마임@1.2.9│ ├── 확장@1.2.1│ ├── 노드-uuid@1.4.7│ ├─┬ 읽기 가능-스트림@2.0.6│ │ ├── isarray@1.0.0│ │ ├── 프로세스-다음-args@1.0.7│ │ └── 활용-deprecate@1.0.2│ ├─┬ 요청@2.57.0│ │ ├── aws-sign2@0.5.0│ │ ├─┬ bl@0.9.5│ │ │ └─┬ 읽기 가능-스트림@1.0.34│ │ │ └── isarray@0.0.1│ │ ├── 케이스리스@0.10.0│ │ ├─┬ 양식-데이터@0.2.0│ │ │ ├── 비동기@0.9.2│ │ │ └─┬ 결합-스트림@0.0.7│ │ │ └── 지연-스트림@0.0.5│ │ ├─┬ har-유효성 검사기@1.8.0│ │ │ ├── 블루버드@2.10.2│ │ │ └── commander@2.9.0│ │ ├── 호크@2.3.1│ │ ├─┬ http-서명@0.11.0│ │ │ ├── asn1@0.1.11│ │ │ └── assert-플러스@0.1.5│ │ ├─┬ 마임-유형@2.0.14│ │ │ └── 마임-db@1.12.0│ │ └── qs@3.1.0│ ├── 유효성 검사기@3.22.2│ └── xml2js@0.2.7├─┬ 발신자-id@0.1.0│ └── 스택-추적@0.0.9├── 색상@0.6.2├─┬ commander@1.0.4│ └── 키 누르기@0.1.0├── 쉬운-테이블@0.0.1├─┬ 이벤트-스트림@3.1.5│ ├── 에서@0.1.3│ ├── 지도-스트림@0.1.0│ ├── 일시 중지-스트림@0.0.11│ ├── 분할@0.2.10│ └── 스트림-결합기@0.0.4├── 눈@0.1.8├── 빠른-json-패치@0.5.6├── github@0.1.6├── js2xmlparser@1.0.0├── jsrsasign@4.8.2├─┬ 쿠두스크립트@1.0.6│ ├── commander@1.1.1│ └── 간소화@0.4.11├── 순간@2.13.0├── ms-rest@1.14.2├─┬ ms-rest-azure@1.14.2│ ├── 비동기@0.2.7│ └── uuid@2.0.1├── 노드-포지@0.6.23├── 노드-uuid@1.2.0├── 숫자-는-nan@1.0.0├── 오믈렛@0.1.0├─┬ openssl-래퍼@0.2.1│ ├── debug@0.7.4│ └── q@0.9.7├─┬ 읽기@1.0.7│ └── 음소거-스트림@0.0.6├─┬ 읽기 가능-스트림@1.0.34│ ├── 핵심-활용-는@1.0.2│ ├── 상속@2.0.1│ ├── isarray@0.0.1│ └── 문자열_디코더@0.10.31├─┬ 요청@2.69.0│ ├── aws-sign2@0.6.0│ ├── aws4@1.4.1│ ├─┬ bl@1.0.3│ │ └─┬ 읽기 가능-스트림@2.0.6│ │ └── isarray@1.0.0│ ├── 케이스리스@0.11.0│ ├─┬ 결합-스트림@1.0.5│ │ └── 지연-스트림@1.0.0│ ├── 확장@3.0.0│ ├── 영원히-에이전트@0.6.1│ ├─┬ 양식-데이터@1.0.0-rc4│ │ └── 비동기@1.5.2│ ├─┬ har-유효성 검사기@2.0.6│ │ ├─┬ 초크@1.1.3│ │ │ ├── ansi-스타일@2.2.1│ │ │ ├── 탈출-문자열-regexp@1.0.5│ │ │ ├─┬ has-ansi@2.0.0│ │ │ │ └── ansi-정규식@2.0.0│ │ │ ├── strip-ansi@3.0.1│ │ │ └── 지원-색상@2.0.0│ │ ├─┬ commander@2.9.0│ │ │ └── 우아한-읽기 링크@1.0.1│ │ ├─┬ 는-my-json-유효@2.13.1│ │ │ ├── 생성-함수@2.0.0│ │ │ ├─┬ 생성-객체-속성@1.2.0│ │ │ │ └── 는-속성@1.0.2│ │ │ ├── 제이슨포인터@2.0.0│ │ │ └── xtend@4.0.1│ │ └─┬ pinkie-약속@2.0.1│ │ └── pinkie@2.0.4│ ├─┬ 호크@3.1.3│ │ ├── 붐@2.10.1│ │ ├── 암호 화폐@2.0.5│ │ ├── hoek@2.16.3│ │ └── sntp@1.0.9│ ├─┬ http-서명@1.1.1│ │ ├── assert-플러스@0.2.0│ │ ├─┬ jsprim@1.2.2│ │ │ ├── extsprintf@1.0.2│ │ │ ├── json-스키마@0.2.2│ │ │ └── verror@1.3.6│ │ └─┬ sshpk@1.8.3│ │ ├── asn1@0.2.3│ │ ├── assert-플러스@1.0.0│ │ ├─┬ 대시 대시@1.13.1│ │ │ └── assert-플러스@1.0.0│ │ ├── ecc-jsbn@0.1.1│ │ ├─┬ getpass@0.1.6│ │ │ └── assert-플러스@1.0.0│ │ ├── jodid25519@1.0.2│ │ ├── jsbn@0.1.0│ │ └── 트윗나클@0.13.3│ ├── 는-유형 배열@1.0.0│ ├── isstream@0.1.2│ ├── json-문자열화-안전@5.0.1│ ├─┬ 마임-유형@2.1.11│ │ └── 마임-db@1.23.0│ ├── 노드-uuid@1.4.7│ ├── oauth-sign@0.8.2│ ├── qs@6.0.2│ ├── 문자열 스트림@0.0.5│ ├── 힘든-쿠키@2.2.2│ └── 터널-에이전트@0.4.3├─┬ ssh-키-에-pem@0.11.0│ ├── asn1@0.1.11│ └── ctype@0.5.2├─┬ 간소화@0.10.17│ ├── 섬유@1.0.13│ ├── 은하@0.1.12│ └─┬ 출처-지도@0.1.43│ └── amdefine@1.0.0├── 간소화-스트림@0.1.5├─┬ 동기화-요청@3.0.0│ ├─┬ concat-스트림@1.4.10│ │ ├── 읽기 가능-스트림@1.1.14│ │ └── 유형 배열@0.0.6│ ├── http-응답-객체@1.1.0│ └─┬ 다음-요청@2.2.0│ ├── http-기본@2.5.1│ ├─┬ 약속@7.1.1│ │ └── 최대한 빨리@2.0.4│ └── qs@6.2.0├── 통해@2.3.4├── 터널@0.0.2├── 밑줄@1.4.4├── 유효성 검사기@3.1.0├─┬ winston@0.6.2│ ├── 비동기@0.1.22│ ├── 주기@1.0.3│ ├── pkginfo@0.2.3│ └── 요청@2.9.203├── 워드랩@0.0.2├─┬ xml2js@0.1.14│ └── sax@0.5.2└── XML빌더@0.4.3 - 다음에서 무료 평가판에 등록하세요. https://azure.microsoft.com/en-us/free/.
- 다음 명령을 사용하여 Azure에 로그인합니다.
Azure 로그인
:
1234567azure 로그인정보: 실행 중 명령 로그인정보: To sign in, 사용 a 웹 브라우저 에 열기 의 페이지 https://aka.ms/devicelogin. BS5P64ANU 코드를 입력하여 인증합니다.|정보: 추가됨 구독 무료 평가판정보: 설정 구독 "무료 평가판" as 기본값+정보: 로그인 명령 확인 - 다음을 사용하여 계정 정보를 가져옵니다.
Azure 계정 쇼
명령을 사용합니다:
12345678910111213azure 계정 show정보: 실행 중 명령 계정 show데이터: 이름 : 무료 평가판데이터: ID : XXX데이터: 상태 : 활성화됨데이터: 테넌트 ID : YYY데이터: Is 기본값 : true데이터: 환경 : AzureCloud데이터: Has 인증서 : 아니요데이터: Has 액세스 토큰 : 예데이터: 사용자 이름 : arun.gupta@gmail.com데이터:정보: 계정 show 명령 확인
XXX와 YYY 대신 표시된 값에 주목하세요. 이 값은 쿠버네티스 클러스터를 구성하는 데 사용됩니다.
쿠버네티스 클러스터 시작
- 다운로드 쿠버네티스 1.2.4 를 클릭하고 추출합니다.
- Azure의 Kubernetes 클러스터는 다음과 같이 시작할 수 있습니다:
1234내보내기 쿠버네티스_프로바이더=azure내보내기 azure_subscription_id=XXX내보내기 AZURE_TENANT_ID=YYY./클러스터/kube-up.sh
다음에 적절한 값을 지정해야 합니다.XXX
그리고YYY
를 이전 명령에서 변경합니다.azure_subscription_id
그리고AZURE_TENANT_ID
는 Azure에만 해당됩니다. 다음 값
에서도 편집할 수 있습니다.cluster/azure/config-default.sh
. - Kubernetes 클러스터를 시작합니다:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748./쿠버네티스/클러스터/kube-up.sh... 시작 클러스터 사용 공급자: azure... 호출 확인-전제 조건... 호출 kube-up++> AZURE KUBE-UP 시작: 화요일 5월 31 16:15:26 PDT 2016이 will be 대화형. (내보내기 azure_auth_method=클라이언트_비밀 에 피하다 의 프롬프트)하이퍼큐브-amd64:v1.2.4 는 발견 in 의 gcr.io/구글_컨테이너 저장소깃발 --테넌트-id has been 사용 중단, 테넌트-id 는 사용 중단. it 는 지금 결정됨 자동으로 에서 의 구독 id경고[0000] --리소스-그룹 는 unset. 파생 하나 에서 --배포-이름: "kube-20160531-161525"경고[0000] --마스터-fqdn 는 unset. 파생 하나 에서 입력: "kube-20160531-161525.westus.cloudapp.azure.com".To sign in, 사용 a 웹 브라우저 에 열기 의 페이지 https://aka.ms/devicelogin. 코드 BPRLH2ARJ를 입력하여 인증합니다.정보[0034] 시작 ARM 배포. 이 will take 일부 시간. 배포="kube-20160531-161525-1464736561"정보[0279] 완료 ARM 배포. 배포="kube-20160531-161525-1464736561"정보[0279] 유효성 검사 Kubernetes 클러스터.경고[0279] 실패 에 유효성 검사 구성 요소: Get https://kube-20160531-161525.westus.cloudapp.azure.com:6443/api/v1/componentstatuses: dial tcp 23.99.60.138:6443: getsockopt: 연결이 거부되었습니다.정보[0294] 유효성 검사 Kubernetes 클러스터.경고[0294] 실패 에 유효성 검사 구성 요소: Get https://kube-20160531-161525.westus.cloudapp.azure.com:6443/api/v1/componentstatuses: dial tcp 23.99.60.138:6443: getsockopt: 연결이 거부되었습니다.정보[0309] 유효성 검사 Kubernetes 클러스터.경고[0309] 실패 에 유효성 검사 구성 요소: Get https://kube-20160531-161525.westus.cloudapp.azure.com:6443/api/v1/componentstatuses: dial tcp 23.99.60.138:6443: getsockopt: 연결이 거부되었습니다.정보[0324] 유효성 검사 Kubernetes 클러스터.경고[0347] 유효성 검사: 잘못된 건강 카운트. 예상=3 실제=4정보[0347] 배포 완료!정보[0347] 마스터: "https://kube-20160531-161525.westus.cloudapp.azure.com:6443"정보[0347] 출력: "/opt/azkube/_deployments/kube-20160531-161525"클러스터 "kube-20160531-161525" set.사용자 "kube-20160531-161525_user" set.컨텍스트 "kube-20160531-161525" set.전환 에 컨텍스트 "kube-20160531-161525".++> AZURE KUBE-UP 완료: 화요일 5월 31 16:21:15 PDT 2016 (기간: -349 초)... 호출 유효성 검사-클러스터감지됨 4 준비 노드, 발견 4 노드 out 의 예상 3. 발견됨 더 보기 노드 보다 예상, 당신의 클러스터 may not 행동 올바르게.발견됨 4 노드(s).이름 상태 AGEkube-20160531-161525-vm-마스터 준비,스케줄링 비활성화 21skube-20160531-161525-vm-노드-0 준비 18skube-20160531-161525-vm-노드-1 준비 19skube-20160531-161525-vm-노드-2 준비 19s깃발 --api-버전 has been 사용 중단, 플래그 는 아니요 더 오래 존경받는 그리고 will be 삭제됨 in 의 다음 릴리스유효성 검사 출력:이름 상태 메시지 오류스케줄러 건강 확인컨트롤러-관리자 건강 확인etcd-1 건강 {"health": "true"}etcd-0 건강 {"health": "true"}클러스터 유효성 검사 성공완료, 목록 클러스터 서비스:Kubernetes 마스터 는 실행 중 에서 https://kube-20160531-161525.westus.cloudapp.azure.com:6443
네 개의 노드를 시작합니다.Standard_A1
크기. 각
노드는 코어 1개, 1.75GB RAM, 40GB HDD를 제공합니다.
Azure의 Kubernetes 클러스터에서 Docker 컨테이너 실행하기
이제 클러스터가 실행 중이므로 모든 노드 목록을 가져옵니다:
1 2 3 4 5 6 |
./쿠버네티스/클러스터/kubectl.sh get 아니요 이름 상태 AGE kube-20160531-161525-vm-마스터 준비,스케줄링 비활성화 3m kube-20160531-161525-vm-노드-0 준비 3m kube-20160531-161525-vm-노드-1 준비 3m kube-20160531-161525-vm-노드-2 준비 3m |
그림과 같이 마스터 노드용 인스턴스 1개와 워커 노드용 인스턴스 3개 등 4개의 인스턴스가 생성됩니다. Azure 포털 리소스 그룹에서 생성된 모든 아티팩트를 표시합니다:
생성된 노드에 대한 자세한 내용은 여기에서 확인할 수 있습니다:
카우치베이스 포드를 생성합니다:
1 2 |
./쿠버네티스/클러스터/kubectl.sh 실행 카우치베이스 --이미지=arungupta/카우치베이스 배포 "couchbase" 생성 |
CLI에서 이미지 이름을 지정하는 방법에 주목하세요. 1.2 이전 버전의 쿠버네티스에서는 이 명령어로 복제 컨트롤러를 생성했습니다. 이에 대한 설명은 아마존 웹 서비스의 Kubernetes 또는 구글 클라우드의 쿠버네티스. 쿠버네티스 1.2 도입된 디플로이먼트 그리고
대신 배포를 생성합니다. 이를 통해 버전 관리, 여러 개의 동시 롤아웃, 모든 포드에 걸친 상태 집계, 애플리케이션 가용성 유지 및 롤백 등 애플리케이션 배포 및 관리를 간소화할 수 있습니다.
이 포드는 다음을 사용합니다. 아룽업타/카우치베이스 사전 구성된 Couchbase 서버를 제공하는 Docker 이미지입니다. 모든 Docker 이미지를 여기에서 지정할 수 있습니다. 파드의 상태를 볼 수 있습니다:
1 2 3 4 5 |
./쿠버네티스/클러스터/kubectl.sh get -w po 이름 READY 상태 다시 시작 AGE 카우치베이스-2830197765-f0s9c 0/1 컨테이너 생성 0 5s 이름 READY 상태 다시 시작 AGE 카우치베이스-2830197765-f0s9c 1/1 실행 중 0 1m |
포드에 대한 자세한 내용을 알아보세요:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
./쿠버네티스/클러스터/kubectl.sh 설명 po 카우치베이스-2830197765-f0s9c 이름: 카우치베이스-2830197765-f0s9c 네임스페이스: 기본값 노드: kube-20160531-161525-vm-노드-2/10.0.0.6 시작 시간: 화요일, 31 5월 2016 16:28:02 -0700 레이블: pod-템플릿-해시=2830197765,실행=카우치베이스 상태: 실행 중 IP: 10.2.74.2 컨트롤러: 복제 세트/카우치베이스-2830197765 컨테이너: 카우치베이스: 컨테이너 ID: 도커://eba043085c95645cf650206469be5c7e2d6c7395883a053d197446a14e757440 이미지: arungupta/카우치베이스 이미지 ID: 도커://sha256:f6b013d9694354148ace6804127dadee01c733151b5ff5e169f7c3b0e4faf321 포트: QoS 계층: cpu: 최고의 노력 메모리: 최고의 노력 상태: 실행 중 시작됨: 화요일, 31 5월 2016 16:29:04 -0700 준비: True 다시 시작 Count: 0 환경 변수: 조건: 유형 상태 준비 True 볼륨: 기본값-토큰-ylszs: 유형: 비밀 (a 볼륨 채워진 by a 비밀) 비밀 이름: 기본값-토큰-ylszs 이벤트: FirstSeen LastSeen Count 에서 서브객체 경로 유형 이유 메시지 --------- -------- ----- ---- ------------- -------- ------ ------- 7m 7m 1 {기본값-스케줄러 } 보통 예약됨 성공적 할당 카우치베이스-2830197765-f0s9c 에 kube-20160531-161525-vm-노드-2 7m 7m 1 {kubelet kube-20160531-161525-vm-노드-2} 사양.컨테이너{카우치베이스} 보통 당기기 당기기 이미지 "arungupta/couchbase" 6m 6m 1 {kubelet kube-20160531-161525-vm-노드-2} 사양.컨테이너{카우치베이스} 보통 당겨짐 성공적 당겨짐 이미지 "arungupta/couchbase" 6m 6m 1 {kubelet kube-20160531-161525-vm-노드-2} 사양.컨테이너{카우치베이스} 보통 생성됨 생성됨 컨테이너 와 함께 도커 id eba043085c95 6m 6m 1 {kubelet kube-20160531-161525-vm-노드-2} 사양.컨테이너{카우치베이스} 보통 시작됨 시작됨 컨테이너 와 함께 도커 id eba043085c95 |
쿠버네티스에서 파드를 서비스로 노출하기
이제 파드가 실행 중인데, Couchbase 서버에 어떻게 액세스하나요? Kubernetes 클러스터 외부에 서비스형 배포를 노출해야 합니다. 일반적으로, 이것은 명령을 사용하여 노출됩니다:
1 |
./쿠버네티스/클러스터/kubectl.sh 노출 배포 카우치베이스 --대상-포트=8091 --포트=8091 --유형=로드밸런서 |
하지만 Azure는 다음을 지원하지 않습니다. --유형=로드밸런서
를 사용할 수 없습니다. 이 기능은 현재 개발 중이며 가까운 시일 내에 제공될 예정입니다. 그 동안에는 서비스를 다음과 같이 노출할 예정입니다:
1 2 |
./쿠버네티스/클러스터/kubectl.sh 노출 배포 카우치베이스 --대상-포트=8091 --포트=8091 서비스 "couchbase" 노출 |
이제 다음을 사용하여 이 서비스를 프록시합니다. kubectl 프록시
명령을 사용합니다:
1 2 |
./쿠버네티스/클러스터/kubectl.sh 프록시 --주소='0.0.0.0' --포트=9999 --수락-호스트='.*' 시작 에 serve on [::]:9999 |
이제 이 노출된 서비스는 http://127.0.0.1:9999/api/v1/proxy/namespaces/default/services/couchbase/index.html 에서 액세스할 수 있습니다. 로그인 화면이 표시됩니다.
화면의 카우치베이스 웹 콘솔:
쿠버네티스 클러스터 종료
마지막으로 다음을 사용하여 클러스터를 종료합니다. cluster/kube-down.sh
스크립트.
1 2 3 4 5 6 7 |
./쿠버네티스/클러스터/kube-down.sh 가져오기 down 클러스터 사용 공급자: azure 가져오기 down 클러스터 당신 필수 do 이 수동으로 (에 대한 지금)! 이 can be 완료 와 함께: ./쿠버네티스/클러스터/../클러스터/../클러스터/azure/활용.sh: 라인 246: az_resource_group: 언바운드 변수 |
이 스크립트는 클러스터를 종료하지만 Azure 리소스 그룹은 명시적으로 제거해야 합니다. 이 작업은 다음에서 리소스 그룹을 선택하여 수행할 수 있습니다. portal.azure.com:
이것은 다음과 같이 제출됩니다. #26601.
추가 참고 자료 ...
- 카우치베이스 서버 개발자 포털
- 컨테이너의 카우치베이스
- 다음에 대한 질문 스택오버플로, 포럼 또는 슬랙 채널
- 팔로우하기 @couchbasedev
- Couchbase 4.5
즐기세요!
이 방법을 시도하는 과정에서 좋은 진전을 이루었지만 마지막에 문제가 발생했습니다. 프록시 연결에서 풀 엔드포인트에 수동으로 접속하여 인증할 수 있지만 웹 UI가 프록시된 URL을 사용하지 않고 전체 프록시된 URL 대신 127.0.0.1:9999/pools만 시도하고 있습니다. 제가 단계를 놓쳤나요? 여담이지만, 이제 분명히 사용할 수 있는 -type=LoadBalancer를 사용할 수 있었습니다.