https://www.cnblogs.com/fuyuteng/p/11598768.html
virtual
watch 监视
# service的三种代理模式
userspace 1.1
iptables 1.10
IPvs 1.11
service类型
默认 ClusterIP, (内部IP)
NodePort client——NodeIP:NodePort---ClusterIP:ServicePort---PodIP:containerPort
LoadBalancer 公有云使用
ExternalName 让集群内部可以访问外部服务
No ClusterIP Headless Service
ServiceName —— PodIP
# ----------------------------------------------------------------------------------------------------------------------------------------------
apiVersion: v1
kind: Service
metadata:
name: svc-myapp01
namespace: default
spec:
selector:
name: myapp01
release: canary01
ports:
- name: http
targetPort: 80
port: 80
# ---------------------------------------------------
apiVersion: v1
kind: Service
metadata:
name: redis-2
namespace: default
spec:
selector:
app: redis
role: logstor
type: NodePort
ports:
- port: 6379
targetPort: 6379
# 不指定会随机分配
nodePort: 30079
# ---------------------------------------------------
apiVersion: v1
kind: Service
metadata:
name: redis-3
namespace: default
spec:
selector:
app: redis
role: logstor
type: LoadBalancer
ports:
- port: 6379
targetPort: 6379
# ---------------------------------------------------
apiVersion: v1
kind: Service
metadata:
name: redis-4
namespace: default
spec:
selector:
app: redis
role: logstor
clusterIP: None
ports:
- port: 6379
targetPort: 6379
# ----------------------------------------------------------------------------------------------------------------------------------------------
[root@m1 k8s]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.0.0.1 443/TCP 19d
redis-1 ClusterIP 10.15.189.180 6379/TCP 5m57s
redis-3 LoadBalancer 10.0.94.75 6379:32737/TCP 5m51s
redis-4 ClusterIP None 6379/TCP 2m51s
# ----------------------------------------------------------------------------------------------------------------------------------------------
dig -t A redis-4.default.svc.cluster.local @10.0.0.10