1.pv学习mysql-pv.yaml apiVersion: v1 kind: PersistentVolume #申明资源是pv metadata: name: pv-mysql-datadir #pv名称 labels: pv: mysql-datadir #pv标签,pvc关联的名称 spec: capacity: storage: 20Gi #存储大小 accessModes: - ReadWriteMany #目录权限,可以以读写的方式被多个node挂载 persistentVolumeReclaimPolicy: Retain #pv回收策略,Retain保留,delete删除 hostPath: path: /data/aibox-common/mysql/datadir #挂载的宿主机目录,或者是nfs的目录 --- #分隔符,可以在此下边写另一个pv,一个yaml文件,多个pv 2.pvc学习mysql-pvc.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-mysql-datadir #申明资源是pvc spec: accessModes: - ReadWriteMany #pvc权限,可以以读写的方式被多个pod挂载 resources: requests: storage: 20Gi #存储大小 selector: matchLabels: pv: mysql-datadir #pvc关联pv的标签 --- #分隔符,可以在此下边写另一个pvc,一个yaml文件,多个pvc
3.configMap学习 #创建一个名为mysql-conf的configmap对象,以文件方式创建 kubectl create cm mysql-conf --from-file=/data/aibox-common/mysql/config/my.cnf #以目录方式创建 kubectl create cm cm-config --from-file=/data/aibox-common/cm-server/config
4.svc和deployment控制器学习mysql-deployment.yaml apiVersion: v1 kind: Service #申明资源是svc metadata: name: mysql-svc #svc名称 labels: app: mysql #svc标签 spec: type: NodePort #配置为NodePort,外部可以访问 ports: - port: 23306 #容器间,服务调用的端口 targetPort: 23306 #容器暴露的端口,与Dockerfile暴露端口保持一致 nodePort: 23306 #NodePort,外部访问的端口,宿主机开启的端口 selector: app: mysql #标签选择器 --- apiVersion: apps kind: Deployment #申明资源是deployment metadata: name: mysql-d #控制器的名称,deployment此名称加随机数字,statefulset是此名称加从0开始顺序数字 spec: replicas: 1 #复制副本1 selector: matchLabels: app: mysql #筛选的选择器,如寻找mysql的pvc template: metadata: labels: app: mysql #标签选择器,给pod定义的标签 spec: nodeName: k8s-master01 #申明node主机名hostname containers: #容器信息 - name: mysql #容器名称 image: 172.16.4.17:8090/public/mysql:5.7.29 #容器镜像 imagePullPolicy: IfNotPresent #Always总是拉取镜像 ifNotPresent本地有则使用本地镜像,不拉取 Never 只使用本地镜像,从不拉取,即使本地没有 ports: - containerPort: 23306 #容器端口 name: myport env: #环境变量 - name: MYSQL_ROOT_PASSWORD #mysql密码 value: "ytx@1234" resources: requests: memory: 3Gi #运行pod具备的条件,软限制 limits: memory: 6Gi #最多可以使用多少资源,硬限制 volumeMounts: - name: my mountPath: /var/lib/mysql #容器目录 - name: localtime mountPath: /etc/localtime #容器目录 readOnly: true #只读权限 - name: config-volume mountPath: /etc/mysql/my.cnf #容器目录 subPath: my.cnf #不加的话,覆盖/etc/mysql整个目录,加上的话只覆盖对应的文件 volumes: - name: my persistentVolumeClaim: claimName: pvc-mysql-datadir #挂在到pvc名称 - name: localtime hostPath: path: /etc/localtime #将宿主机的/etc/localtime映射到pod type: "" - name: config-volume configMap: name: mysql-conf #configMap名称 restartPolicy: Always #pod启动策略,总是重启 ---
5.上边就是全部内容,可以根据实际情况修改对应的值,然后就是按照顺序启动就可以了,启动yaml文件命令,kubectl apply -f *.yaml
标签:容器,pv,name,笔记,学习,yaml,pvc,mysql,k8s From: https://www.cnblogs.com/Leonardo-li/p/16936707.html