自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

救命SOS!內(nèi)網(wǎng)K8s證書過期,我差點上了公司“恥辱墻”……

云計算 云原生
在數(shù)字化轉型浪潮下,Kubernetes已成為企業(yè)構建私有云、混合云的核心底座。然而,在金融、政務、軍工等強監(jiān)管行業(yè)的私有化交付場景中,一個“隱形殺手”正悄然潛伏——內(nèi)網(wǎng)證書過期。

引言

在數(shù)字化轉型浪潮下,Kubernetes已成為企業(yè)構建私有云、混合云的核心底座。然而,在金融、政務、軍工等強監(jiān)管行業(yè)的私有化交付場景中,一個“隱形殺手”正悄然潛伏——內(nèi)網(wǎng)證書過期。

好的,經(jīng)過我們上面的說辭,我們本篇就來處理下 K8s 證書過期的相關案例,廢話少說,直接開始。

開始

一、場景痛點與核心挑戰(zhàn)

圖片

典型場景:某金融集團私有化部署的K8s生產(chǎn)集群突現(xiàn)證書過期,導致API Server拒絕連接、kubelet節(jié)點失聯(lián)。由于以下限制,常規(guī)修復手段失效:

網(wǎng)絡隔離:集群部署于客戶內(nèi)網(wǎng),禁止任何外網(wǎng)連接

安全合規(guī):必須使用內(nèi)部CA簽發(fā)證書,禁用自簽名和Let's Encrypt

業(yè)務SLA:核心交易系統(tǒng)要求99.99%可用性,停機時間需<5分鐘

二、緊急救援:四步離線證書簽發(fā)法

步驟1:構建離線應急工具包
# 工具包目錄結構
cert-rescue-kit/
├── bin/
│   ├── cfssl_1.6.4_linux_amd64  # 證書簽發(fā)工具
│   ├── cfssljson_1.6.4_linux_amd64
│   └── k8s-cert-checker  # 證書檢查腳本
├── conf/
│   ├── ca-config.json    # CA配置文件
│   ├── ca-csr.json       # 根CSR模板
│   └── apiserver-csr.json  # API Server CSR模板
└── scripts/
    ├── backup-certs.sh   # 證書備份腳本
    └── deploy-certs.sh   # 證書部署腳本

關鍵文件說明

ca-config.json:定義證書類型與有效期

{
  "signing":{
    "default":{
      "expiry":"8760h"
    },
    "profiles":{
      "kubernetes":{
        "usages":["signing","key encipherment","server auth","client auth"],
        "expiry":"8760h"
      }
    }
}
}
步驟2:生成根CA證書(首次部署需操作)
# 生成CA私鑰與證書
./cfssl gencert -initca conf/ca-csr.json | ./cfssljson -bare ca

# 輸出文件:
# ca.pem     # CA證書
# ca-key.pem # CA私鑰(絕密?。?/code>
步驟3:簽發(fā)K8s組件證書

API Server證書示例

# 生成私鑰
openssl genrsa -out apiserver.key 2048

# 生成CSR(需替換實際IP和DNS)
./cfssl gencert \
  -ca=ca.pem \
  -ca-key=ca-key.pem \
  -cnotallow=conf/ca-config.json \
  -hostname=10.0.0.1,kubernetes.default.svc,kubernetes.default,localhost,127.0.0.1 \
  -profile=kubernetes \
  conf/apiserver-csr.json | ./cfssljson -bare apiserver

關鍵參數(shù)說明

-hostname:必須包含所有API Server的IP和DNS名稱

-profile:匹配ca-config.json中的策略

步驟4:集群證書熱替換
# 1. 備份原證書
./backup-certs.sh /etc/kubernetes/pki

# 2. 部署新證書
cp apiserver.pem /etc/kubernetes/pki/
cp apiserver-key.pem /etc/kubernetes/pki/

# 3. 滾動重啟控制平面組件
systemctl restart kube-apiserver kube-controller-manager kube-scheduler

# 4. 更新kubeconfig證書
sed -i 's/client-certificate:.*/client-certificate: \/etc\/kubernetes\/pki\/apiserver.pem/' /etc/kubernetes/admin.conf

操作風險提示

? 需按順序重啟組件:API Server → Controller Manager → Scheduler

? 生產(chǎn)環(huán)境建議逐個節(jié)點滾動替換

三、長效機制:自動化證書生命周期管理

方案架構設計

圖片圖片

核心組件選型

組件

功能

推薦工具

證書簽發(fā)

創(chuàng)建和管理X.509證書

HashiCorp Vault

輪換控制

監(jiān)控證書有效期并觸發(fā)更新

Cert-Manager + Prometheus

密鑰存儲

安全存儲CA私鑰

Vault KMIP引擎

審計跟蹤

記錄所有證書操作日志

ELK Stack

