博客
关于我
kubernetes1.5.2集群部署过程--安全模式
阅读量:792 次
发布时间:2023-01-29

本文共 3892 字,大约阅读时间需要 12 分钟。

Kubernetes 安全版集群部署指南

在 Kubernetes 生产环境中安全可靠地部署集群至关重要。本文将详细介绍如何在 CentOS 7 �arestates 系统上安全地部署带有SSL 保证的 Kubernetes 集群。我们将利用 cfssl 工具进行内置 CA 证书管理,确保所有组件间通信安全,有效防止非授权访问。


环境配置

  • 宿主机配置

    CentOS 7.3.1611,Selinux 关闭,Etcd 3.1.9,Flannel 0.7.1,Docker 1.12.6,Kubernetes 1.5.2。

  • 网络设备

    提供内部网络 192.168.20.0/24,使用 Flannel 进行网络管理。(详细网络配置可参考下文)


软件安装

通过 Yum 安装以下软件包:

yum install etcd kubernetes kubernetes-client kubernetes-master kubernetes-node flannel docker docker-devel docker-client docker-common -y

证书部署

我们将使用 cfssl 工具进行证书管理。以下是主要步骤:

cfssl 安装

下载并安装 cfssl 工具:

wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64chmod a+x cfssl* mv cfssl-certinfo_linux-amd64 cfssl-certinfomv cfssl_linux-amd64 cfsslmv cfssljson_linux-amd64 cfssljson

