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: null
  labels:
    app: web1                                  # deployment标签
  name: web1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: web1                                # deployment定位pod的标签
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: web1                              # delployment创建pod的标签
    spec:
      containers:
      - image: nginx
        imagePullPolicy: IfNotPresent
        name: nginx
        resources: {}
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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值