Cloud Composter에서 MySQL을 관리하는 프로세스에 연결할 수 없습니다.
2476 단어 GCPGKEAirflowCloud Composertech
이벤트
Can't connect to MySQL server on 'airflow-sqlproxy-service.default.svc.cluster.local'
.주의
여러 Cloud Composier 환경이 시작된 경우 다음 명령을 그대로 두면 이동이 불가능할 수 있으므로 각각의 환경에 따라 해당 cluster,namespace,pod 등을 확보해야 한다.
상황 확인
# clusterの名前と場所を取得
$ cluster_info=$(gcloud container clusters list | grep ${Composerの環境名} | grep Running
$ cluster=$(echo $cluster_info | cut -d' ' -f1)
$ location=$(echo $cluster_info | cut -d' ' -f2)
# credentialを取得
$ gcloud container clusters get-credentials $cluster --zone=$location
# podのnamespaceと名前を取得
$ pod_info=$(kubectl get pods --all-namespaces | grep airflow-scheduler | grep Running)
$ namespace=$(echo $pod_info | cut -d' ' -f1)
$ pod=$(echo $pod_info | cut -d' ' -f2)
# airflow-scheduler に入る
$ kubectl exec --namespace=$namespace $pod -c airflow-scheduler -it -- bash
# MySQLのログイン情報を取得
# mysql+mysqldb://${USER}:${PASSWORD}@${HOST}/${DATABASE}?charset=utf8 の形式で取得できる
$ echo $AIRFLOW__CORE__SQL_ALCHEMY_CONN
# MySQLにログイン
$ mysql -h ${HOST} -u ${USER} -p${PASSWORD} ${DATABASE}
# 適当にクエリを発行してみる
mysql> select * from task_instance limit 1\G
# エラーになっているpodを探す
$ kubectl get pods --all-namespaces | grep airflow-sqlproxy | grep Failed
대응
상기 상황 확인 중 SQL Proxy가 이동하는pod에 문제가 있는 것 같아서 다시 시작해 보겠습니다.
# 再起動するためにはpodを削除すればよい
# POD_NAMEは上で出てきた airflow-sqlproxy-XXXXXXXXXX-XXXXX を入れる
$ kubectl delete pod ${POD_NAME}
pod "${POD_NAME}" deleted
이후 자동으로 새로운 sqlproxy가 일어나면 됩니다.References
Reference
이 문제에 관하여(Cloud Composter에서 MySQL을 관리하는 프로세스에 연결할 수 없습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/hrkh/articles/250faae4ea933bb3eca0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)