Kubernetes 서비스 - 단일 인스턴스 상태 저장 서비스를 실행하는 간단한 예
Goal
Create a PV
Create a MySQlDeployment
DNS 이름을 사용하여 클러스터의 다른 포드에 MySQL 노출
시작하기 전에
Kubernetes 클러스터와 클러스터에 연결할 수 있는 kubectl 명령줄 도구가 필요합니다. 클러스터가 없으면 Minikube를 사용하여 클러스터를 만들 수 있습니다.
데이터 저장용 PV(PertantVolume)를 생성하겠습니다. 지원되는 PV 유형을 보려면 여기를 클릭하세요. 이 가이드에서는 GCEPerciousDisk를 사용하여 설명하지만 모든 PV 유형이 정상적으로 작동합니다. GCEPertantDisk는 Google Compute Engine(GCE)에서만 작동합니다.
사용자 환경에서 디스크 만들기
Google Compute Engine에서 다음을 실행합니다.
gcloud compute disks create --size=20GB mysql-disk
그런 다음 방금 만든 mysql 디스크를 가리키는 PV를 만듭니다. 다음은 위에서 언급한 GCE 디스크를 가리키는 PV 생성을 위한 구성 파일입니다.
apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv spec: capacity: storage: 20Gi accessModes:- ReadWriteOnce gcePersistentDisk: pdName: mysql-disk fsType: ext4
pdName: mysql-disk 줄은 위의 GCE 환경에서 생성된 디스크 이름과 일치합니다. 다른 환경에서 PV를 생성하려는 경우 영구 볼륨에서 자세한 내용을 확인할 수 있습니다.
PV 생성:
kubectl create -f https://k8s.io/docs/tasks/run-application/gce-volume.yaml
Deploy MySQL
Kubernetes 배포를 통해 상태 저장 서비스를 생성한 후 PVC(PertantVolumeClaim)를 사용하여 기존 서비스 PV에 연결할 수 있습니다. 예를 들어 다음 YAML 파일은 MySQL을 실행하고 PVC를 사용하는 배포를 설명합니다. 이 파일은 /var/lib/mysql에 마운트된 볼륨을 정의하고 20G 볼륨 크기가 필요한 PVC를 생성합니다.
참고: 비밀번호는 YAML 구성 파일에 정의되어 있으므로 안전하지 않습니다. 보다 안전한 솔루션은 Kubernetes Secrets를 확인하세요.
apiVersion: v1 kind: Service metadata: name: mysql spec: ports:- port: 3306 selector: app: mysql clusterIP: None---apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pv-claim spec: accessModes:- ReadWriteOnce resources: requests: storage: 20Gi---apiVersion: apps/v1beta1 kind: Deployment metadata: name: mysql spec: strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql:5.6name: mysql env: # Use secret in real usage- name: MYSQL_ROOT_PASSWORD value: password ports:- containerPort: 3306 name: mysql volumeMounts:- name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim
1. YAML 파일에 콘텐츠를 배포합니다.
kubectl create -f https://k8s.io/docs/tasks/run-application/mysql-deployment.yaml
2. 배포 정보를 표시합니다.
kubectl describe deployment mysql Name: mysql Namespace: default CreationTimestamp: Tue, 01 Nov 2016 11:18:45 -0700 Labels: app=mysql Selector: app=mysql Replicas: 1 updated | 1 total | 0 available | 1 unavailable StrategyType: Recreate MinReadySeconds: 0 OldReplicaSets: <none> NewReplicaSet: mysql-63082529 (1/1 replicas created) Events: FirstSeen LastSeen Count From SubobjectPath Type Reason Message --------- -------- ----- ---- ------------- -------- ------ ------- 33s 33s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set mysql-63082529 to 1
3. 배포로 생성된 포드를 표시합니다.
kubectl get pods -l app=mysql NAME READY STATUS RESTARTS AGE mysql-63082529-2z3ki 1/1 Running 0 3m
4. PV를 확인하세요.
kubectl describe pv mysql-pv Name: mysql-pv Labels: <none> Status: Bound Claim: default/mysql-pv-claim Reclaim Policy: Retain Access Modes: RWO Capacity: 20Gi Message: Source: Type: GCEPersistentDisk (a Persistent Disk resource in Google Compute Engine) PDName: mysql-disk FSType: ext4 Partition: 0 ReadOnly: false No events.
5. PVC를 확인하세요.
kubectl describe pvc mysql-pv-claim Name: mysql-pv-claim Namespace: default Status: Bound Volume: mysql-pv Labels: <none> Capacity: 20Gi Access Modes: RWO No events.
MySQL 인스턴스 액세스
이전 YAML 파일은 클러스터의 다른 Pod가 데이터베이스에 액세스할 수 있도록 허용하는 서비스를 생성합니다. 서비스 옵션 ClusterIP:None을 사용하면 서비스의 DNS 이름이 포드의 IP 주소로 직접 확인됩니다. 이는 서비스에 Pod가 하나만 있고 Pod 수를 늘릴 계획이 없는 경우 이를 사용하는 가장 좋은 방법입니다.
Mysql 클라이언트를 실행하여 Mysql 서비스에 연결합니다.
kubectl run -it --rm --image=mysql:5.6 mysql-client -- mysql -h <pod-ip> -ppassword
위 명령은 클러스터에 새 Pod를 생성합니다. 이 포드는 Mysql 클라이언트를 실행하고 위 서비스의 Mysql 서버에 연결됩니다. 성공적으로 연결되면 상태 저장 MySQL 데이터베이스가 성공적으로 실행되고 있음을 의미합니다.
Waiting for pod default/mysql-client-274442439-zyp6i to be running, status is Pending, pod ready: falseIf you don't see a command prompt, try pressing enter.mysql>
Update
이미지 또는 배포의 다른 부분을 업데이트하는 작업은 평소처럼 kubectl apply 명령을 사용하여 수행할 수도 있습니다. 상태 저장 애플리케이션을 사용할 때 주의해야 할 사항은 다음과 같습니다.
애플리케이션을 확장하지 마세요. 이 애플리케이션은 싱글톤 애플리케이션 전용입니다. 다음 PV는 하나의 포드에만 매핑될 수 있습니다. 클러스터링된 상태 저장 애플리케이션의 경우 StatefulSet 설명서를 확인하세요.
사용 전략: 배포의 YAML 구성 문서에서 다시 만들기를 입력하세요. Kubernetes에게 롤링 업데이트를 사용하지 말라고 지시합니다. 롤링 업데이트가 작동하지 않으므로 동시에 여러 포드가 실행되지 않습니다. Recreate 정책은 업데이트된 구성으로 새 포드를 생성할 때 이전 포드를 삭제합니다.
배포 삭제
이름별 배포 객체 삭제:
kubectl delete deployment,svc mysql kubectl delete pvc mysql-pv-claim kubectl delete pv mysql-pv
另外,如果你使用的是GCE disk,还需要删除对应的disk:
gcloud compute disks delete mysql-disk
文章转自:
위 내용은 Kubernetes 서비스 - 단일 인스턴스 상태 저장 서비스를 실행하는 간단한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











