k8s学习笔记

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

 

posted @ 2022-11-29 21:03  Leonardo-li  阅读(38)  评论(0编辑  收藏  举报