学完网站建设再可以学什么医院网络销售要做什么
一、这里说一下treafik最大的容易走入圈套的地方。
1、treafik默认不是hostnetwork模式。为了暴露自己出来它有一个LB类型的SVC。
这里的External_ip为我的节点IP,因为使用了k3s自带的LB,这个SVC就很容易绕进去。
1、第一个这个LB的作用是为了暴露treafik给集群外的Client访问使用。
2、这里的80和443是占用了External_ip为我的节点IP的80和443.
3、以及对应的30285和32299都是占用了节点IP的端口。
4、相当于浪费了两个端口。
5、正常如果是hostnetwork模式就没有这个问题。
二、gateway的配置。
*这里的端口8443对应是配置treafik中POD的监听端口:
websecure: # 用于 Gateway
port: 8443
protocol: TCP
*这里的工作流是这样的:1、通过gatewayclass找到 traefik.
2、通过label找到treafik
3、然后把gateway配置文件丢给treafik进行处理。
ip-172-27-183-66:~/harbor/istio # cat harbor-gateway.yaml
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:name: harbor-gatewaynamespace: harbor
spec:gatewayClassName: traefiklisteners:- name: httpsport: 8443protocol: HTTPShostname: "k8s.kox xne"tls:mode: TerminatecertificateRefs:- kind: Secretname: k8s.koxxxxxlineallowedRoutes:namespaces:from: Same
三、helm参数
deployment:podAnnotations:prometheus.io/port: "8082"prometheus.io/scrape: "true"
global:systemDefaultRegistry: ""
image:repository: rancher/mirrored-library-traefiktag: 3.3.2
priorityClassName: system-cluster-critical
providers:kubernetesIngress:enable: falsepublishedService:enabled: truenativeLBByDefault: truekubernetesGateway: enabled: truenativeLBByDefault: true #打开则通过svc再L B一次,默认false 直接到pod
gateway:enabled: truelisteners:web: # 用于 Gatewayport: 8000protocol: TCPwebsecure: # 用于 Gatewayport: 8443protocol: TCP service:ipFamilyPolicy: PreferDualStack
tolerations:
- key: CriticalAddonsOnlyoperator: Exists
- effect: NoSchedulekey: node-role.kubernetes.io/control-planeoperator: Exists
- effect: NoSchedulekey: node-role.kubernetes.io/masteroperator: Exists
四、重点istio
istio的gateway提供会自动生成一个lb的svc。这么做就相当于直接把服务暴露到外面,特别适合和公有云集成特别好的场景。一个业务自动一个LB。