文章目录
- 云原生
- 云原生历程
- 云原生技术范畴
- 云原生与传统部署
- 云原生关键技术
- 传统vs微服务vsServerless
- Serverless
- 容器
- 分层复用模式
- 容器运行
- 构建镜像
- 容器引擎架构-moby
- 容器和VM之间的差异
- Kubernetes
- 调度
- 自动恢复
- 水平伸缩
- 总架构
- Master架构
- Node架构
- Pod一个kubernet架构
- Volume
- Deployment
- Service
- Namespace
- API
- API-Label
- 实验
- 安装MinKube
- 部署命令
- 常用命令
云原生
云原生历程
云原生技术范畴
云原生与传统部署
云原生关键技术
传统vs微服务vsServerless
Serverless
容器
容器,是一个视图隔离、资源可限制、独立文件系统的进程集合,
视图隔离-如能看见部分进程;独立主机名 等等;
控制资源使用率:如2G内存大小: CPU 使用个数等等
分层复用模式
容器运行
构建镜像
## 容器生命周期
单进程模型
- Init 进程生命周期 = 容器生命周期
- 运行期间可运行exec 执行运维操作
数据持久化
- 独立于容器的生命周期
- 数据卷 -docker volume vs bind
容器引擎架构-moby
容器和VM之间的差异
Kubernetes
- Kubernetes 源于希腊语,意为“舵手”或“飞行员
- k8s 是通过将8个字母“Kubernete” 替换为8而导出的缩写
- 工业级容器编排平台
调度
根据容器大小、计算资源、把容器分布到不同机器
自动恢复
机器故障,自动将容器分布到健康的机器上。
水平伸缩
如果黄颜色业务忙碌,自动将黄颜色容器负载均衡到其他机器上。
总架构
Master架构
- CLI控制端命令
- API Server:所有组建与其建立连接,用于组建间的消息的传送
- Controller:控制水平伸缩、恢复的功能
- Scheduler:调度器,控制容器调度
- etcd:资源管理存储
- Node:节点
Node架构
- Node:包括多个Pod
- Pod:运行一个或多个容器,最小的调度以及资源单元。由一个或者多个容器组成。定义容器运行的方式Command、环境变量等提供给容器共享的运行环境(网络、进程空间)
Pod一个kubernet架构
Volume
Deployment
Service
Namespace
API
API-Label
实验
安装MinKube
部署命令
常用命令
# 查看状态
minikube status
# 获取node
kubectl get nodes
# 获取deployments
kubectl get deployments
# 实时查看deployments
kubectl get --watch deployments
# 根据deployment.yaml部署
kubectl apply -f deployment.yaml
# 查看已经部署
kubectl describe deployment nginx-deployment
# 删除
kubectl delete deployment nginx-deployment
deployments.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2 # tells deployment to run 2 pods matching the template
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80