k8s pod

apiVersion: apps/v1  # 表示使用的 API 版本
kind: Deployment     # 部署资源类型
metadata:
  name: redis        # 部署的名称,命名为 redis
  labels:
    app: redis       # 标签,表示这是一个 redis 部署
spec:
  replicas: 1        # 设置副本数,表示只运行一个 Redis 实例
  selector:
    matchLabels:
      app: redis     # 确保选择器匹配标签为 redis 的 Pod
  template:
    metadata:
      labels:
        app: redis   # 确保创建的 Pod 被标记为 redis
    spec:
      containers:
        - name: redis         # 容器的名称
          image: registry.cn-hangzhou.aliyuncs.com/xx/redis:6.2.12
          ports:
            - containerPort: 6379  # 容器暴露的端口(Redis 默认端口)
          env:
            - name: REDIS_PASSWORD # 设置环境变量 REDIS_PASSWORD 来传递 Redis 密码
              value: "your-secure-password"  # 这里填上你想要设置的密码
          command:
            - "redis-server"   # 启动 Redis 服务器
            - "--requirepass"   # 启用密码保护模式
            - "$(REDIS_PASSWORD)"  # 使用环境变量 REDIS_PASSWORD 作为 Redis 密码
          volumeMounts:
            - name: redis-data   # 将 Redis 数据存储挂载到容器中
              mountPath: /data   # 挂载到容器中的 /data 目录
      volumes:
        - name: redis-data      # 定义一个卷,用于持久化 Redis 数据
          emptyDir: {}           # 使用临时的空目录卷,可以更改为持久存储(如 PersistentVolumeClaim)
---
apiVersion: v1
kind: Service
metadata:
  name: redis      # 创建一个名为 redis 的服务
spec:
  type: NodePort   # 使用 NodePort 类型的服务,暴露外部端口
  ports:
    - port: 6379   # 内部服务的端口(容器暴露的端口)
      targetPort: 6379  # 目标端口,指向 Redis 容器的 6379 端口
      nodePort: 30003  # 外部访问端口,可以根据需要选择一个适合的端口
  selector:
    app: redis      # 匹配标签为 redis 的 Pod,确保请求转发到 Redis 实例

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: minio-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  hostPath:
    path: /mnt/data/minio
    type: DirectoryOrCreate
  claimRef:
    namespace: default
    name: minio-pvc
  storageClassName: ""
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: minio-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: ""
  volumeMode: Filesystem

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: minio
  labels:
    app: minio
spec:
  selector:
    matchLabels:
      app: minio
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: minio
    spec:
      containers:
      - name: minio
        image: registry.cn-hangzhou.aliyuncs.com/xx/minio:latest
        args:
        - server
        - /data
        - --console-address
        - ":9001"
        env:
        - name: MINIO_ROOT_USER
          value: "minioadmin"
        - name: MINIO_ROOT_PASSWORD
          value: "minioadmin"
        ports:
        - containerPort: 9000
          name: api
        - containerPort: 9001
          name: console
        volumeMounts:
        - name: storage
          mountPath: "/data"
        resources:
          requests:
            memory: "256Mi"
            cpu: "250m"
          limits:
            memory: "1Gi"
            cpu: "500m"
      volumes:
      - name: storage
        persistentVolumeClaim:
          claimName: minio-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: minio-api
  labels:
    app: minio
spec:
  type: NodePort
  ports:
    - port: 9000
      targetPort: 9000
      nodePort: 30900
      name: api
  selector:
    app: minio
---
apiVersion: v1
kind: Service
metadata:
  name: minio-console
  labels:
    app: minio
spec:
  type: NodePort
  ports:
    - port: 9001
      targetPort: 9001
      nodePort: 30901
      name: console
  selector:
    app: minio

无标签
评论区
头像
    头像
    whoyqpmacg
      

    情感真挚自然,字里行间传递出强烈的感染力。

    头像
    dbfkvwufip
      

    ?文化类评语?

    头像
    wozzkfajnd
      

    作者的才华横溢,让这篇文章成为了一篇不可多得的艺术品。