点击 "阅读原文" 可以获得更好的阅读体验。
前言
本文主要是对上一篇文章 Istio 1.5 部署指南 的修正和补充,由于微信公众号不能修改已经发布的文章,姑且再写一篇吧,本文会直接更新合并到博客中,公众号读者结合上一篇文章一起看吧,不过还是建议直接看博客(点击底部的阅读原文)。
主要有两处改动:
1. HostNetwork
为了暴露 Ingress Gateway,可以使用 HostNetwork
模式运行,上篇文章的方法是直接修改 Deployment
,但这种方法还是不太优雅。经过我对 IstioOperator API 文档[1] 的研究,发现了一个更为优雅的方法,那就是直接修改资源对象 IstioOperator
的内容,在 components.ingressGateways
下面加上么一段:
overlays:
- apiVersion: apps/v1
kind: Deployment
name: istio-ingressgateway
patches:
- path: spec.template.spec
value:
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
具体含义我就不解释了,请看上篇文章。这里只对 IstioOperator 的语法做简单说明:
overlays
列表用来修改对应组件的各个资源对象的 manifest,这里修改的是组件 Ingress Gateway 的Deployment
。patches
列表里是实际要修改或添加的字段,我就不解释了,应该很好理解。
2. 只暴露必要端口
从安全的角度来考虑,我们不应该暴露那些不必要的端口,对于 Ingress Gateway 来说,只需要暴露 HTTP、HTTPS 和 metrics 端口就够了。方法和上面一样,直接在 components.ingressGateways
的 overlays
列表下面加上这么一段:
- apiVersion: v1
kind: Service
name: istio-ingressgateway
patches:
- path: spec.ports
value:
- name: status-port
port: 15020
targetPort: 15020
- name: http2
port: 80
targetPort: 80
- name: https
port: 443
targetPort: 443
这个更简单,不用解释了,最终的 IstioOperator
清单文件如下:
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
namespace: istio-system
name: example-istiocontrolplane
spec:
profile: demo
components:
cni:
enabled: true
namespace: kube-system
ingressGateways:
- enabled: true
k8s:
service:
type: ClusterIP
strategy:
rollingUpdate:
maxUnavailable: 100%
maxSurge: 0%
nodeSelector:
kubernetes.io/hostname: sealos02
overlays:
- apiVersion: apps/v1
kind: Deployment
name: istio-ingressgateway
patches:
- path: spec.template.spec
value:
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
- apiVersion: v1
kind: Service
name: istio-ingressgateway
patches:
- path: spec.ports
value:
- name: status-port
port: 15020
targetPort: 15020
- name: http2
port: 80
targetPort: 80
- name: https
port: 443
targetPort: 443
values:
cni:
excludeNamespaces:
- istio-system
- kube-system
- monitoring
logLevel: info
脚注
[1]
IstioOperator API 文档: https://istio.io/docs/reference/config/istio.operator.v1alpha1/
你可能还喜欢
点击下方图片即可阅读
云原生是一种信仰 ????
扫码关注公众号
后台回复◉图谱◉领取史上最强 Kubernetes 知识图谱
点击 "阅读原文" 获取更好的阅读体验!
❤️给个「在看」,是对我最大的支持❤️