쿠버네티스란 무엇인가요? 이를 기반으로 MySQL 데이터베이스를 배포하는 방법

藏色散人
풀어 주다: 2021-11-03 16:30:55
앞으로
1937명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:juejin.im
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!