在Kubernetes部署应用程序流程
使用Deployment部署Java应用
- 制作镜像利用镜像部署
使用Deployment控制器部署镜像
kubectl create deployment web --image=镜像地址
kubectl get deployment,pods使用Service发布Pod
kubectl expose deployment web --port80 --type=NodePort --target-port=8080 --name=web
kubectl get service
服务编排
YAML文件格式说明
K8s是一个容器编排引擎,使用YAML文件编排要部署应用,因此在学习之前,应先了解YAML语法格式:
- 缩进表示层级关系
- 不支持制表符”tab”缩进,需使用空格缩进
- 通常开头缩进2个空格
- 字符后缩进1个空格,如冒号、逗号等
- “—“ 表示YAML格式,一个文件的开始
- “#” 注释
YAML文件创建资源对象
apiVersion: apps/v1 |
等同于:kubectl create deployment web –image=镜像地址 –replicas=3 -n default
标签描述:
标签key | 含义 |
---|---|
apiVersion | API版本 |
kind | 资源类型 |
metadata | 资源元数据 |
spec | 资源规格 |
replicas | 副本数 |
selector | 标签选择器,下面metadata.labels保持一致 |
template | Pod模板 |
metadata | Pod元数据 |
spec | pod规格 |
containers | 容器配置 |
部署卸载
部署: kubectl apply -f xxx.yaml |
资源字段太多,记不住怎么办?
用get命令导出
kubectl get deployment nginx -o yaml > my-deploy.yaml
Pod容器的字段拼写忘记了
kubectl explain pods.spec.containers
kubectl explain deployment
Deployment介绍
Deployment是最常用的K8s工作负载控制器(Workload Controllers),是K8s的一个抽象概念,用于更高级层次对象,部署和管理Pod。其他控制器还有DaemonSet、StatefulSet等。
主要功能
- 管理Pod和ReplicaSet
- 具体上线部署、副本设定、滚动升级、回滚等功能
- 提供声明式更新、例如只更新一个新的Image
应用场景
网站、API、微服务
应用生命周期管理流程
多少钱
第一步》部署应用
利用创建nginx为模板,创建nginx.yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: web
image: nginx:1.16
执行创建yaml命令kubectl apply -f nginx.yaml
不使用yaml文件创建kubectl create deployment web --image=nginx:1.16 --replicas=3