k8s发布端口
镜像中程序端口为8088
启动后需要映射到公网
====================================================================
vim codeus-abc-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: codeus-abc-apps
labels:
app: codeus-abc
spec:
selector:
matchLabels:
app: codeus-abc
replicas: 2
template:
metadata:
labels:
app: codeus-abc
spec:
imagePullSecrets:
- name: registry-key
containers:
- name: codeus-abc
image: xxxxx/codeus-abc/codeus-abc-1.0.52:latest
ports:
- containerPort: 8088
================================================================================
vim codeus-abc-service.yam
apiVersion: v1
kind: Service
metadata:
name: codeus-abc
spec:
type: NodePort
ports:
- port: 8888 虚拟端口号
targetPort: 8088 pod端口号
nodePort: 38088 node映射端口号
selector:
app: codeus-abc
===========================================
启动这两个文件
/opt/kubernetes/bin/kubectl create -f codeus-abc-deployment.yaml
/opt/kubernetes/bin/kubectl create -f codeus-abc-service.yaml
会话保持
目前kubernetes提供了两种负载分发策略:RoundRobin和SessionAffinity
RoundRobin:轮询模式,即轮询将请求转发到后端的各个Pod上
SessionAffinity:基于客户端IP地址进行会话保持的模式,第一次客户端访问后端某个Pod,之后的请求都转发到这个Pod上
#cat k8s_codeus/k8s-yaml/codeus-service.yaml
apiVersion: v1
kind: Service
metadata:
name: c
namespace: codeus
spec:
type: NodePort
sessionAffinity: ClientIP
sessionAffinityConfig: 客户端第一次访问到后端某个pod后,session将保持3个小时。
clientIP:
timeoutSeconds: 10800
ports:
- port: 8080
targetPort: 8080
nodePort: 38080
selector:
app: c