K8s部署MySQL單節點(非集羣)

前言

本次記錄安裝mysql單節點,因爲是測試機,集羣現在還沒有安裝上,後續上生產環境部署之後再補上K8s部署mysql集羣篇

部署

編寫Pod控制器

Kubernetes中內建了很多controller(控制器),這些相當於一個狀態機,用來控制Pod的具體狀態和行爲。
編輯文件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: "123456" #root密碼

編寫Service

Service定義了一個服務的訪問入口地址,一個服務通道。前端應用通過該入口地址訪問其背後的一組由Pod副本組成的集羣實例,來自外部的訪問請求被負載均衡到後端的各個容器應用上。
編輯文件mysql-svc.yaml如下:

apiVersion: v1
kind: Service
metadata:
  name: mysql-svc
  labels:
    name: mysql-svc
spec:
  type: NodePort
  ports:
  - port: 30003 #容器間通信端口
    protocol: TCP
    targetPort: 3306 # 容器目標端口,與mysql-rc.yaml中containerPort保持一致
    name: http
    nodePort: 30003 # 外部訪問端口
  selector:
    name: mysql-pod

啓動容器

$ kubectl create -f mysql-rc.yaml
replicationcontroller "mysql-rc" created
$ kubectl create -f mysql-svc.yaml
service "mysql-svc" created
$ kubectl get po |grep mysql

貼張圖
在這裏插入圖片描述

測試

在這裏插入圖片描述

新建用戶,數據庫授權這些這裏不做說明。也可以先進入容器,再使用命令進行登錄

進入容器命令 kubectl exec -it <container_id> /bin/bash

後記

這是使用mysql的基本用法,可以自己定義配置文件mysqld.cnf,然後使用docker構建適合項目的鏡像,達到定製化效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章