k8s 安装posgresql

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
PolarDB Agent Express,2核4GB
云数据库 PolarDB MySQL 版,列存表分析加速 8核16GB
简介: 本指南介绍如何在K8s集群中快速部署PostgreSQL官方镜像(v18.3),配合local-path-provisioner提供本地持久化存储。含命名空间、PVC、Deployment与Service完整YAML,支持国产镜像加速,兼顾14–18版本路径兼容性,适用于开发与测试环境。(239字)

参考资料

官方镜像仓库地址
https://hub.docker.com/_/postgres

local-path-provisioner
https://github.com/rancher/local-path-provisioner

开始安装

  • 安装 local-path-provisioner
    kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.36/deploy/local-path-storage.yaml
    
  • 安装 postgresql
apiVersion: v1
kind: Namespace
metadata:
  name: postgres-official
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: postgres-pvc
  namespace: postgres-official
spec:
  storageClassName: local-path # 请根据你的集群实际情况修改 (如: local-path, nfs, csi 等)
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
---
apiVersion: apps/v1
kind: Deployment # 官方镜像对权限要求宽松,Deployment 即可满足
metadata:
  name: postgres
  namespace: postgres-official
spec:
  replicas: 1
  selector:
    matchLabels:
      app: postgres
  template:
    metadata:
      labels:
        app: postgres
    spec:
      # 官方镜像不需要特殊的 fsGroup,但如果需要请取消注释并调整
      # securityContext:
      #   fsGroup: 999 # 官方镜像通常使用 UID 999
      containers:
        - name: postgres
          image: docker.m.daocloud.io/postgres:18.3 # 这里使用了稳定的 16 版本
          imagePullPolicy: IfNotPresent
          env:
            # 1. 必须设置:超级用户密码
            - name: POSTGRES_PASSWORD
              value: "MySecurePass123!" # 生产环境请务必替换并使用 Secret

            # 2. 可选:创建一个默认数据库 (如果不设置,默认同用户名)
            - name: POSTGRES_DB
              value: "postgres"

            # 3. 可选:创建一个默认用户 (如果不设置,默认为 postgres)
            - name: POSTGRES_USER
              value: "postgres"

            # 4. (高级) 如果你使用 PG 18+,官方文档建议显式设置 PGDATA
            - name: PGDATA
              value: /var/lib/postgresql/18/docker
          ports:
            - containerPort: 5432
              name: postgres
          volumeMounts:
            # 关键点:官方镜像默认挂载点
            # 注意:文档指出在 18+ 版本中,推荐挂载到 /var/lib/postgresql
            # 但在 17 及以下,通常直接挂载到 /var/lib/postgresql/data
            - name: postgres-storage
              mountPath: /var/lib/postgresql # 兼容 14-17 的写法
              # 如果你使用 18+ 且设置了 PGDATA 环境变量,这里应改为 /var/lib/postgresql
          resources:
            requests:
              memory: "1Gi"
              cpu: "500m"
            limits:
              memory: "2Gi"
              cpu: "1000m"
      # 如果是国内环境拉取镜像慢,可以配置阿里云镜像加速
      # imagePullSecrets:
      # - name: aliyun-acr-secret 
      volumes:
        - name: postgres-storage
          persistentVolumeClaim:
            claimName: postgres-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: postgres-svc
  namespace: postgres-official
spec:
  selector:
    app: postgres
  ports:
    - protocol: TCP
      port: 5432
      targetPort: 5432
      nodePort: 30432 # 如果是 NodePort 模式,指定一个端口
  type: NodePort # 本地测试推荐 NodePort,云厂商推荐 LoadBalancer
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
前端开发 安全 Java
全栈开发实战|​电子商务平台的设计与实现(Spring Boot + MyBatis + Thymeleaf)
全栈开发实战|​电子商务平台的设计与实现(Spring Boot + MyBatis + Thymeleaf)
3833 0
全栈开发实战|​电子商务平台的设计与实现(Spring Boot + MyBatis + Thymeleaf)
|
2月前
|
缓存 数据安全/隐私保护 Windows
windows远程,使用微软账号,密码正确,但是提示登录没有成功
微软账户远程桌面失败?主因是目标机未缓存云端凭据。解决方法:在被控电脑用 `runas /user:MicrosoftAccount\邮箱 notepad` 命令手动缓存账户,输入密码后记事本成功启动即生效,无需改账户类型。(239字)
|
1月前
|
人工智能 自然语言处理 IDE
Qoder——来自阿里的Agentic 智能体编程平台,Qoder-Teams-Credits费用300元/月,功能及使用场景全解析
Qoder是阿里云推出的Agentic智能体编程平台,支持自然语言交互、全栈开发与多语言智能问答。集成LLM,Qoder官网:https://t.aliyun.com/U/58ZleE 可理解上下文、自动生成代码/测试、解释逻辑,并提供IDE、CLI、JetBrains插件等多种接入方式,显著提升开发效率与代码质量。
2062 7
|
2月前
|
存储 JSON 关系型数据库
MySQL 全面介绍 ,现在企业都用mysql哪个版本?
MySQL是开源高性能关系型数据库,广泛用于Web与企业应用。历经MySQL AB、Sun至Oracle发展,现主流版本为MySQL 8.0——具备窗口函数、CTE、增强JSON支持、角色权限管理及显著性能优化,兼具安全性、可扩展性与活跃社区支持。
311 1
|
6月前
|
人工智能 自然语言处理 数据可视化
企业级BI系统建设方案(2025年12月更新)
本文梳理10款主流企业级BI工具,聚焦其AI能力、部署模式与行业适配性,重点介绍连续六年入选Gartner魔力象限的瓴羊Quick BI,助力企业选型决策。
|
存储 Cloud Native 关系型数据库
【云原生】rancher2.6部署MySQL—2023.03
【云原生】rancher2.6部署MySQL—2023.03
886 0
|
监控 算法 JavaScript
基于 Node.js Socket 算法搭建局域网屏幕监控系统
在数字化办公环境中,局域网屏幕监控系统至关重要。基于Node.js的Socket算法实现高效、稳定的实时屏幕数据传输,助力企业保障信息安全、监督工作状态和远程技术支持。通过Socket建立监控端与被监控端的数据桥梁,确保实时画面呈现。实际部署需合理分配带宽并加密传输,确保信息安全。企业在使用时应权衡利弊,遵循法规,保障员工权益。
400 7
|
Java jenkins 持续交付
SonarQube安装遇到的常见报错问题启动不起来等
SonarQube安装遇到的常见报错问题启动不起来等
|
存储 缓存 监控
分布式架构知识体系
本文力求从分布式基础理论,架构设计模式,工程应用,部署运维,业界方案这几大方面,介绍基于MSA(微服务架构)的分布式的知识体系大纲。
1223 13
|
运维 关系型数据库 分布式数据库
阿里云PolarDB:引领云原生数据库创新发展
阿里云PolarDB引领云原生数据库创新,2024云栖大会将分享其最新发展及在游戏行业的应用。PolarDB凭借弹性、高可用性、多写技术等优势,支持全球80多个站点,服务1万多家企业。特别是针对游戏行业,PolarDB助力Funplus等公司实现高效运维、成本优化和业务扩展。通过云原生能力,PolarDB推动游戏业务的全球化部署与快速响应,提升用户体验并保障数据安全。未来,PolarDB将继续探索AI、多云管理等前沿技术,为用户提供更智能的数据基础设施。
723 2