当前位置: 首页 > news >正文

Kubernetes之服务的基本管理

  • svc是kubernetes最核心的概念,通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求进行负载分发到后端的各个容器应用上。
  • pod生命周期短不稳定,pod异常后新生成的pod的IP会发生变化,通过Service对pod做代理,Service具有固定的IP和Port,service会自动关联后端pod,即使pod发生改变,Kubernetes内部会自动更新这组关系。如果deployment创建了多个副本,Service代理多个pod,所有发送给svc1的请求,都会转发给后端的pod,pod数目越多,每个pod的负载就越低,vc将请求发送给后端的pod,是由kube-proxy组件来实现的。
  • svc是通过标签来定位pod的,deployment创建出来的pod都具有相同的标签,所以一个pod挂掉了,deployment会马上生成一个具有相同标签的pod,此时svc能立即定位到新的pod,如果deployment创建了多个副本,svc也能立即定位到这些pod。

服务的基本管理

  • 创建一个deployment的yaml文件
mkdir svc
cd svc
kubectl create deployment web1 --image=nginx --dry-run=client -o yaml > web1.yaml

在这里插入图片描述

  • 修改镜像下载策略和标签内容,yaml文件内容如下
apiVersion: apps/v1
kind: Deployment
metadata:creationTimestamp: nulllabels:app: web1                                  # deployment标签name: web1
spec:replicas: 1selector:matchLabels:app: web1                                # deployment定位pod的标签strategy: {}template:metadata:creationTimestamp: nulllabels:app: web1                              # delployment创建pod的标签spec:containers:- image: nginximagePullPolicy: IfNotPresentname: nginxresources: {}
status: {}
  • 创建deployment,并查看状态
kubectl apply -f web1.yaml
kubectl get deployment -o wide

在这里插入图片描述

  • 基于deployment创建svc并查看服务,不使用--name指定服务名,则保持和deployment名字一致。--port指服务端口, --target-port是后端pod运行服务的端口。当基于pod创建svc时,如果pod有多个标签,使用--selector=app=web1可以指定根据哪个标签来定位pod。
kubectl expose deployment web1 --name=web1 --port=80 --target-port=80
kubectl get service -o wide

在这里插入图片描述

  • 查看svc详细内容,Endpoints为后端pod的IP
kubectl describe svc web1

在这里插入图片描述

  • 删除svc
kubectl delete svc web1

在这里插入图片描述

  • 用命令行生成svc的yaml文件,并查看
kubectl expose deployment web1 --name=web1 --port=80 --target-port=80 --dry-run=client -o yaml > svc1.yaml
vi svc1.yaml

在这里插入图片描述

  • 使用yaml文件创建svc,并查看服务
kubectl apply -f svc1.yaml
kubectl get svc

在这里插入图片描述

  • 删除服务
kubectl delete -f svc1.yaml

在这里插入图片描述

http://www.lryc.cn/news/20382.html

相关文章:

  • TimeWheel时间轮算法原理及实现(附源码)
  • 【蓝牙mesh】Upper协议层介绍
  • NEXUS 6P刷机安装Edxposed
  • web、ES、vue等知识总结
  • 数据库第一章(王珊课后习题)
  • 设计模式(十一)----结构型模式之装饰者模式
  • lighthouse的介绍和基本使用方法
  • 分布式算法 - Raft算法
  • Python|每日一练|链表|双指针|数组|递归|图算法|单选记录:删除链表的倒数第 N 个结点|下一个排列|迷宫问题
  • 天线理论知识2——宽带天线介绍
  • 【计组笔记05】计算机组成与原理之虚拟存储器、指令系统、中央处理器CPU
  • 多功能土壤速测仪功能介绍
  • 《设计模式》命令模式
  • 开源物联网平台有哪些?
  • Tesla Autopilot,处理器和硬件
  • jianzhiOffer第二版难重点记录
  • C语言 | 问题20230225
  • 【机器学习笔记】Python基础笔记
  • js-DOM03-DOM对CSS的操作
  • tun驱动之tun_init
  • 模拟退火算法优化bp
  • 【NFC音乐相册】简易制作
  • 每日一题——L1-085 试试手气(15)
  • FreeRTOS信号量
  • Leetcode.2385 感染二叉树需要的总时间
  • [蓝桥杯 2022 国 B] 卡牌(贪心/二分)
  • 1301:大盗阿福
  • Netty——序列化的作用及自定义协议
  • 一起Talk Android吧(第五百零五回:如何调整组件在约束布局中的大小)
  • 【数据库】数据库的完整性