k3s部署mysql


之前一篇由於數據庫大小寫不匹配,被我誤刪了。。

k3s安裝

安裝

牆內服務器,最好添加阿里雲鏡像加速,否則鏡像可能下載不下來:/etc/docker/daemon.json中增加如下內容

{
  "registry-mirrors": ["https://icl4chew.mirror.aliyuncs.com"]
}

然后重啟docker服務

systemctl daemon-reload
systemctl restart docker

啟動項

mysql我的端口需要映射,如果通過NodePort方式,需要指定NodePort范圍。我將數據庫服務制定在40000端口。

對於k3s,需要在啟動項指定,修改/etc/systemd/system/k3s.service文件中的啟動程序為:

ExecStart=/usr/local/bin/k3s server --kube-apiserver-arg service-node-port-range=40000-40200

mysql部署

Deploy

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql-deployment
  labels:
    app: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.7
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: password
        ports:
        - containerPort: 3306
        volumeMounts:
        - mountPath: /var/lib/mysql
          name: mysql-data
        - name: mysql-config
          mountPath: /etc/mysql/mysql.conf.d
      volumes:
        - name: mysql-data
          hostPath:
            path: /root/data/mysql
            type: Directory
        - name: mysql-config
          hostPath:
            path: /root/data/mysql-config
            type: Directory

其中mysql-config掛載,是為了自定義mysql啟動配置。
mysql-data是mysql的數據文件,掛載出來可以持久化,避免數據文件丟失。

service

apiVersion: v1
kind: Service
metadata:
  name: mysql-service
spec:
  type: NodePort
  selector:
    app: mysql
  ports:
  - protocol: TCP
    port: 3306
    targetPort: 3306
    nodePort: 40000

通過nodeport方式,將服務開啟在了40000端口。

其實如果是Cluster內應用訪問,可以直接使用Service的3306端口,但是由於Service的Ip並非固定,所以還需要域名解析的服務,會有點復雜,這里為了簡單,使用NodePort。

config

這里指的是掛載出來的mysql.cnf配置文件。

我添加了

lower_case_table_names=1

這是因為linux默認的數據庫是大小寫敏感的,我的數據庫是從windows環境遷移過來,默認都是小寫。
導入linux后,我用的EF發出的sql,表名帶有大小寫,mysql會無法識別。所以開啟小寫表名的選項


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM