⒈介绍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