Kubernetes는 Google에서 오픈소스로 제공하는 컨테이너 조정 엔진으로, 자동화된 배포, 대규모 확장성 및 애플리케이션 컨테이너 관리를 지원합니다. 프로덕션 환경에 애플리케이션을 배포할 때 일반적으로 애플리케이션 요청의 부하를 분산하기 위해 애플리케이션의 여러 인스턴스를 배포합니다.
Kubernetes에서는 여러 개의 컨테이너를 생성하고 각 컨테이너는 애플리케이션 인스턴스를 실행한 다음 내장된 로드 밸런싱 전략을 사용하여 이 애플리케이션 인스턴스 그룹을 관리, 검색 및 액세스할 수 있으며 이러한 세부 정보는 필요하지 않습니다. 운영 및 유지 관리 직원은 복잡한 수동 구성 및 처리를 수행해야 합니다.
이 글에서는 Kubernetes를 기반으로 MySQL 데이터베이스를 배포하는 방법을 소개합니다.
서비스 생성
배포할 MySQL 데이터베이스에 대한 연결 IP를 수정하고 로드 밸런싱을 제공하는 서비스를 생성합니다. 다음은 mysql-service.yaml 파일의 내용입니다.
apiVersion: v1 kind: Service metadata: name: mysql spec: selector: app: mysql ports: - port: 3306
위 내용은 다음과 같습니다. 구성은 TCP 포트 3306을 사용하고 app=mysql 라벨이 있는 포드에 대한 요청을 프록시하는 mysql이라는 서비스 객체를 생성합니다.
리소스 생성:
kubectl create -f mysql-service.yaml
영구 볼륨 PV 생성
MySQL 영구 볼륨 mysql-pv.yaml 생성(Kubernetes는 Pod가 더 이상 존재하지 않을 때 임시 볼륨도 삭제하지만 Kubernetes는 영구 볼륨을 삭제하지 않습니다.) ):
apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv labels: type: local spec: storageClassName: manual capacity: storage: 20Gi accessModes: - ReadWriteOnce # 卷可以被一个节点以读写方式挂载 hostPath: path: "/mnt/data"
리소스 생성:
kubectl create -f mysql-pv.yaml
영구 볼륨 클레임 생성 PVC
영구 볼륨은 클러스터의 리소스이며, 영구 볼륨 클레임은 이러한 리소스에 대한 요청이며 리소스에 대한 클레임 확인을 수행하는 데에도 사용됩니다. 아래에서는 mysql-pvc라는 영구 볼륨 선언 mysql-pvc.yaml을 생성합니다.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pvc spec: storageClassName: manual accessModes: - ReadWriteOnce resources: requests: storage: 20Gi
리소스 생성:
kubectl create -f mysql-pvc.yaml
MySQL 배포
포트 3306, mysql-deployment에서 MySQL 5.7 이미지를 사용하여 포드를 생성합니다. :
apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql:5.7 name: mysql env: - name: MYSQL_ROOT_PASSWORD # 生产环境中请使用 secret value: password ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-data mountPath: /var/lib/mysql volumes: - name: mysql-data persistentVolumeClaim: claimName: mysql-pvc
리소스 생성:
kubectl create -f mysql-deployment.yaml
MySQL에 연결
kubectl run -it --rm --image=mysql:5.6 --restart=Never mysql-client -- mysql -hmysql -ppassword
권장 학습: "mysql 비디오 튜토리얼"
위 내용은 쿠버네티스란 무엇인가요? 이를 기반으로 MySQL 데이터베이스를 배포하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!