<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Talk with API Server :: Ay Docs</title>
    <link>https://ops.docs.72602.space/using/k8s/talk_with_api-server/index.html</link>
    <description>Kubernetes 各模块与 API Server 通信详解 这是理解 Kubernetes 架构的核心问题。API Server 是整个集群的&#34;大脑&#34;,所有组件都通过它进行通信。&#xA;🎯 Kubernetes 通信架构总览 ┌─────────────────────────────────────────────────────────┐ │ API Server (核心) │ │ - RESTful API (HTTP/HTTPS) │ │ - 认证、授权、准入控制 │ │ - etcd 唯一入口 │ └───────┬─────────────────┬─────────────────┬─────────────┘ │ │ │ ┌───▼───┐ ┌───▼───┐ ┌───▼────┐ │Kubelet│ │Scheduler│ │Controller│ │(Node) │ │ │ │ Manager │ └───────┘ └─────────┘ └──────────┘ │ ┌───▼────┐ │kube-proxy│ └────────┘ 🔐 通信基础:认证、授权、准入 1. 认证 (Authentication) 所有组件访问 API Server 必须先通过认证。&#xA;常见认证方式 认证方式 使用场景 实现方式 X.509 证书 集群组件(kubelet/scheduler) 客户端证书 ServiceAccount Token Pod 内应用 JWT Token Bootstrap Token 节点加入集群 临时 Token 静态 Token 文件 简单测试 不推荐生产 OIDC 用户认证 外部身份提供商 X.509 证书认证示例 # 1. API Server 启动参数包含 CA 证书 kube-apiserver \ --client-ca-file=/etc/kubernetes/pki/ca.crt \ --tls-cert-file=/etc/kubernetes/pki/apiserver.crt \ --tls-private-key-file=/etc/kubernetes/pki/apiserver.key # 2. Kubelet 使用客户端证书 kubelet \ --kubeconfig=/etc/kubernetes/kubelet.conf \ --client-ca-file=/etc/kubernetes/pki/ca.crt # 3. kubeconfig 文件内容 apiVersion: v1 kind: Config clusters: - cluster: certificate-authority: /etc/kubernetes/pki/ca.crt # CA 证书 server: https://192.168.1.10:6443 # API Server 地址 name: kubernetes users: - name: system:node:worker-1 user: client-certificate: /var/lib/kubelet/pki/kubelet-client.crt # 客户端证书 client-key: /var/lib/kubelet/pki/kubelet-client.key # 客户端密钥 contexts: - context: cluster: kubernetes user: system:node:worker-1 name: default current-context: default ServiceAccount Token 认证 # Pod 内自动挂载的 Token cat /var/run/secrets/kubernetes.io/serviceaccount/token # eyJhbGciOiJSUzI1NiIsImtpZCI6Ij... # 使用 Token 访问 API Server TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token) curl -k -H &#34;Authorization: Bearer $TOKEN&#34; \ https://kubernetes.default.svc/api/v1/namespaces/default/pods 2. 授权 (Authorization) 认证通过后,检查是否有权限执行操作。</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate></lastBuildDate>
    <atom:link href="https://ops.docs.72602.space/using/k8s/talk_with_api-server/index.xml" rel="self" type="application/rss+xml" />
  </channel>
</rss>