我正在尝试使用this指南使用代理docker映像将云sql上的mysql实例连接到google kubernetes集群。
我有一个装有ubuntu映像和mysql客户端以及代理映像作为边车的pod。
代理日志显示“准备进行新连接”,但是当我尝试使用mysql客户端和127.0.0.1(端口3306)作为主机连接到代理时,出现以下错误:
错误2003(HY000):无法连接到“ 127.0.0.1”上的MySQL服务器(111 “拒绝连接”)。
吊舱具有以下部署文件:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "20"
creationTimestamp: 2019-01-30T15:29:58Z
generation: 19
labels:
app: toolbox
name: toolbox
namespace: default
resourceVersion: "1806058"
selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/toolbox
uid: e6ee574e-24a3-11e9-82e3-42010a9a0079
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: toolbox
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
app: toolbox
spec:
containers:
- image: gcr.io/orayya-229213/toolbox:1.0
imagePullPolicy: IfNotPresent
name: toolbox
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
- command:
- /cloud_sql_proxy
- -instances=orayya-229213:europe-west2:orayya-db=tcp:0.0.0.0:3306
- -credential_file=/secrets/cloudsql/credentials.json
image: gcr.io/cloudsql-docker/gce-proxy:1.12
imagePullPolicy: IfNotPresent
name: cloudsql-proxy
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /secrets/cloudsql
name: cloudsql-credentials
readOnly: true
- mountPath: /cloudsql
name: cloudsql
dnsPolicy: ClusterFirst
nodeSelector:
cloud.google.com/gke-nodepool: default-pool
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: cloudsql-credentials
secret:
defaultMode: 420
secretName: cloudsql-credentials
- emptyDir: {}
name: cloudsql
status:
availableReplicas: 1
collisionCount: 1
conditions:
- lastTransitionTime: 2019-01-31T10:49:56Z
lastUpdateTime: 2019-01-31T10:49:56Z
message: Deployment has minimum availability.
reason: MinimumReplicasAvailable
status: "True"
type: Available
- lastTransitionTime: 2019-01-31T10:27:21Z
lastUpdateTime: 2019-02-03T14:29:31Z
message: ReplicaSet "toolbox-6d589d797" has successfully progressed.
reason: NewReplicaSetAvailable
status: "True"
type: Progressing
observedGeneration: 19
readyReplicas: 1
replicas: 1
updatedReplicas: 1
我还尝试了其他几种示例变体。
如有需要,我很乐意提供更多信息。
谢谢!
修改:
我终于设法完成了这项工作。
我从头开始,显然我的工具箱容器有问题。
谢谢大家的帮助!
答案 0 :(得分:0)
尽管没有更多信息我无法帮助您解决此特定问题,但我可以为您提供一些建议以帮助您调试它。
首先,找出您要查看的广告连播的名称。从发布的配置中,您似乎可以使用app标签对其进行查找:
kubectl get pods -l=app=toolbox
如果未列出您的Pod,则说明您的部署存在问题,并且未成功创建Pod。如果列出,则问题出在其中一个豆荚中。
该容器内部有两个容器,因此下一步是检查代理以确保其成功启动,如果成功,为什么还要拒绝连接。
kubectl get logs <YOUR_POD_NAME> -c cloudsql-proxy
这应该打印与容器关联的日志,并应向您提供有关其为何不起作用的其他信息。