跳到内容
标志
雷竞技下载官网为PostgreSQL Percona运营商
传输加密(TLS / SSL)
初始化搜索
    雷竞技下载官网percona / k8spg-docs
    雷竞技下载官网percona / k8spg-docs
    • 欢迎
      • 系统需求
      • 设计和架构
      • 与其他解决方案相比
      • 安装在Minikube
      • 安装与舵
      • 安装在谷歌Kubernetes引擎(GKE)
      • 通用Kubernetes安装
      • 安装在OpenShift
      • 应用程序和系统用户
      • 改变PostgreSQL选项
      • Anti-affinity和纵容
      • 传输加密(TLS / SSL)
        • 允许操作员自动生成证书
          • 安装cert-manager
          • 将自动生成证书
        • 手动生成证书
        • 检查连接到集群
        • 运行Pe雷竞技下载官网rcona分布没有TLS PostgreSQL
      • 遥测
      • 备份和恢复
      • 升级Percon雷竞技下载官网a分布PostgreSQL和运营商
      • 横向和纵向扩展
      • raybet雷竞技竞猜在线官网监控与Percona监视和雷竞技下载官网管理(PMM)
      • 重新启动集群或暂停
      • 集群部署一个备用的灾难恢复
      • 提供Percon雷竞技下载官网a运营商PostgreSQL单一名称空间和multi-namespace部署的
      • 使用PostgreSQL表空间为PostgreSQL Perco雷竞技下载官网na运营商
      • 创建一个私人S3-compatible云备份
      • 自定义资源的选择
      • 运营商安装选项
      • 雷竞技下载官网Percona认证图片
      • 常见问题
      • 发行说明指数
      • 雷竞技下载官网PostgreSQL 1.4.0 Percona操作员(2023-03-31)
      • 雷竞技下载官网1.3.0 Percona运营商为PostgreSQL版本(2022-08-04)
      • 雷竞技下载官网PostgreSQL 1.2.0 Percona操作员(2022-04-06)
      • 雷竞技下载官网PostgreSQL 1.1.0 Percona操作员(2021-12-07)
      • 雷竞技下载官网Percona运营商为PostgreSQL 1.0.0 (2021-10-07)
      • 雷竞技下载官网PostgreSQL 0.2.0 Percona操作员(2021-08-12)
      • 雷竞技下载官网PostgreSQL 0.1.0 Percona操作员(2021-05-10)

    • 允许操作员自动生成证书
      • 安装cert-manager
      • 将自动生成证书
    • 手动生成证书
    • 检查连接到集群
    • 运行Pe雷竞技下载官网rcona分布没有TLS PostgreSQL

    传输层安全性(Transport Layer Security, TLS)¶

    Post雷竞技下载官网greSQL的Percona运营商使用传输层安全(TLS)加密协议以下类型的通信:

    • 集群中的内部- PostgreSQL实例之间的通信
    • 外部客户端应用程序之间的通信和集群

    内部证书也被用作一个授权PostgreSQL副本实例的方法。

    TLS安全可以配置在几个方面:

    • 操作员可以在集群创建时间,自动生成证书
    • 你也可以手动生成证书。

    您还可以使用可用的预生成的证书部署/ ssl-secrets.yaml文件用于测试目的,但我们强烈建议避免使用任何生产系统!

    下面的内容将解释如何配置TLS安全同运营商自己,以及如何如果需要暂时禁用它。

    允许操作员自动生成证书¶

    操作员能够自动生成长期证书,打开加密在创建集群时,如果没有证书的秘密。它生成证书的帮助下cert-manager——Kubernetes证书管理控制器广泛应用自动化管理和发行TLS证书。Cert-manager社区主导型和开源。

    的安装cert-manager¶

    你可以安装cert-manager如下:

    • 创建一个名称空间,
    • 禁用资源验证cert-manager名称空间,
    • 安装cert-manager。

    以下命令执行所有需要的操作:

    美元kubectl创建名称空间cert-manager美元kubectl标签名称空间cert-managercertmanager.k8s.io /禁用验证=真正的美元kubectl应用- fhttps://github.com/jetstack/cert-manager/releases/download/v1.9.0/cert-manager.yaml

    在安装之后,您可以验证cert-manager通过运行下面的命令:

    美元kubectl得到豆荚- ncert-manager

    结果应该显示cert-manager和webhook活跃并运行。

    将自动生成证书¶

    当你已经安装了cert-manager,操作员可以请求证书。让这发生,取消sslCA,sslSecretName,sslReplicationSecretName选项的部署/ cr.yaml配置文件:

    …规范:# secretsName: cluster1-userssslCA:cluster1-ssl-casslSecretName:cluster1-ssl-keypairsslReplicationSecretName:cluster1-ssl-keypair…

    当完成,部署集群像往常一样,与kubectl应用- f / cr.yaml部署命令。将生成的证书如果没有证书的秘密。

    手动生成证书¶

    手动生成证书,遵循这些步骤:

    1. 提供一个生成TLS证书,
    2. 与服务器生成一个密钥和证书文件的细节,
    3. 创建服务器TLS使用密钥证书,证书和服务器的细节。

    命令集生成证书使用以下属性:

    • Server-pem——证书
    • Server-key.pem- - - - - -私钥
    • ca.pem——证书颁发机构

    你应该生成一组证书外部通信,和另一组内部的。

    假设你的集群名称cluster1,您可以使用以下命令生成证书:

    美元CLUSTER_NAME=cluster1美元名称空间=默认的美元猫< < EOF | cfssl gencert -initca - | cfssljson光秃秃的ca{“CN”:“*”,“关键”:{“算法”:“ecdsa”,“大小”:384}}EOF美元猫< < EOF > ca-config.json{“签署”:{“默认”:{“到期”:“87600 h”,“用法”:[“数字签名”、“关键加密”、“承诺”的内容}}}EOF美元猫< < EOF | cfssl gencert ca = ca。pem -ca-key = ca-key。pem配置=。/ ca-config。json - | cfssljson光秃秃的服务器{“主机”:(“localhost”," $ {CLUSTER_NAME}”," $ {CLUSTER_NAME}。${名称空间}”," $ {CLUSTER_NAME}。${名称空间}.svc.cluster.local”," $ {CLUSTER_NAME} -pgbouncer”," $ {CLUSTER_NAME} -pgbouncer。${名称空间}"," $ {CLUSTER_NAME} -pgbouncer。${名称空间}.svc.cluster.local ",“*。$ {CLUSTER_NAME}”,“*。$ {CLUSTER_NAME}。${名称空间}”,“*。$ {CLUSTER_NAME}。${名称空间}.svc.cluster.local ",“*。$ {CLUSTER_NAME} -pgbouncer”,“*。$ {CLUSTER_NAME} -pgbouncer。${名称空间}",“*。$ {CLUSTER_NAME} -pgbouncer。${名称空间}.svc.cluster.local "),“CN”:“$ {CLUSTER_NAME}”,“关键”:{“算法”:“ecdsa”,“大小”:384}}EOF美元kubectl创建秘密通用的$ {CLUSTER_NAME}-ssl-ca——从文件=ca.crt=ca.pem美元kubectl创建秘密tls$ {CLUSTER_NAME}-ssl-keypair——证书=server.pem——关键=server-key.pem

    如果你的PostgreSQL集群包括副本实例(此功能在默认情况下),他们以类似的方式生成证书:

    美元猫< < EOF | cfssl gencert ca = ca。pem -ca-key = ca-key。pem配置=。/ ca-config。json - | cfssljson光秃秃的副本{“CN”:“primaryuser”,“关键”:{“算法”:“ecdsa”,“大小”:384}}EOF美元kubectl创建秘密tls$ {CLUSTER_NAME}-ssl-replicas——证书=replicas.pem——关键=replicas-key.pem

    当生成证书,设置以下键的部署/ cr.yaml配置文件:

    • spec.sslCA关键的名称应该包含秘密TLS用于连接加密(外部交通),和复制(内部交通),
    • spec.sslSecretName键的名称应该包含秘密创建加密外部通信、
    • spec.secrets.sslReplicationSecretName键的名称应该包含秘密创建加密内部通信、
    • spec.tlsOnly被设置为真正的默认情况下,执行加密

    别忘了申请改变像往常一样:

    美元kubectl应用- f部署/ cr.yaml

    检查连接到集群¶

    你可以检查与使用TLS沟通psql,标准的交互式基于终端前端PostgreSQL。下面的命令将生成一个新的pg-client容器,包括需要的命令,可用于检查(而不是使用你真正的集群名称<集群名称>占位符):

    美元猫< < EOF | kubectl应用- f -apiVersion:应用程序/ v1:部署元数据:名称:pg-client规范:副本:1选择器:matchLabels:名称:pg-client模板:元数据:标签:名称:pg-client规范:容器:——名称:pg-client图片:perc雷竞技下载官网onalab / percona-distribution-postgresql: 14.7imagePullPolicy:总是命令:——睡眠参数:——“100500”volumeMounts:ca -名称:mountPath:“/ tmp / tls”卷:ca -名称:秘密:secretName: < cluster_name > -ssl-ca项目:——关键:ca.crt路径:ca.crt模式:0777EOF

    现在让shell访问新创建的容器,并启动PostgreSQL交互式终端检查连接通过加密通道(请使用真正的集群名称,PostgreSQL用户登录和密码):

    美元kubectl执行-部署/ pg-client- - -bash伊尔(postgres@pg-client/]美元PGSSLMODE来=verify-caPGSSLROOTCERT=/ tmp / tls / ca.crtpsqlpostgres: / / < postgresql-user >: < postgresql-password > @ <集群名称> -pgbouncer。<名称> .svc.cluster.local

    现在您应该看到PostgreSQL交互式终端的提示:

    美元psql(147)类型“帮助”为的帮助。pgdb=>

    运行Pe雷竞技下载官网rcona分布没有TLS PostgreSQL¶

    省略TLS也是可能的,但我们建议您启用了TLS协议的集群运行。

    禁用TLS协议(如出于演示目的)设置spec.tlsOnly关键假,并确保没有证书中配置的秘密部署/ cr.yaml文件。

    联系我们

    免费技术支持,参观Percona雷竞技下载官网社区论坛。

    报告bug或提交功能请求,打开一个JIRA票。

    付费支持和管理或咨询服务,请联系雷竞技下载官网Percona销售。


    最后更新:2023-04-14
    雷竞技下载官网Percona有限责任公司和/或其附属公司,©2009 - 2023
    用材料MkDocs

    饼干的同意

    我们使用cookie识别你的重复访问和偏好,以及测量的有效性我们的文档和用户是否找到他们寻找的是什么。与你的同意,你帮助我们更好的使我们的文档。

    Baidu
    map