"이벤트 로그 메시지의 연결 상태에는 대기: NIC 준수로 인해 연결이 끊어졌습니다. 이는 시스템이 대기 모드에 있고 네트워크 인터페이스 카드(NIC)의 연결이 끊어졌음을 의미합니다. 이는 일반적으로 네트워크 문제이지만 발생할 수 있습니다. 다음에서는 "대기 연결 끊김의 원인은 무엇입니까?"에 대해 알아보겠습니다. NIC 준수? Windows 이벤트 뷰어에 "ConnectivityStatusinStandby:DisConnected,Reason:NICCompliance" 메시지가 표시되는 경우 이는 NIC 또는 네트워크 인터페이스 컨트롤러에 문제가 있을 수 있음을 나타냅니다. 이런 상황은 대개

Python의 SVM(Support Vector Machine)은 분류 및 회귀 문제를 해결하는 데 사용할 수 있는 강력한 지도 학습 알고리즘입니다. SVM은 고차원 데이터와 비선형 문제를 처리할 때 탁월한 성능을 발휘하며 데이터 마이닝, 이미지 분류, 텍스트 분류, 생물정보학 및 기타 분야에서 널리 사용됩니다. 이번 글에서는 Python에서 분류를 위해 SVM을 사용하는 예를 소개하겠습니다. scikit-learn 라이브러리의 SVM 모델을 사용하겠습니다.

