apiVersion: apps/v1 #指定API版本标签 kind: Deployment #定义资源的类型/角色,deployment为控制器,service,endpoints metadata: #定义资源的元数据信息 name: redis-deployment #定义资源的名称,在同一个namespace空间中必须是唯一的 namespace: lk #默认default labels: #定义资源标签 app: yamlredis-d spec: replicas: 1 #定义副本数量 selector: #定义选择器 matchLabels: #匹配上边的标签 app: yamlredis-d #名称 template: #定义模板 metadata: labels: app: yamlredis-d spec: containers: #定义容器信息 - name: yamlredis #容器名,与标签名要相同 image: repository.anxinyun.cn/base-images/redis:5-1.21-04-13 #容器使用的镜像以及版本 imagePullPolicy: IfNotPresent #获取镜像的策略 Alawys表示下载镜像 IfNotPresent 表示优先使用本地镜像,否则下载镜像,Never表示仅使用本地镜像 command: ["/bin/sh","-c","redis-server --protected-mode 'no' --appendonly yes"] #启动容器的运行命令,将覆盖容器中的Entrypoint,对应Dockefile中的ENTRYPOINT ports: - containerPort: 6379 #定义容器的对外端口 volumeMounts: - name: vol-data #挂载设备的名字,与volumes[*].name 需要对应 mountPath: /data # 容器的数据目录 - name: vol-log #挂载设备的名字,与volumes[*].name 需要对应 mountPath: /logs # 容器的数据目录 volumes: # volumes和container处于同一层级,别搞错了 - name: vol-data hostPath: path: /home/anxinlocal/redisdata # 宿主机目录 - name: vol-log hostPath: path: /home/anxinlocal/redislogs # 宿主机目录 --- apiVersion: v1 #指定API版本标签 kind: Service #定义资源的类型/角色,Deployment为控制器,Service,endpoints metadata: #定义资源的元数据信息 name: redis-service #定义资源的名称,在同一个namespace空间中必须是唯一的 namespace: lk #默认default labels: #定义资源标签 app: redis-s spec: selector: app: yamlredis-d #deployment标签 type: NodePort ports: - protocol: TCP port: 6379 # 集群内访问 targetPort: 6379 #集群内 容器内端口 nodePort: 30379 #集群外访问 范围30000-32767