k8s上简单部署mysql

[root@kubernetes mysql]# cat mysql-rc.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql-rc
  labels:
    name: mysql-rc
spec:
  replicas: 1
  selector:
    name: mysql-pod
  template:
    metadata:
      labels: 
        name: mysql-pod
    spec:
      containers:
      - name: mysql
        image: mysql:5.7
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "mysql"

[root@kubernetes mysql]# cat mysql-svc.yaml 
apiVersion: v1
kind: Service
metadata:
  name: mysql-svc
  labels: 
    name: mysql-svc
spec:
  type: NodePort
  ports:
  - port: 3306
    protocol: TCP
    targetPort: 3306
    name: http
    nodePort: 30006
  selector:
    name: mysql-pod

[root@kubernetes mysql]# kubectl create -f mysql-rc.yaml -f mysql-svc.yaml

[root@kubernetes mysql]# kubectl get pods
NAME             READY   STATUS    RESTARTS   AGE
mysql-rc-dl5x6   1/1     Running   0          10m
[root@kubernetes mysql]# 
[root@kubernetes mysql]# kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.96.0.1              443/TCP          28d
mysql-svc    NodePort    10.101.13.175          3306:30006/TCP   8m28s


python外部连接测试脚本
#!/usr/bin/python
# encoding: utf-8

import pymysql
conn = pymysql.connect(
    host = '192.168.73.101',
    port = 30006,
    user = 'root',
    passwd = 'mysql',
    # user='root',
    # passwd='123456',
    db = 'mysql',
    charset = 'utf8',
)
cursor = conn.cursor()
form = "show databases"   
form1 = "show tables"     
cursor.execute(form)
# cursor.execute(insert1)
# row = cursor.fetchone()
row = cursor.fetchall()
# row = cursor.fetchmany()

print(row)
conn.commit()
cursor.close()
conn.close()
 

你可能感兴趣的:(数据库,python,k8s)