Service

1、存在的意义

(1)防止Pod失联(服务发现)因为Pod的IP可能因为Pod升级或回滚而发生IP变更

        通过service找到具体Pod具体的IP再去访问

(2)定义一组Pod访问策略(负载均衡)

2、Pod和Service之间的关系

根据label和selector标签建立关联的

通过service实现Pod的负载均衡

vip 虚拟ip

常用service类型

kubectl expose --help    # 暴露服务帮助文档

(1)clusterIP:集群内部使用

(2)NodePort:对外访问应用使用

(3)LoadBalancer:对外访问应用使用,公有云

node内网部署应用,外网一般不能访问到

* 找到一台可以进行外网访问机器,安装nginx,反向代理

** 手动把可以访问节点添加到nginx里面

Loadbalancer:公有云,负载均衡,控制器

 

3、无状态和有状态

(1)无状态:

    * 认为Pod都是一样的

    * 没有顺序要求

    * 不用考虑在哪个node上运行

    * 随意进行伸缩和扩展

(2)有状态:

   * 上面因素都需要考虑到

  *  让每个Pod独立,保持Pod启动顺序和唯一性

**  唯一的网络标识符,持久存储

** 有序,比如mysql主从

4、 部署有状态应用

* 无头service 

** ClusterIP: none

(1)StatefulSet部署有状态应用

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None            # 无头service
  selector:
    app: nginx

---

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: nginx-statefulset
  namespace: default
spec:
  serviceName: nginx
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

* deployment和statefulset区别: 有身份的(唯一标识的)

  * 根据主机名+按照一定的规则生成域名

* 每个Pod有唯一主机名

* 唯一域名   格式: 主机名.service名称.名称空间.svc.cluster.local

nginx-statefulset-0.nginx.default.svc.cluster.local

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值