Kubernetes架构与核心概念详解

张开发
2026/5/11 21:01:33 15 分钟阅读

分享文章

Kubernetes架构与核心概念详解
Kubernetes架构与核心概念详解1. Kubernetes概述KubernetesK8s是Google开源的容器编排平台用于自动化容器化应用的部署、扩展和管理。2. Kubernetes架构2.1 控制平面组件kube-apiserverAPI服务器所有操作的入口etcd分布式键值存储保存集群状态kube-controller-manager运行控制器kube-scheduler调度Pod到节点2.2 节点组件kubelet管理Pod生命周期kube-proxy网络代理container runtime容器运行时Docker/containerd3. Pod3.1 Pod定义apiVersion: v1 kind: Pod metadata: name: nginx labels: app: nginx spec: containers: - name: nginx image: nginx:1.21 ports: - containerPort: 80 resources: limits: memory: 128Mi cpu: 500m requests: memory: 64Mi cpu: 250m3.2 多容器Podspec: containers: - name: main image: nginx - name: sidecar image: busybox command: [sh, -c, tail -f /var/log/nginx/access.log]4. Deployment4.1 Deployment定义apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.21 ports: - containerPort: 804.2 滚动更新spec: strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 05. Service5.1 ClusterIP ServiceapiVersion: v1 kind: Service metadata: name: nginx-svc spec: type: ClusterIP selector: app: nginx ports: - port: 80 targetPort: 805.2 NodePort Servicespec: type: NodePort selector: app: nginx ports: - port: 80 targetPort: 80 nodePort: 300805.3 LoadBalancer Servicespec: type: LoadBalancer selector: app: nginx ports: - port: 80 targetPort: 806. ConfigMap与Secret6.1 ConfigMapapiVersion: v1 kind: ConfigMap metadata: name: app-config data: database.url: postgres://localhost:5432 log.level: info6.2 SecretapiVersion: v1 kind: Secret metadata: name: app-secrets type: Opaque data: # echo -n password | base64 password: cGFzc3dvcmQ7. Ingress7.1 Ingress定义apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: app-ingress spec: rules: - host: app.example.com http: paths: - path: / pathType: Prefix backend: service: name: nginx-svc port: number: 807.2 TLS配置spec: tls: - hosts: - app.example.com secretName: app-tls8. 总结Kubernetes提供了完整的容器编排能力通过Pod、Deployment、Service等资源对象可以实现应用的自动化部署、扩展和管理。

更多文章