2.3. system-database 시크릿 필드 업그레이드


3scale 2.5 변경의 일부로 system-mysql DeploymentConfig의 일부 데이터베이스 환경 변수는 값을 직접 설정하는 대신 시크릿에서 할당됩니다. 여기에는 다음이 포함됩니다.

  • ECDHE_USER 환경 변수는 system-database secret 필드 DB_USER에서 값을 가져옵니다.
  • ECDHE_PASSWORD 환경 변수는 system-database secret 필드 DB_PASSWORD에서 값을 가져옵니다.

기존 3scale 2.4 설치를 2.5로 업그레이드하려면 다음 절차를 따르십시오.

  1. 다음 명령에서 기존 Pod 및 DeploymentConfig를 반환하는 것과 해당 명령이 둘 다 비어 있지 않은지 확인합니다.

    $ oc get pod | grep -i system-mysql | awk '{print $1}'
    $ oc get dc system-mysql
    Copy to Clipboard Toggle word wrap
  2. DeploymentConfig의 현재 DeploymentConfig 이름과 MySQL 환경 변수를 MySQL 사용자 및 MySQL 환경 변수를 저장합니다.

    MYSQL_DC="system-mysql"
    RESULT_MYSQL_USER=$(oc get dc ${MYSQL_DC} -o json | jq -r '.spec.template.spec.containers[0].env[] | select(.name == "MYSQL_USER").value')
    RESULT_MYSQL_PASSWORD=$(oc get dc ${MYSQL_DC} -o json | jq -r '.spec.template.spec.containers[0].env[] | select(.name == "MYSQL_PASSWORD").value')
    Copy to Clipboard Toggle word wrap
  3. RESULT_MYSQL_USER 및 RESULT_MYSQL_PASSWORD에 기존 값이 있고 비어 있지 않은지 확인합니다.

    $ echo $RESULT_MYSQL_USER
    $ echo $RESULT_MYSQL_PASSWORD
    Copy to Clipboard Toggle word wrap
  4. 나중에 참조할 수 있도록 이러한 값을 저장합니다.
  5. 다음 명령의 출력을 저장하여 전체 system-mysql 환경의 백업을 생성합니다.

    $ oc set env "dc/${MYSQL_DC}" --list
    Copy to Clipboard Toggle word wrap
  6. 또한 다음 명령의 출력을 저장하여 system-database 시크릿 및 system-database DeploymentConfig의 현재 값을 백업을 생성합니다.

    $ oc get secret system-database -o yaml
    $ oc get dc system-mysql -o yaml
    Copy to Clipboard Toggle word wrap
  7. MySQL 사용자 및 암호의 현재 값을 system-database 시크릿에 추가합니다.

    $ oc patch secret/system-database -p "{\"stringData\": {\"DB_USER\": \"${RESULT_MYSQL_USER}\"}}"
    $ oc patch secret/system-database -p "{\"stringData\": {\"DB_PASSWORD\": \"${RESULT_MYSQL_PASSWORD}\"}}"
    Copy to Clipboard Toggle word wrap
  8. 시크릿이 성공적으로 편집되었는지 확인합니다. 다음 명령은 각각 RESULT_MYSQL_USER 및 RESULT_MYSQL_PASSWORD의 동일한 콘텐츠를 반환해야 합니다.

    $ oc get secret system-database -o json | jq -r '.data["DB_USER"]' | base64 -d
    $ oc get secret system-database -o json | jq -r '.data["DB_PASSWORD"]' | base64 -d
    Copy to Clipboard Toggle word wrap
  9. system-mysql DeploymentConfig를 수동으로 편집하여 새로 추가된 필드에서 system-database 시크릿으로ECDHE_USER 및ECDHE_PASSWORD 값을 설정합니다.

    주의

    이 단계를 수행하면 system-mysql DeploymentConfig의 재배포가 트리거되므로 Pod가 다시 생성되는 동안 일시적으로 서비스 손실이 발생합니다.

    $ oc edit dc $MYSQL_DC
    Copy to Clipboard Toggle word wrap
  10. 편집하는 동안 env 섹션을 찾습니다. 다음을 찾아야 합니다.

    - name: MYSQL_USER
      value: <current_mysql_user_value>
    - name: MYSQL_PASSWORD
      value: <current_mysql_password_value>
    Copy to Clipboard Toggle word wrap
  11. 해당 콘텐츠를 다음으로 변경합니다.

    - name: MYSQL_USER
      valueFrom:
        secretKeyRef:
          key: DB_USER
          name: system-database
    - name: MYSQL_PASSWORD
      valueFrom:
        secretKeyRef:
          key: DB_PASSWORD
          name: system-database
    Copy to Clipboard Toggle word wrap
  12. 변경 사항을 저장하고 종료합니다.
  13. 이 후 DeploymentConfig는 Pod를 재배포합니다. system-mysql 포드가 다시 실행되고 올바른 상태로 실행되고 있으며 플랫폼이 다시 작동하는지 확인합니다. 예를 들어 DeploymentConfig가 1로 설정되어 있는지 확인할 수 있습니다.

    $ oc get dc ${MYSQL_DC}
    Copy to Clipboard Toggle word wrap

    또한 Pod가 최근에 실행 중이어야 합니다.

    $ oc get pods | grep -i system-mysql
    Copy to Clipboard Toggle word wrap

    또한 system-mysql DeploymentConfig의 환경 변수가 이제 시크릿에서 수집되는지 확인할 수 있습니다.

    $ oc set env "dc/${MYSQL_DC}" --list
    Copy to Clipboard Toggle word wrap

    다음 출력의 일부로 결과가 표시되어야 합니다.

    # MYSQL_USER from secret system-database, key DB_USER
    # MYSQL_PASSWORD from secret system-database, key DB_PASSWORD
    Copy to Clipboard Toggle word wrap

    ECDHE_USER 및ECDHE_PASSWORD에는 특정 값이 포함되어 있지 않습니다.

추가 정보:

  • system-mysql 을 다시 시작하는 동안 system-app,system-sidekiqsystem-sphinx Pod의 장애 조치가 예상될 수 있지만 재배포할 필요가 없습니다.
  • Pod를 복구하지 못한 경우 해당 DeploymentConfig를 수동으로 재배포합니다.
  • 장애 조치를 방지하기 위해 마이그레이션 절차에 유지 관리 기간을 추가하여 시스템-mysql 이 다시 재부팅되기 전에 해당 DeploymentConfigs를 0으로 축소하여 준비 상태 프로브를 전달합니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat