我是靠谱客的博主 糟糕鼠标,最近开发中收集的这篇文章主要介绍Kubernetes service 使用定义Kubernetes service 使用定义,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Kubernetes service 使用定义

介绍说明

• 防止Pod失联
• 定义一组Pod的访问策略
• 支持ClusterIP,NodePort以及LoadBalancer三种类型
• Service的底层实现主要有Iptables和IPVS二种网络模式

Pod与Service的关系

• 通过label-selector相关联
• 通过Service实现Pod的负载均衡( TCP/UDP 4层)

Service 定义

# 版本
apiVersion: v1
# 资源对象
kind: Service
# 元数据
metadata:
  # 指定service名称
  name: my-service
  # 命名空间
  namespace: default
spec:
  # 分配IP
  clusterIP: 10.0.0.1
  # 指定端口
  ports:
  # 端口名称
  - name: http
    # 指定service端口
    port: 80
    # service使用协议
    protocol: TCP
    # 容器端口,转发后端容器端口
    targetPort: 80
  # 标签选择器,通过标签匹配关联的pod
  selector:
    # 标签
    app: nginx

实例

1、创建service yml文件

apiVersion: v1
kind: Service
metadata:
  name: my-service
  namespace: default
spec:
  clusterIP: 10.0.0.123
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
vim service.yaml

2、创建service

kubectl apply -f service.yaml

3、查看创建的service

NAME             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
my-service       ClusterIP   10.0.0.123   <none>        80/TCP         36s
kubectl get service

4、动态感知查看分配到的Node

NAME             ENDPOINTS                                   AGE
kubernetes       192.168.1.108:6443,192.168.1.109:6443       2d16h
my-service       <none>                                      2m54s
nginx-service    172.17.1.2:80,172.17.1.3:80,172.17.1.6:80   44h
nginx-service2   <none>                                      17h
kubectl get endpoints

注:每个service对应一个ENDPOINTS控制器,service则用来关联pod。

5、查看ENDPOINTS详细信息

Name:              my-service
Namespace:         default
Labels:            <none>
Annotations:       kubectl.kubernetes.io/last-applied-configuration:
                     {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"my-service","namespace":"default"},"spec":{"clusterIP":"10.0.0.12...
Selector:          app=nginx
Type:              ClusterIP
IP:                10.0.0.123
Port:              http  80/TCP
TargetPort:        80/TCP
Endpoints:         <none>
Session Affinity:  None
Events:            <none>
kubectl describe service my-service

 

转载于:https://www.cnblogs.com/xiangsikai/p/11413876.html

最后

以上就是糟糕鼠标为你收集整理的Kubernetes service 使用定义Kubernetes service 使用定义的全部内容,希望文章能够帮你解决Kubernetes service 使用定义Kubernetes service 使用定义所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部