istio 1.5 定制安装
在istio 1.5,已经不支持helm方式安装,因为helm已经弃用。helm部分的代码已不在更新。只支持istioctl的方式安装istio。
istioctl在安装包内,可通过下面的链接下载安装包。 https://istio.io/docs/setup/getting-started/#download
安装包解压后,直接将istioctl复制到执行目录就可以用了:
cp bin/istioctl /usr/local/bin/
以下命令可以默认配置安装istio:
istioctl manifest apply
如果想安装demo:
istioctl manifest apply --set profile=demo
但是默认配置有些部件是没有选中的。参考下图:
这样的话,就需要定制安装了。
我们可以直接使用命令行来定制安装:
istioctl manifest apply \
--set hub=dockerhub.azk8s.cn/istio \
--set values.prometheus.hub=dockerhub.azk8s.cn/prom \
--set values.gateways.istio-ingressgateway.telemetry_addon_gateways.prometheus_gateway.enabled=true \
--set addonComponents.grafana.enabled=true \
--set values.gateways.istio-ingressgateway.telemetry_addon_gateways.grafana_gateway.enabled=true \
--set addonComponents.kiali.enabled=true \
--set values.kiali.createDemoSecret=true \
--set values.gateways.istio-ingressgateway.telemetry_addon_gateways.kiali_gateway.enabled=true \
--set addonComponents.tracing.enabled=true \
--set values.gateways.istio-ingressgateway.telemetry_addon_gateways.tracing_gateway.enabled=true
这2行是配置镜像源:
--set hub=dockerhub.azk8s.cn/istio \
--set values.prometheus.hub=dockerhub.azk8s.cn/prom \
其它的都是启用相关功能及参数。
一个一个这样写参数很麻烦,我们可以写一个配置文件custom_profile.yaml:
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
namespace: istio-system
name: istio-operator
spec:
#profile: /data/yaml/istio/istio-1.5.1/install/kubernetes/operator/profiles/default.yaml
profile: default
#install_package_path: /data/yaml/istio/istio-1.5.1/install/kubernetes/operator/charts
#hub: dockerhub.azk8s.cn/istio
components:
ingressGateways:
- name: istio-ingressgateway
enabled: true
egressGateways:
- name: istio-egressgateway
enabled: true
k8s:
resources:
requests:
cpu: 10m
memory: 40Mi
addonComponents:
kiali:
enabled: true
grafana:
enabled: true
tracing:
enabled: true
prometheus:
enabled: true
values:
global:
proxy:
autoInject: disabled
gateways:
istio-egressgateway:
autoscaleEnabled: false
istio-ingressgateway:
autoscaleEnabled: false
type: NodePort
kiali:
createDemoSecret: true
prometheus:
# hub: dockerhub.azk8s.cn/prom
sidecarInjectorWebhook:
enableNamespacesByDefault: false
objectSelector:
enabled: false
autoInject: true
随便说下:我测试下来,用azk8s.cn的镜像有问题。
再用下面的命令安装:
istioctl manifest apply -f profile.yaml
可以用以下命令查看生成的yaml配置:
istioctl manifest generate -f custom_profile.yaml
下面的命令可以删除istio:
istioctl manifest generate -f custom_profile.yaml | kubectl delete -f -