Cert-Manager自動化配置
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: vault-issuer
spec:
  vault:
    path: pki/sign/k8s-cluster
    server: https://vault.example.com
    caBundle: LS0tLS1CRUdJ...  # Base64編碼的CA證書
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: apiserver-cert
spec:
  secretName: apiserver-tls
  duration: 2160h  # 90天
  renewBefore: 360h # 提前15天續(xù)期
  issuerRef:
    name: vault-issuer
    kind: ClusterIssuer
  dnsNames:
    - kubernetes.default.svc.cluster.local
    - k8s-api.example.com

關鍵參數(shù)

renewBefore:設置早于證書過期時間觸發(fā)續(xù)期

duration:證書有效期,需符合企業(yè)安全策略

證書監(jiān)控告警規(guī)則
# Prometheus告警規(guī)則
-alert:K8sCertificateExpiry
expr:kubelet_server_certificate_expiration_seconds{job="kubelet"}/86400<30
for:10m
labels:
    severity:critical
annotations:
    summary:"證書 {{ $labels.host }} 將在30天內(nèi)過期"
    description: "證書路徑: {{ $labels.path }}"

四、合規(guī)審計與災備設計

審計檢查清單

1. 私鑰安全

  • 所有私鑰文件權限設置為0400
  • 密鑰存儲啟用Vault動態(tài)密鑰加密

2. 證書信息合規(guī)

# 驗證證書DN信息
openssl x509 -in /etc/kubernetes/pki/apiserver.pem -noout -subject -issuer
# 期望輸出:
# subject=O = k8s-cluster, CN = kube-apiserver
# issuer=O = Internal CA, CN = k8s-root-ca

3. 輪換記錄可追溯

-- 證書操作日志表結構示例
CREATE TABLE cert_audit (
  id INT PRIMARY KEY,
  cert_name VARCHAR(255),
  action_type ENUM('CREATE','UPDATE','REVOKE'),
  expire_date DATETIME,
  operator VARCHAR(64),
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
跨集群災備方案

1. 冷備份證書

# 定期導出證書和密鑰
kubectl get secret apiserver-tls -o jsnotallow='{.data.tls\.crt}' | base64 -d > backup/apiserver-$(date +%Y%m%d).crt

2. 多CA互信架構

# K8s API Server配置多CA
apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-apiserver-ca
data:
  ca-bundle.crt: |
    -----BEGIN CERTIFICATE-----
    # Primary CA
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    # Backup CA
    -----END CERTIFICATE-----

五、實戰(zhàn)案例:某銀行私有云證書事件復盤

背景

? 集群規(guī)模:200節(jié)點,運行300+微服務

? 故障現(xiàn)象:控制平面證書過期導致調(diào)度器失聯(lián)

處置過程

1. 緊急處置

  • 通過預置的離線工具包在15分鐘內(nèi)完成證書替換
  • 使用Ansible劇本批量滾動重啟組件

2. 根因分析

? 原手動管理證書未設置監(jiān)控告警

? 證書有效期僅設置為1年,未及時續(xù)期

3. 改進措施

? 部署Cert-Manager實現(xiàn)全自動輪換

? 建立雙CA互信機制,支持無縫切換

成果

? 證書相關故障MTTR(平均修復時間)從4小時降至5分鐘

? 全年未發(fā)生證書過期導致的業(yè)務中斷

六、總結與資源

核心要點

緊急救援:標準化離線工具包 + 熱替換腳本

長期治理:自動化輪換 + 雙活CA架構

合規(guī)審計:密鑰生命周期全記錄 + 定期穿透測試

資源推薦

HashiCorp Vault K8s指南[1]

Cert-Manager官方文檔[2]

K8s證書管理白皮書[3]

立即行動

# 獲取離線應急工具包
git clone https://github.com/k8s-cert/rescue-kit.git
cd rescue-kit && ./init.sh

通過這套方案,你的K8s集群將具備軍工級證書管理能力,從容應對最嚴苛的私有化交付場景。

責任編輯:武曉燕 來源: 云原生運維圈
相關推薦

2022-12-28 10:52:34

Etcd備份

2022-04-22 13:32:01

K8s容器引擎架構

2023-11-06 07:16:22

WasmK8s模塊

2020-07-22 09:25:11

DockerK8S云計算

2023-09-06 08:12:04

k8s云原生

2025-03-19 08:00:08

2024-12-06 08:00:00

K8s

2020-05-12 10:20:39

K8s kubernetes中間件

2022-09-05 08:26:29

Kubernetes標簽

2023-08-03 08:36:30

Service服務架構

2023-08-04 08:19:02

2023-05-25 21:38:30

2025-03-19 08:01:10

Kubernetes集群源碼

2020-02-04 16:37:17

k8s 相關應用

2019-11-14 09:55:39

K8S架構微服務

2022-12-07 17:33:50

K8Skubernetes

2021-04-12 20:42:50

K8S端口內(nèi)存

2021-12-03 06:29:56

K8sDubboSpring

2022-12-06 07:30:12

K8s云原生生態(tài)系統(tǒng)

2024-01-26 14:35:03

鑒權K8sNode
點贊
收藏

51CTO技術棧公眾號