Istio下载及安装

Istio 是一个开源的服务网格,用于连接、管理和保护微服务。以下是下载并安装 Istio 的步骤。

官网文档:https://istio.io/latest/zh/docs/setup/getting-started/

下载 Istio

前往Istio 发布页面下载适用于您的操作系统的安装文件,或者自动下载并提取最新版本(Linux 或 macOS):

bash 复制代码
curl -L https://mirror.ghproxy.com/https://raw.githubusercontent.com/istio/istio/master/release/downloadIstioCandidate.sh | sh -

执行上述命令后,您将看到如下输出::

bash 复制代码
Istio 1.22.1 Download Complete!

Istio has been successfully downloaded into the istio-1.22.1 folder on your system.

Next Steps:
See https://istio.io/latest/docs/setup/install/ to add Istio to your Kubernetes cluster.

To configure the istioctl client tool for your workstation,
add the /opt/istio-1.22.1/bin directory to your environment path variable with:
	 export PATH="$PATH:/opt/istio-1.22.1/bin"

Begin the Istio pre-installation check by running:
	 istioctl x precheck 

Need more information? Visit https://istio.io/latest/docs/setup/install/ 
root@slave1:/opt# 

通过打印版本的命令来检查您是否能够运行 istioctl。 此时,Istio 尚未安装在您的集群中,因此您将看到没有 Pod 就绪

bash 复制代码
 istioctl version

下载完成后,移至 Istio 包目录。例如,如果包是 istio-1.22.1,则运行以下命令:

bash 复制代码
cd istio-1.22.1

安装目录包含以下内容:

  • 示例应用程序samples/
  • istioctl客户端二进制 文件 bin/

将istioctl客户端添加到您的路径(Linux 或 macOS):

bash 复制代码
export PATH=$PWD/bin:$PATH

安装 Istio

对于此安装,我们使用默认 配置文件。当然,您也可以选择其他配置文件以适应生产或性能测试需求。

运行以下命令安装 Istio 默认配置档:

bash 复制代码
istioctl install

此命令在 Kubernetes 集群上安装 default 配置档。 default 配置档是建立生产环境的一个良好起点, 这和较大的 demo 配置档不同,后者常用于评估一组广泛的 Istio 特性。

可以配置各种设置来修改安装。比如,要启动访问日志:

bash 复制代码
istioctl install --set meshConfig.accessLogFile=/dev/stdout

也可以使用 -f 传递配置文件。 这么做可以让例子更紧凑。 这两种方法是等价的,但强烈推荐在生产环境使用 -f。 上面的命令可以用 -f 写成如下的形式

bash 复制代码
cat <<EOF > ./my-config.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    accessLogFile: /dev/stdout
EOF
istioctl install -f my-config.yaml

其他的 Istio 配置档,可以通过在命令行传递配置档名称的方式,安装到集群。 例如,下面命令可以用来安装 demo 配置档。

bash 复制代码
istioctl install --set profile=demo

您可以用下面命令展示 istioctl 可以访问到的 Istio 配置档的名称:

bash 复制代码
istioctl profile list

您可以浏览一个配置档的配置信息。例如,运行下面命令浏览 demo 配置档的设置信息:

bash 复制代码
istioctl profile dump demo

只浏览配置文件的某个部分的话,可以用 --config-path 参数,它将只选择配置文件中指定路径的局部内容:

bash 复制代码
istioctl profile dump --config-path components.pilot demo

profile diff 子命令可用于显示配置档之间的差异, 它在把更改应用到集群之前,检查定制效果方面非常有用。

bash 复制代码
istioctl profile diff default demo

在安装 Istio 之前,可以用 manifest generate 子命令生成清单文件。 例如,用下面命令生成 default 配置档的清单文件:

bash 复制代码
istioctl manifest generate > $HOME/generated-manifest.yaml

生成的清单文件可用于检查具体安装了什么,也可用于跟踪清单是如何随着时间而改变的。 虽然 IstioOperator CR 代表完整的用户配置,足以用于跟踪, 但 manifest generate 命令的输出还能截获底层 chart 潜在的改变,因此可以用于跟踪实际安装过的资源。

manifest generate 的输出还能传递给 kubectl apply 或类似的命令,用来安装 Istio。 然而,这些替代的安装方法不能像 istioctl install 那样,将相同的依赖顺序应用于资源, 并且也没有在 Istio 发行版中测试过,所以不建议kubectl apply来install 参考:https://istio.io/latest/zh/docs/setup/install/istioctl/

要从集群中完整卸载 Istio,运行下面命令:

bash 复制代码
istioctl uninstall --purge

为默认命名空间添加标签,以便在稍后部署应用程序时自动注入 Envoy sidecar 代理

bash 复制代码
kubectl label namespace dtb istio-injection=enabled

这样,以后所有部署在 dtb 命名空间下的应用都会自动注入 Envoy sidecar 代理。

部署应用程序

首先,确保您有一个包含适当配置的 dtb-deploy.yaml 文件。然后运行以下命令::

bash 复制代码
kubectl apply -f dtb-deploy.yaml

应用程序将启动。在每个 Pod 准备就绪后,Istio sidecar 将随之部署。您可以使用以下命令查看 Pod 的状态:

bash 复制代码
kubectl get pod -n dtb

示例输出:

bash 复制代码
NAME                                      READY   STATUS    RESTARTS   AGE
dtb-service-6cc7db9d94-bcs2z    2/2     Running   0          13s

等到 Pod 报告 READY2/2和 STATUS Running后再进行下一步。这可能需要几分钟,具体取决于您的平台。 READY 2/2 是因为每个 Pod 增加了一个 Istio sidecar 容器。

若要查看 Pod 的详细信息,请运行以下命令::

bash 复制代码
kubectl describe pod dtb-service-6cc7db9d94-bcs2z -n dtb

查看结果示例:

相关推荐
无名之逆1 小时前
云原生(Cloud Native)
开发语言·c++·算法·云原生·面试·职场和发展·大学期末
Richardlygo2 小时前
(k8s)Kubernetes部署Promehteus
云原生·容器·kubernetes
晨曦_子画4 小时前
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
5g·架构·istio
Lill_bin6 小时前
JVM内部结构解析
jvm·后端·spring cloud·微服务·云原生·ribbon
二进制杯莫停7 小时前
初识zookeeper
分布式·zookeeper·云原生
StevenZeng学堂8 小时前
【Kubernetes笔记】为什么DNS解析会超时?
网络协议·docker·云原生·kubernetes
爱吃龙利鱼20 小时前
nginx实现https安全访问的详细配置过程
运维·nginx·安全·云原生·https
大白菜和MySQL21 小时前
rockylinux9.4单master节点k8s1.28集群部署
云原生·容器·kubernetes
七夜zippoe1 天前
nacos和eureka的区别详解
云原生·eureka
唐大爹1 天前
kubeadm方式安装k8s续:
云原生·容器·kubernetes