k8s使用外部mysql做内部服务

创建 mysql-endpoints.yaml

 1apiVersion: v1
 2kind: Endpoints
 3metadata:
 4  name: mysql-dev
 5  namespace: default
 6subsets:
 7  - addresses:
 8    - ip: 10.1.0.32
 9    ports:
10      - port: 3306

创建mysql-service.yaml

1apiVersion: v1
2kind: Service
3metadata:
4  name: mysql-dev
5spec:
6  ports:
7    - port: 3306
8    

或者

 1apiVersion: v1
 2kind: Service
 3metadata:
 4  name: mysql-dev
 5  namespace: default
 6spec:
 7  clusterIP: 10.1.61.45
 8  ports:
 9  - port: 3306
10    targetPort: 3306
11    protocol: TCP

使用数据库服务

main.go

 1package main
 2
 3import (
 4	"database/sql"
 5	"fmt"
 6	_ "github.com/go-sql-driver/mysql"
 7	"net/http"
 8)
 9
10func IndexHandler(w http.ResponseWriter, r *http.Request) {
11	_, _ = fmt.Fprintln(w, "hello rushui")
12}
13
14func RowsHandler(w http.ResponseWriter, r *http.Request) {
15	//第⼀步:打开数据库,格式是 ⽤户名:密码@/数据库名称?编码⽅式
16	db, err := sql.Open("mysql", "root:root@tcp(mysql-dev:3306)/test?charset=utf8")
17	if err != nil {
18		fmt.Println(err)
19	}
20	//关闭数据库
21	var id int
22	var name string
23	//查询数据,指定字段名,返回sql.Rows结果集
24	rows, err := db.Query("select id,name from user")
25	if err != nil {
26		fmt.Println(err)
27	}
28	defer rows.Close()
29	for rows.Next() {
30		_ = rows.Scan(&id, &name)
31		_, _ = fmt.Fprintln(w, name)
32	}
33}
34
35func main() {
36	http.HandleFunc("/", IndexHandler)
37	http.HandleFunc("/rows", RowsHandler)
38	_ = http.ListenAndServe(":8081", nil)
39}

发布日期:2023-03-12 19:41 字数:197 用时 1分钟
tags:K8s Mysql