【K8S】Kubernetes从入门到实战:全面指南
Kubernetes从入门到实战:全面指南
一、Kubernetes概述
1.1 什么是Kubernetes
Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它最初由Google开发,现在由Cloud Native Computing Foundation(CNCF)维护。
1.2 Kubernetes的核心特性
- 服务发现与负载均衡:自动分配IP地址和DNS名称,并能在多个容器间分配流量
- 存储编排:自动挂载选择的存储系统(本地、公有云等)
- 自动部署与回滚:可以定义期望状态,K8s会逐步调整实际状态
- 自动装箱:根据资源需求和其他约束自动放置容器
- 自我修复:重启失败容器,替换和重新调度节点失效的容器
- 密钥与配置管理:存储和管理敏感信息
1.3 Kubernetes架构
Kubernetes集群由两部分组成:
- 控制平面(Control Plane):管理集群
- kube-apiserver:API入口
- etcd:键值存储
- kube-scheduler:调度决策
- kube-controller-manager:运行控制器
- 节点(Nodes):运行容器
- kubelet:与Control Plane通信
- kube-proxy:网络代理
- 容器运行时:如Docker、containerd
二、Kubernetes核心概念
2.1 Pod
Pod是Kubernetes中最小的可部署单元,代表集群中运行的一个或多个容器。Pod中的容器共享网络和存储资源。
apiVersion: v1
kind: Pod
metadata:name: nginx-pod
spec:containers:- name: nginx-containerimage: nginx:1.14.2ports:- containerPort: 80
2.2 Deployment
Deployment为Pod和ReplicaSet提供声明式更新,可以方便地实现滚动更新和回滚。
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deployment
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.14.2