yaml格式的service定义文件完整内容
apiVersion: v1kind: Servicematadata: #元数据name: string #service的名称namespace: string #命名空间labels: #自定义标签属性列表- name: stringannotations: #自定义注解属性列表- name: stringspec: #详细描述selector: [] #label selector配置,将选择具有label标签的Pod作为管理 范围type: string #service的类型,指定service的访问方式,默认为clusterIpclusterIP: string #虚拟服务地址sessionAffinity: string #是否支持sessionports: #service需要暴露的端口列表- name: string #端口名称protocol: string #端口协议,支持TCP和UDP,默认TCPport: int #服务监听的端口号targetPort: int #需要转发到后端Pod的端口号nodePort: int #当type = NodePort时,指定映射到物理机的端口号status: #当spce.type=LoadBalancer时,设置外部负载均衡器的地址loadBalancer: #外部负载均衡器ingress: #外部负载均衡器ip: string #外部负载均衡器的Ip地址值hostname: string #外部负载均衡器的主机名
外部服务service
将一个外部服务(数据库等)作为后端服务进行连接
---kind: ServiceapiVersion: v1metadata:name: mysql-testspec:ports:- protocol: TCPport: 3306targetPort: 3306---kind: EndpointsapiVersion: v1metadata:name: mysql-testsubsets:- addresses:- ip: 10.24.2.191 //只能IP,不能是域名ports:- port: 3306
验证,在pod里面telnet 域名和端口
---apiVersion: extensions/v1beta1kind: Ingressmetadata:name: xintuo-jenkins-1070941479annotations:nginx.ingress.kubernetes.io/ssl-redirect: "false"nginx.ingress.kubernetes.io/rewrite-target: /xintuospec:rules:- host: ci.hundsun.comhttp:paths:- path: /xintuobackend:serviceName: xintuo-jenkins-1070941479-webservicePort: 8080---apiVersion: v1kind: PersistentVolumemetadata:name: xintuo-jenkins-1070941479labels:pv: xintuo-jenkins-1070941479spec:capacity:storage: 200GiaccessModes:- ReadWriteManynfs:path: /data/JENKINS_HOME/xintuoserver: 192.168.102.234---kind: PersistentVolumeClaimapiVersion: v1metadata:name: xintuo-jenkins-1070941479labels:pv: xintuo-jenkins-1070941479spec:accessModes:- ReadWriteManyresources:requests:storage: 200Giselector:matchLabels:pv: xintuo-jenkins-1070941479---#Jenkins的web服务和slave服务apiVersion: v1kind: Servicemetadata:name: xintuo-jenkins-1070941479-weblabels:name: jenkins-1070941479spec:ports:- name: webport: 8080selector:name: jenkins-1070941479---apiVersion: v1kind: Servicemetadata:name: xintuo-jenkins-1070941479-slavelabels:name: jenkins-1070941479spec:type: NodePortports:- name: slaveport: 38830nodePort: 38830selector:name: jenkins-1070941479---#Jenkins的容器apiVersion: apps/v1kind: Deploymentmetadata:name: xintuo-jenkins-1070941479spec:replicas: 1selector:matchLabels:name: "jenkins-1070941479"template:metadata:labels:"name": "jenkins-1070941479"spec:affinity:podAntiAffinity:preferredDuringSchedulingIgnoredDuringExecution:- weight: 100podAffinityTerm:labelSelector:matchExpressions:- key: "name"operator: Invalues:- "jenkins-1070941479"topologyKey: kubernetes.io/hostnamenodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- ci-k8s-worker04containers:- name: jenkinsimage: registry.hundsun.com/jenkins/jenkins-common:centos7.6_ver2.153imagePullPolicy: IfNotPresentlifecycle:postStart:exec:command: ["/bin/sh", "-c", "mv /opt/apache-tomcat-9.0.0.M9/webapps/jenkins.war /opt/apache-tomcat-9.0.0.M9/webapps/xintuo.war"]resources:requests:cpu: 0memory: 0limits:cpu: 0memory: 0ports:- containerPort: 8080name: web- containerPort: 38830name: slavevolumeMounts:- name: datamountPath: /var/jenkins- name: timezonemountPath: /etc/localtimereadOnly: truevolumes:- name: datapersistentVolumeClaim:claimName: xintuo-jenkins-1070941479- name: timezonehostPath:path: /etc/localtime