잘 알려진 소셜 플랫폼인 Momo는 사용자에게 일상적인 소셜 상호 작용을 위한 풍부한 기능적 서비스를 제공합니다. Momo에서는 사용자가 쉽게 자신의 생활 상태를 공유하고, 친구를 사귀고, 채팅 등을 할 수 있습니다. 그 중 상태 설정 기능을 통해 사용자는 자신의 현재 기분과 상태를 다른 사람에게 보여줄 수 있어 더 많은 사람들의 관심과 소통을 유도할 수 있다. 그렇다면 자신만의 모모 상태를 설정하는 방법에 대해 자세히 소개해드리겠습니다! Momo에서 상태를 설정하는 방법은 무엇입니까? 1. 모모를 열고 오른쪽 하단의 더보기를 클릭한 후 일일현황을 찾아 클릭하세요. 2. 상태를 선택하세요. 3. 설정 상태가 표시됩니다.

"오프라인"으로 표시하고 싶거나 WhatsApp에서 친구들과 현재 상태를 공유하고 싶지 않으신가요? 이를 수행하는 간단하면서도 영리한 트릭이 있습니다. 현재 상태(오프라인 또는 마지막 사용)가 친구나 다른 사람에게 표시되지 않도록 WhatsApp 설정을 조정할 수 있습니다. WhatsApp 상태 표시줄에 오프라인 상태를 표시하는 방법은 무엇입니까? 이는 매우 간단하고 효율적인 프로세스입니다. 이제 아래 단계를 따르십시오. 1단계 – 휴대폰에서 WhatsApp을 엽니다. 2단계 – ⋮를 누르고 설정 열기를 선택합니다. 3단계 – 개인 정보 보호 설정을 열어서 액세스하세요. 4단계 – 해당 개인정보 보호 페이지에서 “마지막으로 본 페이지 및 온라인” 설정을 열어서 액세스하세요. 5단계 - '누가 할 수 있는지' 변경

서버 상태를 보는 방법에는 명령줄 도구, 그래픽 인터페이스 도구, 모니터링 도구, 로그 파일 및 원격 관리 도구가 포함됩니다. 자세한 소개: 1. 명령줄 도구를 사용합니다. Linux 또는 Unix 서버에서는 명령줄 도구를 사용하여 서버 상태를 볼 수 있습니다. 2. 그래픽 인터페이스가 있는 서버 운영 체제의 경우 그래픽을 사용할 수 있습니다. 시스템에서 제공하는 인터페이스 도구를 사용하여 서버 상태를 확인합니다. 3. 모니터링 도구를 사용하여 실시간으로 서버 상태를 모니터링할 수 있습니다.

인터넷 규모가 지속적으로 확장되고 사용자 요구가 계속 증가함에 따라 마이크로서비스 아키텍처의 장점이 점점 더 주목받고 있습니다. 결과적으로, 고가용성, 고성능, 고확장성 및 기타 측면의 요구 사항을 더 잘 충족할 수 있는 컨테이너화된 마이크로서비스 아키텍처가 특히 중요해졌습니다. 이러한 추세에 따라 Go-Zero와 Kubernetes는 가장 인기 있는 컨테이너형 마이크로서비스 프레임워크가 되었습니다. 이 기사에서는 Go-Zero 프레임워크와 Kubernetes 컨테이너 오케스트레이션 도구를 사용하여 고가용성, 고성능을 구축하는 방법을 소개합니다.

Java 스레드의 5가지 상태 및 변환 규칙에 대한 심층적인 이해 1. 스레드의 5가지 상태 소개 Java에서 스레드의 수명 주기는 새 상태(NEW), 준비 상태 등 5가지 상태로 나눌 수 있습니다. (RUNNABLE), 실행 상태(RUNNING), 차단 상태(BLOCKED), 종료 상태(TERMINATED). 새로운 상태(NEW): 스레드 객체가 생성되면 새로운 상태가 됩니다. 이 시점에서 스레드 개체는 작업을 수행하기에 충분한 리소스를 할당했습니다.

인터넷의 급속한 발전으로 인해 점점 더 많은 기업이 애플리케이션을 클라우드 플랫폼으로 마이그레이션하기 시작했습니다. Docker와 Kubernetes는 클라우드 플랫폼에서 애플리케이션 배포 및 관리를 위한 매우 인기 있고 강력한 두 가지 도구가 되었습니다. Beego는 Golang을 사용하여 개발된 웹 프레임워크로 HTTP 라우팅, MVC 계층화, 로깅, 구성 관리, 세션 관리 등 다양한 기능을 제공합니다. 이 기사에서는 Docker와 Kub를 사용하는 방법을 다룹니다.
