K8S Controller Deplpyment
2021/6/29 23:50:37
本文主要是介绍K8S Controller Deplpyment,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 概述与应用场景
- 什么是
Controller
- 在集群上管理和运行容器的对象
- Pod与Controller的关系
-
Pod通过Controller实现应用的运维,比如伸缩,滚动升级等等
-
Pod与Controller之间通过
label
标签建立关系
- Deployment控制器应用场景
- 部署无状态应用
- 管理Pod和ReplicaSet
- 部署,滚动升级等功能
适用于:web服务,微服务
2. 使用Deployment发布应用
使用命令生成web-deployment.yaml
kubectl create deployment web --image=nginx --dry-run -o yaml > web-deployment.yaml
# 生成的yaml apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: web name: web spec: replicas: 1 selector: matchLabels: app: web strategy: {} template: metadata: creationTimestamp: null labels: app: web spec: containers: - image: nginx name: nginx resources: {} status: {}
运行web-deployment.yaml
kubectl apply -f web-deployment.yaml
通过Service的NodePort对外暴露端口
# 生成yaml kubectl expose deployment web --port=80 --type=NodePort --target-port=80 --name=web-service --dry-run -o yaml > web-service.yaml # 执行 kubectl apply -f web-service.yaml
# 生成的yaml apiVersion: v1 kind: Service metadata: creationTimestamp: null labels: app: web name: web-service spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app: web type: NodePort status: loadBalancer: {}
删除对外暴露端口的service
kubectl get service kubectl delete service [servicename]
3. 应用升级与回滚
3.1 升级
kubectl升级
kubectl set image deployment web nginx=nginx:1.15
或者直接修改web-deployment.yaml中image的版本号
kubectl apply -f web-deployment.yaml
需要注意的是升级是基于镜像版本的升级,如果镜像版本没有变就不会做任何操作
# 查看是否升级成功 kubectl rollout status deployment web
3.2 回滚
查看历史版本
# 查看升级历史 kubectl rollout history deployment web
回退到上一个版本
kubectl rollout undo deployment web
先查看下命令
kubectl rollout undo deployment web --help
然后指定版本1进行回滚
# 执行操作 kubectl rollout undo deployment web --to-revision=1
4. 弹性伸缩
kubectl scale deployment web --replicas=10
还有更高一级的弹性伸缩,根据CPU使用量判断是否需要扩容,感觉非常适合电商公司有大促活动时,短时间流量急剧增加的情况使用
使用 Horizontal Pod Autoscaling (平滑扩展)
这篇关于K8S Controller Deplpyment的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-29一文搞定 KubeKey 3.1.1 离线部署 KubeSphere 3.4.1 和 Kubernetes v1.28
- 2024-05-29云原生周刊:K8s 上的 gRPC 名称解析和负载平衡
- 2024-05-08云原生周刊:Kubernetes v1.30 发布 | 2024.4.22
- 2024-05-08云原生周刊:K8s 中的服务和网络 | 2024.4.29
- 2024-03-29kubernetes crashloopbackoff
- 2024-03-13ubuntu install kubernetes
- 2024-03-07k8s coredns containercreating
- 2024-03-04k8s for dummies
- 2024-03-01pulumi kubernetes operator
- 2024-02-06云原生周刊:K8s 1.26 到 1.29 版本的更新 | 2024.1.29