찾다

 >  Q&A  >  본문

Kubernetes를 사용하여 MySQL에서 실행되도록 컨테이너 초기화

쿠버네티스 배포의 초기화 컨테이너로 mysql을 실행하고 있습니다.

여러 가지 이유로 mysql을 시작하고 init 컨테이너에서 mysql 백업을 복원해야 합니다. -> 이를 PVC에 저장하면 메인 포드는 데이터가 연결된 mysql 포드가 됩니다.

디스크의 스냅샷을 찍어야 하고 포드가 준비/실행될 때까지 CI가 스냅샷을 모니터링하도록 하기 때문입니다.

그래서 dump.sql을 docker-entrypoint-initdb.d에 덤프하고 끝낼 수는 없습니다.

이는 데이터 복구/준비 전에 볼륨 스냅샷 kubernetes 리소스가 점유되기 때문입니다. 그렇기 때문에 init 컨테이너에 데이터를 준비해야 합니다.

내가 겪고 있는 문제는 init 컨테이너에 (실제로 mysql 등을 시작하기 위해) Entrypoint.sh를 재정의하는 명령이 필요하다는 것입니다.

지금까지 컨테이너가 시작될 때 실행되는 bash 스크립트가 있습니다.

으아악

문제는 진입점이 실행되었으나 중단된다는 것입니다

으아악

bash 스크립트의 다음 단계로 진행되지 않습니다. 백그라운드에서 실행하기 위해 끝에 &를 추가하려고 시도했지만 문제가 해결되지 않았습니다.

이 문제를 겪은 사람이 있나요? 진입점을 수동으로 실행한 다음 일부 명령을 실행하려면 어떻게 해야 합니까?

이것도 시도해봤는데, 백그라운드에서 실행되었다가 종료되어야 하는데 여전히 그렇지 않습니다.

./entrypoint.sh --ignore-db-dir=lost+found 
echo "done"(这只是为了测试目的,看看它是否被处理,但实际上没有)
mysql -u root -ppassword < /data/backups/backup.sql
mysql -u root -ppassword < /sql-files/sql-files.sql

P粉315680565P粉315680565241일 전393

모든 응답(1)나는 대답할 것이다

  • P粉683665106

    P粉6836651062024-03-27 11:39:41

    mysqld 전에 백그라운드에서 mysql Sleeping을 시작할 수 있습니다. 이것이 당신에게 효과가 있습니까?

    으아아아

    회신하다
    0
  • 취소회신하다