CA 证书签发与配置

  • 生成 CA 证书
    通过 ca-config.json 定义 CA 签名配置:
    {  "signing": {    "default": {      "expiry": "87600h"    // 证书有效期为 30 天    }  },  "profiles": {    "kubernetes": {      "usages": [        "signing",        "key encipherment",        "server auth",        "client auth"      ],      "expiry": "87600h"    }  }}

    使用以下命令签发 CA 证书:

    cfssl gencert -initca ca-csr.json | cfssljson -bare ca
  • ");

    2. **签发 Kubernetes 组件证书**  - **kube-master 证书**:    定义服务相关 IP 或域名,并签发证书。    ```bash  cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes kube-master-csr.json | cfssljson -bare kube-master  ```- **kubelet 证书**:    定义节点相关 IP 或域名,签发 kubelet 证书。    ```bash  cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes kubelet-csr.json | cfssljson -bare kubelet  ```- **Etcd 命名证书**:    标记 Etcd 成员证书,用于集群通信。    ```bash  cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes etcd-member-csr.json | cfssljson -bare etcd-member  ```### 证书校验使用 `cfssl-certinfo` 工具验证证书内容,确保所有证书字段正确无误。### 证书分发将生成的证书分发到相应服务器:- Etcd 证书:拷贝到 `/etc/ssl/etcd` 目录,权限设置为 `etcd:etcd`。- Kubernetes 组件证书:拷贝到 `/etc/ssl/kube` 目录,权限设置为 `kube:kube`。- Etcd 客户端证书:拷贝到所有节点客户端,确保通信顺畅。---## Kubernetes 集群配置### Etcd 部署配置 Etcd 服务文件:  ```bash# etcd.conf [member]ETCD_NAME=kube-masterETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_CLIENT_URLS="https://192.168.20.128:2379, http://localhost:2379, http://localhost:4001"[cluster]ETCD_ADVERTISE_CLIENT_URLS="https://192.168.20.128:2379"[security]ETCD_CERT_FILE="/etc/ssl/etcd/etcd-client.pem"ETCD_KEY_FILE="/etc/ssl/etcd/etcd-client-key.pem"ETCD_CLIENT_CERT_AUTH="true"ETCD_TRUSTED_CA_FILE="/etc/ssl/etcd/ca.pem"

    启动 Etcd 服务:

    service etcd start

    Flannel 部署

    配置 Flannel 网络:

    将以下内容写入 /etc/sysconfig/flanneld

    FLANNEL_ETCD_ENDPOINTS="https://192.168.20.128:2379 --etcd-cafile=/etc/ssl/kube/ca.pem --etcd-certfile=/etc/ssl/kube/etcd-client.pem --etcd-keyfile=/etc/ssl/kube/etcd-client-key.pem"FLANNEL_ETCD_PREFIX="/k8s.io"

    启动 Flannel 服务:

    systemctl start flanneld

    创建 Flannel 网络:

    etcdctl --ca-file=/etc/ssl/etcd/ca.pem --cert-file=/etc/ssl/etcd/etcd-client.pem --key-file=/etc/ssl/etcd/etcd-client-key.pem mk /k8s.io/metadata/config '{"network": "192.168.0.0/16"}'

    Kubernetes 组件部署

    Controller Manager 配置

    • 配置文件路径:/etc/kubernetes/controller-manager
      示例配置文件:
      KUBE_CONTROLLER_MANAGER_ARGS="--service-account-private-key-file=/etc/ssl/kube/kube-master-key.pem --root-ca-file=/etc/ssl/kube/ca.pem --master=http://localhost:8080"

    API Server 配置

    • 配置文件路径:/etc/kubernetes/apiserver
      示例配置文件:
      --insecure-bind-address=127.0.0.1--basic-auth-file=/etc/kubernetes/useraccount.csv--etcd-servers=https://192.168.20.128:2379--etcd-cafile=/etc/ssl/kube/ca.pem--etcd-certfile=/etc/ssl/kube/etcd-client.pem--etcd-keyfile=/etc/ssl/kube/etcd-client-key.pem

      启动 API Server:

      systemctl restart kube-apiserver

    Nodes 配置

    • 配置文件路径:/etc/kubernetes/kubelet
      示例配置文件:
      KUBELET_ADDRESS=0.0.0.0KUBELET_PORT=10250KUBELET_HOSTNAME=kube-node-01

      启动 kubelet 服务:

      systemctl restart kubelet

    ##سلام،欢迎访问我的个人博客 就.gsubstack.com. 如果您有任何问题或需要进一步帮助,请随时联系我!

    转载地址:http://ooryk.baihongyu.com/

    你可能感兴趣的文章
    10款最佳免费WiFi黑客工具(附传送门)零基础入门到精通,收藏这一篇就够了
    查看>>
    15个备受欢迎的嵌入式GUI库,从零基础到精通,收藏这篇就够了!
    查看>>
    15个程序员常逛的宝藏网站!!从零基础到精通,收藏这篇就够了!
    查看>>
    1分钟学会在Linux下模拟网络延迟
    查看>>
    2023应届毕业生找不到工作很焦虑怎么办?
    查看>>
    2023最新版Node.js下载安装及环境配置教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    2023网络安全现状,一个(黑客)真实的收入
    查看>>
    2024 年需要了解的顶级大数据工具(非常详细)零基础入门到精通,收藏这一篇就够了
    查看>>
    2024 最新 Kali Linux 定制化魔改,完整版,添加常见60渗透工具,零基础入门到精通,收藏这篇就够了
    查看>>
    2024大模型行业应用十大典范案例集(非常详细)零基础入门到精通,收藏这一篇就够了
    查看>>
    2024届秋招让我(985本硕)直接破防,感觉书读了这么久结果毫无意义,读书就只为了读书,我该怎么办?
    查看>>
    2024年全球顶尖杀毒软件,从零基础到精通,收藏这篇就够了!
    查看>>
    2024年度“金智奖”揭晓:绿盟科技获双项大奖,创新驱动网络安全新高度。从零基础到精通,收藏这篇就够了!
    查看>>
    2024年最流行的十大开源渗透测试工具
    查看>>
    2024年网络安全八大前沿趋势,零基础入门到精通,收藏这篇就够了
    查看>>
    2024年薪酬最高的五个网络安全职位,零基础入门到精通,收藏这一篇就够
    查看>>
    2024年非科班的人合适转行做程序员吗?
    查看>>
    2024数字安全创新性案例报告,从零基础到精通,收藏这篇就够了!
    查看>>
    2024最新最全CTF入门指南(非常详细)零基础入门到精通,收藏这一篇就够了
    查看>>
    2024最新科普什么是大模型?零基础入门到精通,收藏这篇就够了
    查看>>