文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

一篇学会 istio安装与部署

2024-12-14 00:37

关注

一、准备工作

1.安装Docker

通过命令行或者直接下载,由于网络原因我直接下载安装 ,下载地址:

  1. https://hub.docker.com/editions/community/docker-ce-desktop-mac 

2.驱动安装

  1. curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-hyperkit 
  2. chmod +x docker-machine-driver-hyperkit 
  3. sudo mv docker-machine-driver-hyperkit /usr/local/bin/ 
  4. sudo chown root:wheel /usr/local/bin/docker-machine-driver-hyperkit 
  5. sudo chmod u+s /usr/local/bin/docker-machine-driver-hyperkit 

3.安装minikube

  1. curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ 

验证版本

  1. $ minikube version 
  2. minikube version: v1.22.0 

4.启动minikube

  1. $ minikube start😄  Darwin 10.15.7 上的 minikube v1.22.0✨  根据现有的配置文件使用 docker 驱动程序👍  Starting control plane node minikube in cluster minikube🚜  Pulling base image ...🏃  Updating the running docker "minikube" container ...❗  This container is having trouble accessing https://k8s.gcr.io💡  To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/🐳  正在 Docker 20.10.7 中准备 Kubernetes v1.21.2…🔎  Verifying Kubernetes components...    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5🌟  Enabled addons: storage-provisioner, default-storageclass🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default 

二、安装与部署

1.下载istio

还是直接下载安装包,当前最新版本为1.11.0

  1. https://github.com/istio/istio/releases/tag/1.11.0 

2.设置环境变量

  1. vim ~/.bash_profileexport PATH=$PATH:/Users/yongliang/istio/istio-1.11.0/binsource ~/.bash_profile 

3.安装istio

  1. $ istioctl install --set profile=demo -y✔ Istio core installed✔ Istiod installed✔ Egress gateways installed✔ Ingress gateways installed✔ Installation complete 

4.创建istio命名空间

  1. kubectl create namespace istio-system 

5.设置自动注入envoy

  1. $ kubectl label namespace default istio-injection=enablednamespace/default labeled 

6.验证istio版本

  1. $ istioctl versionclient version: 1.11.0control plane version: 1.11.0data plane version: 1.11.0 (8 proxies) 

小结:输出可以看出安装的istio客户端版本、控制面板版本和数据面版本。

三、部署示例程序

1.部署示例

示例在安装目录sample目录下

  1. -rw-r--r--@ 1 yongliang staff 11348 8 13 00:17 LICENSE-rw-r--r--@ 1 yongliang staff 5866 8 13 00:17 README.mddrwxr-x---@ 3 yongliang staff 96 8 13 00:17 bin-rw-r-----@ 1 yongliang staff 854 8 13 00:17 manifest.yamldrwxr-xr-x@ 5 yongliang staff 160 8 13 00:17 manifestsdrwxr-xr-x@ 21 yongliang staff 672 8 13 00:17 samplesdrwxr-xr-x@ 5 yongliang staff 160 8 13 00:17 tools 
  2.  
  3. $ kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yamlservice/details createdserviceaccount/bookinfo-details createddeployment.apps/details-v1 createdservice/ratings createdserviceaccount/bookinfo-ratings createddeployment.apps/ratings-v1 createdservice/reviews createdserviceaccount/bookinfo-reviews createddeployment.apps/reviews-v1 createddeployment.apps/reviews-v2 createddeployment.apps/reviews-v3 createdservice/productpage createdserviceaccount/bookinfo-productpage createddeployment.apps/productpage-v1 created 

2.服务启动情况

  1. $ kubectl get servicesNAME          TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGEdetails       ClusterIP   10.100.65.41             9080/TCP   4d2hkubernetes    ClusterIP   10.96.0.1                443/TCP    4d4hproductpage   ClusterIP   10.107.21.144            9080/TCP   4d2hratings       ClusterIP   10.110.139.187           9080/TCP   4d2hreviews       ClusterIP   10.106.238.130           9080/TCP   4d2h 

pods为Running状态

  1. $ kubectl get podsNAME                              READY   STATUS    RESTARTS   AGEdetails-v1-79f774bdb9-bkrbp       2/2     Running   4          4d2hproductpage-v1-6b746f74dc-2c55l   2/2     Running   4          4d2hratings-v1-b6994bb9-7nvs2         2/2     Running   4          4d2hreviews-v1-545db77b95-mffvg       2/2     Running   4          4d2hreviews-v2-7bf8c9648f-pmqw8       2/2     Running   4          4d2hreviews-v3-84779c7bbc-sztp8       2/2     Running   4          4d2h 

3.把应用关联到istio网关

  1. $ kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yamlgateway.networking.istio.io/bookinfo-gateway createdvirtualservice.networking.istio.io/bookinfo created 

4.分析istio配置信息

  1. $ istioctl analyze? No validation issues found when analyzing namespace: default

5.设置入站IP和端口

端口设置

  1. $ export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')$ export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}'

打印出来看看

  1. $ echo "$INGRESS_PORT"31688$ echo "$SECURE_INGRESS_PORT"31908 

设置入站IP

在官方提供的命令中是下面一段:

  1. $ export INGRESS_HOST=$(minikube ip) 
  2. $ minikube ip192.168.49.2 

注意:照着执行后发现最后无法访问,下面有修正。

启动minikube隧道

  1. $ minikube tunnel❗  The service istio-ingressgateway requires privileged ports to be exposed: [80 443]🔑  sudo permission will be asked for it.🏃  Starting tunnel for service istio-ingressgateway. 

修正网关地址

官方为命令:

  1. $ export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT 

需要修正为:

  1. $ export GATEWAY_URL=127.0.0.1 
  2. $ echo "$GATEWAY_URL"127.0.0.1 

备注:修正原因参见issue地址 https://github.com/istio/istio.io/issues/9340

6.浏览器访问页面

7.安装Kiali仪表盘

  1. $ kubectl apply -f samples/addons$ kubectl rollout status deployment/kiali -n istio-systemdeployment "kiali" successfully rolled out 

启动仪表盘

  1. $ istioctl dashboard kialihttp://localhost:20001/kiali 

 

备注:当访问http://127.0.0.1/productpage时可以在仪表盘中观察到流量的流向和服务之间的关系。

 

来源:瓜农老梁内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