GKE의 Cronjob으로 돌려보내려고 하면 빠져요.
GKE에서 크론잡(CronJob)을 사용하고 싶었지만, 연결용 클라우드 SQLProxy의 컨테이너가 잘 떨어지지 않아 난감했다.
원래 이동하는pod에서 이동하기 위해 분리된 응용 프로그램 용기와 클라우드 SQLProxy 컨테이너가 이동하고 있기 때문에pod의 사용cup 요청은 상당히 무겁다고 생각합니다.
여기서 GCP 분들과 살짝 말씀드렸는데 클라우드 SQL은 개인 IP에 대응했고 GKE부터 클라우드 SQL까지 개인 IP로 연결해 봤는데 시원해서 적어봤어요.
CloudSQL의 개인 IP 주소는 2018/12/12입니다. 베타 버전입니다.
양해해서 사용하세요.
CloudSQL을 사용하는 개인 IP
개인 IP를 선택하고 자동 할당 버튼을 누릅니다.
그거 끝나고 저장할게요.완료하는 데 몇 분 걸립니다.
※ 1 개인 IP는 클라우드SQL 2세대만 사용 가능
※ 2는 GKE 구역과 같아야 합니다.
※ 3GKE 버전은 1.8 이상이어야 합니다.
인용하다
https://cloud.google.com/sql/docs/mysql/private-ip
제가 만들어진 개인 IP 주소를 적어 놓을게요.
CloudSQLProxy를 통해 프로그램 측면의 연결을 개인 IP로 변경
deploy.yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: cron-batch
spec:
schedule: "*/5 * * * *" # <=テストのため5分ごとに走らせる
failedJobsHistoryLimit: 1
successfulJobsHistoryLimit: 1
jobTemplate:
spec:
template:
metadata:
spec:
containers:
- name: cron-batch
image: [イメージ名]
command: [コマンドは適当にSQLへの接続があるものを指定]
env:
- name: MYSQL_DSN
value: [プライベートIP] # <= 元はプロキシ接続だったので、127.0.0.1だったはず!これをプライベートIPに変更
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: cloudsql-db-credentials
key: username
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: cloudsql-db-credentials
key: password
- name: MYSQL_DATABASE
value: ******
응용 프로그램에 호스트를 제출하는 방법은 이것에 국한되지 않습니다. 프로젝트에 협조하십시오이렇게 하면 연결될 줄 알았는데 SQLSTATE[HY000][2002] Operation timed out]
무엇 때문에
VPC 로컬리스트는 GKE 클러스터를 만들 때 검사를 통해 사용할 수 있습니다.
제가 무효로 만들었기 때문에 클러스터를 다시 만들었어요
이렇게 되면 크론잡스는 순조롭게 Successed가 된다.기쁘고 축하할 만하다
참고 자료
Reference
이 문제에 관하여(GKE의 Cronjob으로 돌려보내려고 하면 빠져요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/raharu0425/items/a037bdbbc79bb38c3dc6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)