前提: 配置好asm 和 ask
参考: https://help.aliyun.com/document_detail/149547.html?spm=a2c4g.11186623.6.566.2ed31d652ld6Aa
这里有一个非常重要的概念要理清:
kubectl 和 istio 使用的是两个独立的 api server 连接, 也就是说: 要客户机要配置两份 config
这里假定: k 为ask(k8s) , ki 为 asm 的连接方式
alias k='kubectl --kubeconfig ~/.kube/config_ask'
alias ki='kubectl --kubeconfig ~/.kube/config_asm'
0x01 使用istio连接配置,创建namespace
可以理解为, istio 是 k8s 向上抽象出来的一层, 为了能在 istio 看到namespace, 必需使用istio 配置文件, 利用kubectl进行创建 ns.
ki create ns demo
ki label namespace demo istio-injection=enabled
此时, k8s 也是能正常看到这个ns.
0x02 部署应用
使用 k8s 的连接信息, 进行应用发布:
k apply -f istio-1.10.3/samples/bookinfo/platform/kube/bookinfo.yaml -n demo
完成部署, 可以查看部署情况:
k get po -n demo
k get svc - n demo
0x03 部署网关
使用istio连接配置进行 网关和虚拟服务的发布:
cd istio-1.10.3/samples/bookinfo/networking
ki apply -f k apply -f ./bookinfo-gateway.yaml -n demo
发布成功后, 这个查看:
ki get gw -n demo
ki get vs -n demo
至此, 完成所有发布, 小结一下:
asm 创建完成后, 需要先创建一个默认的 ingressgateway, 这个服务网关用途是为 asm 创建一个面向集群外面的一个接口服务网关.
而ki创建的 流量服务相关的, gateway 和 vitrualservice , 是 istio 特有的概念, 所以只能由ki来维护, 同时, 二者皆为集群内部的资源.
最后测试了一下集群外面LB访问: curl http://10.1.1.2:80/productpage, 可以正常显示, 本次阿里云istio初步测试, 顺利完成.
网友评论