在Kubernetes集群中运行Python的PyMySQL作为Dockerized容器的一部分来连接到Google Cloud SQL,您可以按照以下步骤进行操作:
FROM python:3.9
# 安装所需的依赖项
RUN pip install pymysql
# 设置工作目录
WORKDIR /app
# 将应用程序代码复制到容器中
COPY . /app
# 设置入口点命令
CMD ["python", "app.py"]
在上述示例中,我们使用了Python 3.9作为基础镜像,并安装了PyMySQL。您可以根据自己的需求进行修改和扩展。
docker build -t your-image-name:tag .
docker push your-image-name:tag
确保将your-image-name
替换为您的镜像名称,tag
替换为您的镜像标签。
apiVersion: apps/v1
kind: Deployment
metadata:
name: your-deployment
spec:
replicas: 1
selector:
matchLabels:
app: your-app
template:
metadata:
labels:
app: your-app
spec:
containers:
- name: your-container
image: your-image-name:tag
ports:
- containerPort: 8080
env:
- name: DB_HOST
value: your-cloud-sql-instance-connection-name
- name: DB_USER
value: your-db-username
- name: DB_PASSWORD
value: your-db-password
在上述示例中,我们定义了一个Deployment,指定了要运行的副本数和容器镜像。您需要将your-image-name:tag
替换为您在第2步中构建和推送的镜像名称和标签。还需要将your-cloud-sql-instance-connection-name
、your-db-username
和your-db-password
替换为您的Google Cloud SQL实例的连接名、数据库用户名和密码。
kubectl apply -f your-deployment-file.yaml
确保将your-deployment-file.yaml
替换为您的部署文件路径。
kubectl get pods
您应该能够看到一个运行中的Pod。
import pymysql
# 连接到Google Cloud SQL
connection = pymysql.connect(
host='your-cloud-sql-instance-connection-name',
user='your-db-username',
password='your-db-password',
db='your-db-name',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
# 执行SQL查询
try:
with connection.cursor() as cursor:
sql = "SELECT * FROM your-table"
cursor.execute(sql)
result = cursor.fetchall()
print(result)
finally:
connection.close()
在上述示例中,您需要将your-cloud-sql-instance-connection-name
、your-db-username
、your-db-password
和your-db-name
替换为您的Google Cloud SQL实例的连接名、数据库用户名、密码和数据库名称。
这样,您就可以在Kubernetes集群中运行Python的PyMySQL作为Dockerized容器的一部分,并连接到Google Cloud SQL了。
请注意,以上答案中没有提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商。如需了解腾讯云相关产品和产品介绍,建议您访问腾讯云官方网站(https://cloud.tencent.com/)获取更详细的信息。
领取专属 10元无门槛券
手把手带您无忧上云