陈佳浩
陈佳浩
发布于 2024-08-01 / 34 阅读
0
0

Service资源使用

--- #单独起一个名称空间
apiVersion: v1      #指定api组
kind: Namespace     #指定api类型
metadata:           #元数据
  name: test        #定义名称空间名字
--- #ClusterIP仅支持南北向流量,支持集群内部访问
apiVersion: v1                          #指定api组
kind: Service                           #指定api类型
metadata:                               #元数据
  labels:                               #标签
    app: nginx                          #定义标签
  name: nginx-cp-svc                    #指定部署对象的名字
  namespace: test                       #指定名称空间
spec:                                   #指定对象规约
  ports:                                #指定service开放端口
    - name: web                         #指定端口名称
      port: 80                          #开放3306端口
      protocol: TCP                     #网络协议
  selector:                             #标签选择器
    app: nginx                          #指定标签
  type: ClusterIP
--- #LoadBalancer支持东西向和南北向流量,外部可访问的负载均衡器
apiVersion: v1                          #指定api组
kind: Service                           #指定api类型
metadata:                               #元数据
  labels:                               #标签
    app: nginx                          #定义标签
  name: nginx-lb-svc                       #指定部署对象的名字
  namespace: test                       #指定名称空间
  annotations:                          #注解
    lb.kubesphere.io/v1alpha1: openelb  #指定使用的负载均衡器
    protocol.openelb.kubesphere.io/v1alpha1: layer2   #指定使用的工作协议
    eip.openelb.kubesphere.io/v1alpha2: eip-pool      #指定使用的EIP(弹性地址池)
spec:                                   #指定对象规约
  ports:                                #指定service开放端口
    - name: web                         #指定端口名称
      port: 80                          #开放80端口
      protocol: TCP                     #网络协议
  selector:                             #标签选择器
    app: nginx                          #指定标签
  type: LoadBalancer                    #指定service类型
--- #NodePort支持东西向和南北向流量,外部可通过节点指定端口访问
apiVersion: v1                          #指定api组
kind: Service                           #指定api类型
metadata:                               #元数据
  labels:                               #标签
    app: nginx                          #定义标签
  name: nginx-no-svc                    #指定部署对象的名字
  namespace: test                       #指定名称空间
spec:                                   #指定对象规约
  ports:                                #指定service开放端口
    - name: web                         #指定端口名称
      port: 80                          #开放80端口
      protocol: TCP                     #网络协议
  selector:                             #标签选择器
    lnmp.home.com/name: nginx           #指定标签
  type: NodePort                        #指定service类型
--- #不指定selector,配合下面的Endpoints,为集群内部做正向代理
apiVersion: v1                          #指定api组
kind: Service                           #指定api类型
metadata:                               #元数据
  labels:                               #标签
    app: placjh                         #定义标签
  name: placjh-svc                      #指定部署对象的名字
  namespace: test                       #指定名称空间
spec:                                   #指定对象规约
  ports:                                #指定service开放端口
    - name: web                         #指定端口名称
      port: 80                          #开放80端口
      protocol: TCP                     #网络协议
  type: ClusterIP                       #指定service类型
--- #配合service,使集群内部pod可通过访问service到达集群外部网络
apiVersion: v1                          #指定api组
kind: Endpoints                         #指定api类型
metadata:                               #元数据
  name: placjh-svc                      #与service一致
  namespace: test                       #指定名称空间
  labels:                               #标签
    app: placjh                         #需要匹配service的标签
subsets:                                #配置要代理的集合
- addresses:                            #指定要代理的地址
  - ip: 49.232.141.141                  #指定IP
  ports:                                #指定要代理的端口
  - name: web                           #给端口命名,要与service一致
    port: 80                            #指定端口
    protocol: TCP                       #指定协议
--- #代理外部域名,类似于CNAME
apiVersion: v1                          #指定api组
kind: Service                           #指定api类型
metadata:                               #元数据
  labels:                               #标签
    app: placjh                         #需要匹配service的标签
  name: cname                           #指定部署对象的名字
  namespace: test                       #指定名称空间
spec:                                   #指定对象规约
  type: ExternalName                    #指定service类型
  externalName: www.placjh.com          #代理地址
---
apiVersion: v1          #指定api组
kind: Pod               #指定api类型
metadata:               #元数据
  name: busybox         #定义pod名字
  namespace: test-volume        #指定名称空间
  labels:               #标签
    app: busybox        #指定标签
spec:                   #指定对象规约
  containers:           #定义容器
    - name: busybox     #定义容器名字
      image: busybox:1.36       #指定镜像和版本
      command:          #pod启动命令
        - "/bin/sh"
        - "-c"
        - "sleep 3600"
      imagePullPolicy: IfNotPresent     #定义镜像拉取策略

评论