gpt4 book ai didi

amazon-web-services - kubernetes + coreos 集群 - 替换证书

转载 作者:行者123 更新时间:2023-12-04 19:40:23 25 4
gpt4 key购买 nike

我有一个 coreos kubernetes 集群,我从这篇文章开始:

kubernetes coreos cluster on AWS

TLDR;

> kube-aws init
> kube-aws render
> kube-aws up

一切正常,我在 AWS 上有一个 kubernetes coreos 集群。
在文章中有一个警告说:

PRODUCTION NOTE: the TLS keys and certificates generated by kube-aws should not be used to deploy a production Kubernetes cluster. Each component certificate is only valid for 90 days, while the CA is valid for 365 days. If deploying a production Kubernetes cluster, consider establishing PKI independently of this tool first.



所以我想更换默认证书,所以我跟着下面的文章:

coreos certificates

TLDR;
  • 创建了以下自签名证书:ca.pem、ca-key.pem
  • 为 Controller 创建了证书:apiserver.pem, apiserver-key.pem
  • 用上面创建的证书替换 Controller 中的证书,并重新启动 Controller
  • 创建 worker 证书并替换 worker 中的证书并重新启动它们
  • 配置 kubectl 以使用我创建的新证书并配置上下文和用户

  • 我在 kubectl 和集群之间出现通信错误,提示证书

    Unable to connect to the server: x509: certificate signed by unknown authority



    我还尝试使用指向集群 DNS 的 kubectl 签名证书,我为集群设置了 DNS。

    如何让 kubectl 与我的集群通信?

    提前致谢

    编辑:

    我的 ~/.kube/config 看起来像这样:
    apiVersion: v1
    clusters:
    - cluster:
    certificate-authority: /Users/Yariv/Development/workspace/bugeez/bugeez-kubernetes/credentials/ca2.pem
    server: https://kubernetes.bugeez.io
    name: bugeez
    contexts:
    - context:
    cluster: bugeez
    user: bugeez-admin
    name: bugeez-system
    current-context: bugeez-system
    kind: Config
    preferences: {}
    users:
    - name: bugeez-admin
    user:
    client-certificate: /Users/Yariv/Development/workspace/bugeez/bugeez-kubernetes/credentials/admin2.pem
    client-key: /Users/Yariv/Development/workspace/bugeez/bugeez-kubernetes/credentials/admin-key2.pem

    编辑:

    我所有的证书都由 ca2.pem 签名,我还通过运行验证了这一事实:
    openssl verify -CAfile ca2.pem <certificate-name>

    编辑:

    我认为错误的原因是这样的:
    当我切换 Controller 和工作程序中的键时,似乎 cloud-config 正在用旧键覆盖我的新键。如何替换 key 并更改 cloud-config 以适应我的更改?

    最佳答案

    对我有用的替代解决方案是启动一个新集群,并最初使用自定义证书,而无需依赖默认的临时凭据。

    关注同tutorial您使用的,我进行了以下更改:

    > kube-aws init
    > kube-aws render

    之前 kube-aws up ,我按照教程创建了证书。本教程的唯一问题是它旨在为现有集群创建新证书。因此,需要进行以下更改:
  • 此行:$ openssl req -x509 -new -nodes -key ca-key.pem -days 10000 -out ca.pem -subj "/CN=kube-ca"需要替换为:$ openssl req -x509 -new -nodes -key ca-key.pem -days 10000 -out ca.pem
  • 在 openssl.cnf 文件中,删除为 master 主机和负载均衡器定义 IP 的行,因为我们还不知道它们将是什么。最终的 openssl.cnf 应该是这样的:

  • openssl.cnf
    [req]
    ...
    [req_distinguished_name]
    [ v3_req ]
    ...
    [alt_names]
    DNS.1 = kubernetes
    DNS.2 = kubernetes.default
    DNS.3 = kubernetes.default.svc
    DNS.4 = kubernetes.default.svc.cluster.local
    DNS.5 = mydomain.net
    IP.1 = ${K8S_SERVICE_IP} # 10.3.0.1
    IP.2 = ${MASTER_IP} # 10.0.0.50

    我还为所有工作节点使用了相同的工作证书。

    证书到位后,输入 kube-aws up .

    我希望这能帮助你起步

    关于amazon-web-services - kubernetes + coreos 集群 - 替换证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38419372/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com