⒈介紹node
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deploy
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: myapp
release: stabel
template:
metadata:
1abels:
app: myapp
release: stabel
env: test
spec:
containers:
- name: myapp
image: fanqisoft/myapp:v2
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80
apiVersion: v1
kind: Service
metadata:
name: myapp
namespace: default
spec:
type: ClusterIP
selector:
app: myapp
release: stabel
ports:
- name: http
port: 80
targetPort: 80
apiVersion: v1
kind: Service
metadata:
name: myapp-headless
namespace: default
spec:
selector:
app: myapp
clusterIP: "None"
ports:
- port: 80
targetPort: 80
2.NodePort算法
apiVersion: v1
kind: Service
metadata:
name: myapp
namespace: default
spec:
type: NodePort
selector:
app: myapp
release: stabel
ports:
- name: http
port: 80
targetPort: 80
#查詢流程 iptables -t nat -nvL KUBE-NODEPORTS
3.LoadBalancer後端
loadBalancer和nodePort 實際上是同一種方式。區別在於 loadBalancer 比nodePort多了一步,就是能夠調用cloud provider【雲供應商】 去建立LB【負載均衡】來向節點導流api
4.ExternalName緩存
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: default
spec:
type: ExternalName
externalName: hub.coreqi.cn
#查看ipvs代理規則
ipvsadm -Ln