1焙压、ClusterIP
apiVersion: v1
kind: Service
metadata:
name: base-svc-nginx
namespace: default
spec:
selector:
app: web-http
release: stable
type: ClusterIP
sessionAffinity: ClientIP
ports:
- name: nginx
port: 80
targetPort: 80
此方式只能再集群內(nèi)部訪問
sessionAffinity: ClientIP 表示客戶端會話保持鸿脓,每次調(diào)度到同一pod
2抑钟、NodePort
apiVersion: v1
kind: Service
metadata:
name: base-svc-nginx
namespace: default
spec:
selector:
app: web-http
release: stable
type: NodePort
sessionAffinity: ClientIP
ports:
- name: nginx
port: 80
targetPort: 80
nodePort: 32222
用于外部訪問,外部本機(jī)地址端口為32222
3野哭、無頭服務(wù)
apiVersion: v1
kind: Service
metadata:
name: base-svc-nginx
namespace: default
spec:
selector:
app: web-http
release: stable
type: ClusterIP
clusterIP: None
sessionAffinity: ClientIP
ports:
- name: nginx
port: 80
targetPort: 80
此方式不能通過集群IP進(jìn)行訪問
4在塔、LoadBalancer
apiVersion: v1
kind: Service
metadata:
name: base-svc-nginx
namespace: default
spec:
selector:
app: web-http
release: stable
type: LoadBalancer
sessionAffinity: ClientIP
ports:
- name: nginx
port: 80
targetPort: 80
[root@master inventory]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
base-svc-nginx LoadBalancer 10.98.35.142 <pending> 80:30234/TCP 11s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 10d
此方式適用于公有云上的 Kubernetes 服務(wù)
Kubernetes會調(diào)用 CloudProvider 在公有云上創(chuàng)建一個負(fù)載均衡服務(wù),并且把被代理的 Pod 的 IP地址配置給負(fù)載均衡服務(wù)做后端拨黔。
此方式在本地環(huán)境不能使用
5蛔溃、ExternalName
apiVersion: v1
kind: Service
metadata:
name: base-svc-nginx
namespace: default
spec:
selector:
app: web-http
release: stable
type: ExternalName
externalName: www.baidu.com
sessionAffinity: ClientIP
ports:
- name: nginx
port: 80
targetPort: 80
此方式適用于集群內(nèi)部容器訪問外部資源
6、直接分配公網(wǎng)
apiVersion: v1
kind: Service
metadata:
name: base-svc-nginx
namespace: default
spec:
selector:
app: web-http
release: stable
externalIPs:
- 168.84.68.1
sessionAffinity: ClientIP
ports:
- name: nginx
port: 80
targetPort: 80
[root@master inventory]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
base-svc-nginx ClusterIP 10.97.84.192 168.84.68.1 80/TCP 3s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 10d
此方式直接將服務(wù)發(fā)布在公網(wǎng)之上