与 【kubernetes实战(1)-mysql部署(RC部署)】基本一样只是配文件不一样,现将配置文件整理如下:
mysql-deployment.yaml
apiVersion: apps/v1
kind: Deployment # 类型是部署
metadata:
name: mysql-deployment # 对象的名字
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: mysql-dpl #用来绑定label是“mysql”的Pod
strategy:
type: Recreate #部署策略:停止旧版本部署新版本
template: # 开始定义Pod
metadata:
labels:
app: mysql-dpl #Pod的Label,用来标识Pod
spec:
containers: # 开始定义Pod里面的容器
- image: mysql:5.7
name: mysql-con
imagePullPolicy: IfNotPresent #默认值,本地有则使用本地镜像,不拉取
env: # 定义环境变量
- name: MYSQL_ROOT_PASSWORD # 环境变量名
value: root # 环境变量值
- name: MYSQL_USER
value: dbuser
- name: MYSQL_PASSWORD
value: dbuser
args: ["--default-authentication-plugin=mysql_native_password"] #在MySQL 5.7中,默认的身份验证插件是 mysql_native_password!
ports:
- containerPort: 3306 # mysql端口
name: mysql
volumeMounts:
- mountPath: /var/lib/mysql
name: datadir
- mountPath: /etc/mysql/mysql.conf.d
name: cfgdir
volumes:
- name: datadir
hostPath:
path: /root/mysql/data2
- name: cfgdir
hostPath:
path: /root/mysql/conf2
mysql-deployment-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql-dpl-svc
labels:
name: mysql-dpl-svc
spec:
type: NodePort
ports:
- port: 3306
targetPort: 3306
nodePort: 30001
selector:
app: mysql-dpl