kubernetes部署istio

本文详细介绍了在Kubernetes环境中部署Istio服务网格的过程,包括版本下载、环境要求、使用helm install方式安装Istio核心组件及验证步骤。

kubernetes部署istio

版本下载:https://istio.io/docs/setup/#downloading-the-release

安装参考:https://istio.io/docs/setup/install/helm/

安装要求:所有节点建议2C4G,否则可能导致pod pending无法调度。

istio有多种安装方式

  • kubetctl apply方式,仅用于评估测试,生产环境官方建议用helm
  • helm template方式安装,无需tiller
  • helm install方式安装,需要tiller

安装要求:所有节点建议2C4G,否则可能导致pod pending无法调度。

kubernetes集群信息

[root@kmaster ~]# kubectl get nodes -o wide
NAME                   STATUS   ROLES    AGE     VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION               CONTAINER-RUNTIME
kmaster.example.com    Ready    master   3h49m   v1.16.2   172.16.10.10   <none>        CentOS Linux 7 (Core)   3.10.0-957.27.2.el7.x86_64   docker://19.3.4
kworker1.example.com   Ready    <none>   3h46m   v1.16.2   172.16.10.11   <none>        CentOS Linux 7 (Core)   3.10.0-957.27.2.el7.x86_64   docker://19.3.4
kworker2.example.com   Ready    <none>   3h42m   v1.16.2   172.16.10.12   <none>        CentOS Linux 7 (Core)   3.10.0-957.27.2.el7.x86_64   docker://19.3.4

下载并安装istio,本次使用helm install方式进行安装

# 下载软件包并解压
curl -L https://git.io/getLatestIstio | ISTIO_VERSION=1.3.3 sh -

cd istio-1.3.3/
cp bin/istioctl /usr/local/bin/

#确认安装环境满足要求
istioctl verify-install

# 安装所有Istio CRD
helm install install/kubernetes/helm/istio-init --name istio-init --namespace istio-system

#查看创建的资源
[root@kmaster ~]# kubectl -n istio-system get pods
NAME                            READY   STATUS      RESTARTS   AGE
istio-init-crd-10-1.3.3-7jzbf   0/1     Completed   0          4m46s
istio-init-crd-11-1.3.3-2pzlr   0/1     Completed   0          4m46s
istio-init-crd-12-1.3.3-6gk9k   0/1     Completed   0          4m46s

#查看创建的crd,必须为23个
kubectl get crds | grep 'istio.io' | wc -l
23

部署 Istio 的核心组件

# 根据实际情况配置更新 values.yaml(默认即可)
cat install/kubernetes/helm/istio/values.yaml

helm  install install/kubernetes/helm/istio --name istio --namespace istio-system

查看创建的资源

[root@kmaster ~]# kubectl -n istio-system get pods
NAME                                      READY   STATUS      RESTARTS   AGE
istio-citadel-67f6594c46-4rblv            1/1     Running     1          17m
istio-galley-6c7fcf86d4-24s59             1/1     Running     1          17m
istio-ingressgateway-6d68548679-gcp4l     1/1     Running     1          17m
istio-init-crd-10-1.3.3-7jzbf             0/1     Completed   0          23m
istio-init-crd-11-1.3.3-2pzlr             0/1     Completed   0          23m
istio-init-crd-12-1.3.3-6gk9k             0/1     Completed   0          23m
istio-pilot-789d4748b-r9blx               2/2     Running     0          17m
istio-policy-59d8f8c9f8-7zcps             2/2     Running     6          17m
istio-sidecar-injector-6d967869b5-pqwbc   1/1     Running     1          17m
istio-telemetry-646f74c6bf-9n7nr          2/2     Running     0          17m
prometheus-6f74d6f76d-4w5cc               1/1     Running     1          17m
### 如何安装配置KubernetesIstio服务网格 #### 准备工作 为了在环境中部署和配置Istio服务网格,首先需要有一个运行良好的Kubernetes集群。这可以通过多种方式完成,比如使用Minikube本地创建一个单节点集群用于学习目的,或是利用云提供商的服务来建立一个多节点生产级集群[^1]。 #### 安装Istio 一旦有了可用的Kubernetes集群,下一步就是下载并解压最新版的Istio包。之后,在命令行工具中导航至该目录下找到`install/kubernetes/istio-demo.yaml`文件路径,并执行如下所示的kubectl命令以应用YAML定义,从而启动Istio的核心组件和服务: ```bash kubectl apply -f install/kubernetes/istio-demo.yaml ``` 此操作会选择宽容模式下的mutual TLS设置,这是一种安全通信机制,有助于保护微服务之间的交互免受中间人攻击的影响[^4]。 #### 验证部署情况 当上述步骤完成后,应当验证所有Pod是否都处于正常状态。可以借助于下面这条指令获取有关命名空间内资源的状态信息: ```bash kubectl get pods -n istio-system ``` 如果一切顺利的话,则说明已经成功地在一个Kubernetes集群上完成了Istio的基础设施构建;此时就可以继续探索更多高级特性和应用场景了——例如通过访问<http://<EXTERNAL_IP>/productpage>这样的URL地址去体验Bookinfo样例程序所带来的强大功能[^2]。 #### CI/CD集成 对于希望进一步提升工作效率的企业而言,还可以考虑将Istio所提供的金丝雀发布能力融入现有的持续集成/持续交付(CI/CD)管道当中。这样做不仅能够简化新版本发布的流程管理,同时也增强了整个系统的稳定性和可靠性水平[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

willops

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值