
Istio 安装
Istio是做什么的我在使用完Istio之后将会进行详细写,可先参考官网:https://istio.io/latest/zh/docs/concepts/what-is-istio/
前提
准备好kubernetes环境。
安装
我们可以通过官网的命令进行安装。也可以到Istio发布页面进行下载。
curl -L https://istio.io/downloadIstio | sh -
# 或
wget -O istio-1.12.1 https://github.com/istio/istio/releases/download/1.12.1/istio-1.12.1-linux-amd64.tar.gz
开始转到 Istio 包目录进行安装。
cd istio-1.12.1
安装目录包含:samples/
目录下的示例应用程序bin/
目录下的 istioctl 客户端二进制文件
将 istioctl 客户端加入搜索路径(Linux or macOS)
export PATH=$PWD/bin:$PATH
对于本次安装,我们采用 demo 配置组合。 选择它是因为它包含了一组专为测试准备的功能集合,另外还有用于生产或性能测试的配置组合。
istioctl install --set profile=demo -y
给命名空间添加标签,指示 Istio 在部署应用的时候,自动注入 Envoy 边车代理:
kubectl label namespace default istio-injection=enabled
如果你的平台有供应商提供的配置组合,比如:Openshift,则在下面命令中替换掉 demo 配置项。更多细节请参阅你的平台说明
部署示例应用
部署 Bookinfo 示例应用:
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
应用很快会启动起来。当每个 Pod 准备就绪时,Istio 边车代理将伴随它们一起部署。
kubectl get services
kubectl get pods
测试是否启动成功。通过如下命令可以获取应用title信息。
kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -s productpage:9080/productpage | grep -o "<title>.*</title>"
<title>Simple Bookstore App</title>
对外开放应用程序
此时,BookInfo 应用已经部署,但还不能被外界访问。 要开放访问,你需要创建 Istio 入站网关(Ingress Gateway), 它会在网格边缘把一个路径映射到路由。
1.把应用关联到 Istio 网关
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
2.确保配置文件没有问题:
istioctl analyze
确定入站 IP 和端口
按照说明,为访问网关设置两个变量:INGRESS_HOST
和 INGRESS_PORT
。
kubectl get svc istio-ingressgateway -n istio-system
export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].port}')
export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].port}')
设置环境变量 GATEWAY_URL
:
export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT
确保 IP 地址和端口均成功的赋值给了环境变量:
echo "$GATEWAY_URL"
验证外部访问
运行下面命令,获取 Bookinfo 应用的外部访问地址。
echo "http://$GATEWAY_URL/productpage"
查看仪表板
Istio 和几个遥测应用做了集成。 遥测能帮你了解服务网格的结构、展示网络的拓扑结构、分析网格的健康状态。
使用下面说明部署 Kiali 仪表板、 以及 Prometheus、 Grafana、 还有 Jaeger
安装 Kiali 和其他插件,等待部署完成。
kubectl apply -f samples/addons
kubectl rollout status deployment/kiali -n istio-system
访问 Kiali 仪表板。
istioctl dashboard kiali --address 0.0.0.0
在左侧的导航菜单,选择 Graph ,然后在 Namespace 下拉列表中,选择 default 。
Kiali 仪表板展示了网格的概览、以及 Bookinfo 示例应用的各个服务之间的关系。 它还提供过滤器来可视化流量的流动。
更多安装
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

