K8s管理应用生命周期-Deployment

在Kubernetes部署应用程序流程

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
kind: Deployment
metadata:
name: web
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: web
image: 镜像地址

等同于: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
卸载: kubectl delete -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、微服务

应用生命周期管理流程

kubernetes多少钱

第一步》部署应用

利用创建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

第二步》滚动升级

kubernetes

文章作者: 陈 武
文章链接: http://www.updatecg.xin/2021/08/27/K8s管理应用生命周期-Deployment/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 我的学习记录
打赏
  • 微信
  • 支付寶

评论