安装 ASM
Apigee Hybrid 使用 Anthos Service Mesh (ASM) 提供的 Istio 发行版。 请按照以下步骤在集群中安装 ASM。
支持的 ASM 版本
如需查看 Hybrid 1.5 版支持的 ASM 版本,请参阅 Apigee Hybrid:支持的平台。
执行 ASM 设置和配置步骤
如需完成 ASM 安装,首先必须按照 ASM 文档中特定于 ASM 的设置和配置步骤执行操作。然后,您必须返回此处完成特定于混合的配置,然后再将配置应用到集群。
安装和配置 ASM 的说明因平台而异。这些平台分为以下几种类别:
- GKE:在 Google Cloud 上运行的 Google Kubernetes Engine 集群。
- Google Cloud 外部:在以下位置运行的 Anthos 集群:
- Anthos clusters on VMware (GKE on-prem)
- Anthos on Bare Metal
- Anthos clusters on AWS
- Amazon EKS
- 其他 Kubernetes 平台:在以下平台上创建和运行的合规集群:
- AKS
- EKS
- OpenShift
GKE
准备安装 ASM
- 检查您需要在后续步骤中使用的环境变量,并在需要执行以下操作时设置这些环境变量:
echo ${PROJECT_ID}
echo ${CLUSTER_NAME}
echo ${CLUSTER_LOCATION}
- 创建一个名为
overlay.yaml
的叠加文件,其中包含以下内容:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443
apigee-runtime
是节点选择器的默认值。这是您在第 1 步:创建集群中创建的apigee-runtime
节点池。如果您使用的是其他节点选择器,或者未使用节点选择器,请更改或省略nodeSelector
属性。- STATIC_IP 是负载均衡器的 IP 地址。如果您未设置此属性,请省略
loadBalancerIP
属性,但保留type
和ports
属性。
- 按照说明准备安装 ASM:
- 按照安装所需的工具中的说明安装
asmcli
以及所需的任何工具,例如 git、kubectl 和 jq。 - 继续执行授予集群管理员权限步骤并停止。请勿执行“验证项目和集群”步骤。
- 使用可选功能安装 ASM。使用
--option legacy-default-ingressgateway
指定旧版入站网关。例如:./asmcli install \ --verbose \ --project_id $PROJECT_ID \ --cluster_name $CLUSTER_NAME \ --cluster_location $CLUSTER_LOCATION \ --output_dir dir_path \ --custom_overlay overlay.yaml \ --enable_all \ --option legacy-default-ingressgateway
- dir_path 是您希望
asmcli
在其中设置 ASM 安装的输出目录,包括所有子目录。 - overlay.yaml 是您在先前步骤中创建的叠加层文件。
按照使用可选功能安装中的说明操作时,请使用这些设置。
- dir_path 是您希望
问题排查
如果在引用 gcloud container hub memberships register
时遇到错误,则表示可能超出了向 GKE Hub 注册的集群数上限。例如:
asmcli_1.12: [WARNING]: Command 'run_command gcloud container hub memberships register my-hybrid-example ...' failed.
请尝试执行以下步骤来修复此错误,然后再次运行 asmcli install
:
- 列出项目的 GKE Hub 成员资格:
gcloud container hub memberships list --project=$PROJECT_ID
- 删除 GKE Hub 成员资格:
gcloud container hub memberships delete "membership" --project=$PROJECT_ID
如需详细了解 GKE Hub 限制,请参阅配额和限制。
Google Cloud 外部
以下说明介绍如何为在下列平台上使用 Anthos 运行的 Apigee Hybrid 实例安装和设置 ASM:
- Anthos clusters on VMware (GKE on-prem)
- Anthos on Bare Metal
- Anthos clusters on AWS
- Amazon EKS
准备安装 ASM
- 检查您需要在后续步骤中使用的环境变量,并在需要执行以下操作时设置这些环境变量:
echo ${PROJECT_ID}
echo ${CLUSTER_NAME}
echo ${CLUSTER_LOCATION}
- 创建一个名为
overlay.yaml
的叠加文件,其中包含以下内容:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
apigee-runtime
是节点选择器的默认值。这是您在第 1 步:创建集群中创建的apigee-runtime
节点池。如果您使用的是其他节点选择器,或者未使用节点选择器,请更改或省略nodeSelector
属性。- STATIC_IP 是负载均衡器的 IP 地址。如果您未设置此属性,请省略
loadBalancerIP
属性,但保留type
和ports
属性。
- 按照说明准备安装 ASM:
- 按照安装所需的工具中的说明安装
asmcli
以及所需的任何工具,例如 git、kubectl 和 jq。 - 继续执行授予集群管理员权限步骤并停止。请勿执行“验证项目和集群”步骤。
- 使用可选功能安装 ASM。使用
--option legacy-default-ingressgateway
指定旧版入站网关。例如:./asmcli install \ --verbose \ --project_id $PROJECT_ID \ --cluster_name $CLUSTER_NAME \ --cluster_location $CLUSTER_LOCATION \ --output_dir dir_path \ --custom_overlay overlay.yaml \ --enable_all \ --option legacy-default-ingressgateway
- dir_path 是您希望
asmcli
在其中设置 ASM 安装的输出目录,包括所有子目录。 - overlay.yaml 是您在先前步骤中创建的叠加层文件。
按照使用可选功能安装中的说明操作时,请使用这些设置。
- dir_path 是您希望
问题排查
如果在引用 gcloud container hub memberships register
时遇到错误,则表示可能超出了向 GKE Hub 注册的集群数上限。例如:
asmcli_1.12: [WARNING]: Command 'run_command gcloud container hub memberships register my-hybrid-example ...' failed.
请尝试执行以下步骤来修复此错误,然后再次运行 asmcli install
:
- 列出项目的 GKE Hub 成员资格:
gcloud container hub memberships list --project=$PROJECT_ID
- 删除 GKE Hub 成员资格:
gcloud container hub memberships delete "membership" --project=$PROJECT_ID
如需详细了解 GKE Hub 限制,请参阅配额和限制。
其他平台上的 GKE
以下说明介绍如何为在下列平台上使用 Anthos 运行的 Apigee Hybrid 实例安装和设置 ASM:
- GKE On-Prem (Anthos)
- Anthos on Bare Metal
- GKE on AWS
开始之前,请仔细阅读以下步骤。 我们会要求您执行 ASM 文档中列出的某些步骤,然后返回此处完成安装。
- 根据 ASM 文档中的说明下载并解压缩
istioctl
:下载安装文件。 - 根据您计划使用的证书授权机构,按照以下某个部分中的说明安装 ASM:
- 使用 Mesh CA:使用 Mesh CA 安装 Anthos Service Mesh
- 使用 Istio CA 提供自己的证书:使用 Istio CA 安装 Anthos Service Mesh
- 按照配置验证网络钩子中的说明配置验证网络钩子。
- 按照检查控制平面组件中的说明检查控制平面组件。
请勿继续“注入边车代理”。
其他 Kubernetes 平台
AKS
设置和下载 ASM
开始之前,请仔细阅读以下步骤。我们会要求您执行 ASM 文档中列出的某些步骤,然后返回此处完成安装。
本指南介绍了如何在 Anthos 关联集群上执行 Anthos Service Mesh (ASM) 1.12.9-asm.3 版本的全新安装。使用本指南可以在以下环境中安装 Anthos Service Mesh:
- Kubernetes 上的 Amazon Elastic Kubernetes Service (Amazon EKS)
- Kubernetes 上的 Microsoft Azure Kubernetes Service (Microsoft AKS)
- Red Hat OpenShift
准备安装 Anthos Service Mesh
- 将 Anthos Service Mesh 安装文件下载到当前工作目录中:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- 下载签名文件并使用 openssl 验证签名:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3-linux-amd64.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 将文件内容提取到文件系统上的任意位置。例如,如需将内容提取到当前工作目录,请运行以下命令:
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
该命令会在当前工作目录中创建一个名为
istio-1.12.9-asm.3
的安装目录,其中包含:samples
目录中的示例应用。- 用于安装 Anthos Service Mesh 的
istioctl
命令行工具位于bin
目录中。 - Anthos Service Mesh 配置文件位于
manifests/profiles
目录中。
- 确保您位于 Anthos Service Mesh 安装的根目录。
cd istio-1.12.9-asm.3
- 为方便起见,请将 /bin 目录中的工具添加到 PATH:
export PATH=$PWD/bin:$PATH
- 将 Anthos Service Mesh 安装文件下载到当前工作目录中:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- 下载签名文件并使用 openssl 验证签名:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3-osx.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 将文件内容提取到文件系统上的任意位置。例如,如需将内容提取到当前工作目录,请运行以下命令:
tar xzf istio-1.12.9-asm.3-osx.tar.gz
该命令会在当前工作目录中创建一个名为
istio-1.12.9-asm.3
的安装目录,其中包含:samples
目录中的示例应用。- 用于安装 Anthos Service Mesh 的
istioctl
命令行工具位于bin
目录中。 - Anthos Service Mesh 配置文件位于
manifests/profiles
目录中。
- 确保您位于 Anthos Service Mesh 安装的根目录。
cd istio-1.12.9-asm.3
- 为方便起见,请将 /bin 目录中的工具添加到 PATH:
export PATH=$PWD/bin:$PATH
- 将 Anthos Service Mesh 安装文件下载到当前工作目录中:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- 下载签名文件并使用 openssl 验证签名:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3-win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 将文件内容提取到文件系统上的任意位置。例如,如需将内容提取到当前工作目录,请运行以下命令:
tar xzf istio-1.12.9-asm.3-win.zip
该命令会在当前工作目录中创建一个名为
istio-1.12.9-asm.3
的安装目录,其中包含:samples
目录中的示例应用。- 用于安装 Anthos Service Mesh 的
istioctl
命令行工具位于bin
目录中。 - Anthos Service Mesh 配置文件位于
manifests\profiles
目录中。
- 确保您位于 Anthos Service Mesh 安装的根目录。
cd istio-1.12.9-asm.3
- 为方便起见,请将 \bin 目录中的工具添加到 PATH:
set PATH=%CD%\bin:%PATH%
- 现在,ASM Istio 已安装,请检查
istioctl
的版本:istioctl version
- 为控制平面组件创建一个名为 istio-system 的命名空间:
kubectl create namespace istio-system
Linux
Mac OS
Windows
安装 Anthos Service Mesh
- 使用
asm-multicloud
配置文件,利用istioctl
来安装 Anthos Service Mesh:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3"
--set revision
参数会将格式为istio.io/rev=asm-1129-3
的修订版本标签添加到 istiod。自动边车注入器网络钩子使用修订版本标签将注入的边车与特定 istiod 修订版本相关联。如需为命名空间启用边车自动注入功能,您必须使用一个与 istiod 上的标签匹配的修订版本来为其添加标签。 - 使用
kubectl get pods
检查istiod
pod 是否正在运行:kubectl get pods -n istio-system
输出应如下所示:
NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-dbfb7c7b6-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-dbfb7c7b6-fnj8c 1/1 Running 1 3m21s
- 验证安装是否已完成:
kubectl get svc -n istio-system
输出应如下所示:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
配置验证网络钩子
安装 Anthos Service Mesh 时,您可以在 istiod 上设置修订版本标签。您需要在验证网络钩子上设置相同的修订版本。
- 创建一个名为
istiod-service.yaml
且包含以下内容的文件:apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1129-3 app: istiod istio: pilot release: istio spec: ports: - port: 15010 name: grpc-xds # plaintext protocol: TCP - port: 15012 name: https-dns # mTLS with k8s-signed cert protocol: TCP - port: 443 name: https-webhook # validation and injection targetPort: 15017 protocol: TCP - port: 15014 name: http-monitoring # prometheus stats protocol: TCP selector: app: istiod istio.io/rev: asm-1129-3 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
- 使用
kubectl
应用验证网络钩子配置:kubectl apply -f istiod-service.yaml
- 验证配置是否已应用:
kubectl get svc -n istio-system
响应应如下所示:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 22s
EKS
设置和下载 ASM
开始之前,请仔细阅读以下步骤。我们会要求您执行 ASM 文档中列出的某些步骤,然后返回此处完成安装。
本指南介绍了如何在 Anthos 关联集群上执行 Anthos Service Mesh (ASM) 1.12.9-asm.3 版本的全新安装。使用本指南可以在以下环境中安装 Anthos Service Mesh:
- Kubernetes 上的 Amazon Elastic Kubernetes Service (Amazon EKS)
- Kubernetes 上的 Microsoft Azure Kubernetes Service (Microsoft AKS)
- Red Hat OpenShift
准备安装 Anthos Service Mesh
- 将 Anthos Service Mesh 安装文件下载到当前工作目录中:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- 下载签名文件并使用 openssl 验证签名:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3-linux-amd64.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 将文件内容提取到文件系统上的任意位置。例如,如需将内容提取到当前工作目录,请运行以下命令:
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
该命令会在当前工作目录中创建一个名为
istio-1.12.9-asm.3
的安装目录,其中包含:samples
目录中的示例应用。- 用于安装 Anthos Service Mesh 的
istioctl
命令行工具位于bin
目录中。 - Anthos Service Mesh 配置文件位于
manifests/profiles
目录中。
- 确保您位于 Anthos Service Mesh 安装的根目录。
cd istio-1.12.9-asm.3
- 为方便起见,请将 /bin 目录中的工具添加到 PATH:
export PATH=$PWD/bin:$PATH
- 将 Anthos Service Mesh 安装文件下载到当前工作目录中:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- 下载签名文件并使用 openssl 验证签名:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3-osx.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 将文件内容提取到文件系统上的任意位置。例如,如需将内容提取到当前工作目录,请运行以下命令:
tar xzf istio-1.12.9-asm.3-osx.tar.gz
该命令会在当前工作目录中创建一个名为
istio-1.12.9-asm.3
的安装目录,其中包含:samples
目录中的示例应用。- 用于安装 Anthos Service Mesh 的
istioctl
命令行工具位于bin
目录中。 - Anthos Service Mesh 配置文件位于
manifests/profiles
目录中。
- 确保您位于 Anthos Service Mesh 安装的根目录。
cd istio-1.12.9-asm.3
- 为方便起见,请将 /bin 目录中的工具添加到 PATH:
export PATH=$PWD/bin:$PATH
- 将 Anthos Service Mesh 安装文件下载到当前工作目录中:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- 下载签名文件并使用 openssl 验证签名:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3-win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 将文件内容提取到文件系统上的任意位置。例如,如需将内容提取到当前工作目录,请运行以下命令:
tar xzf istio-1.12.9-asm.3-win.zip
该命令会在当前工作目录中创建一个名为
istio-1.12.9-asm.3
的安装目录,其中包含:samples
目录中的示例应用。- 用于安装 Anthos Service Mesh 的
istioctl
命令行工具位于bin
目录中。 - Anthos Service Mesh 配置文件位于
manifests\profiles
目录中。
- 确保您位于 Anthos Service Mesh 安装的根目录。
cd istio-1.12.9-asm.3
- 为方便起见,请将 \bin 目录中的工具添加到 PATH:
set PATH=%CD%\bin:%PATH%
- 现在,ASM Istio 已安装,请检查
istioctl
的版本:istioctl version
- 为控制平面组件创建一个名为 istio-system 的命名空间:
kubectl create namespace istio-system
Linux
Mac OS
Windows
安装 Anthos Service Mesh
- 使用
asm-multicloud
配置文件,利用istioctl
来安装 Anthos Service Mesh:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3"
--set revision
参数会将格式为istio.io/rev=asm-1129-3
的修订版本标签添加到 istiod。自动边车注入器网络钩子使用修订版本标签将注入的边车与特定 istiod 修订版本相关联。如需为命名空间启用边车自动注入功能,您必须使用一个与 istiod 上的标签匹配的修订版本来为其添加标签。 - 使用
kubectl get pods
检查istiod
pod 是否正在运行:kubectl get pods -n istio-system
输出应如下所示:
NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-dbfb7c7b6-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-dbfb7c7b6-fnj8c 1/1 Running 1 3m21s
- 验证安装是否已完成:
kubectl get svc -n istio-system
输出应如下所示:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
配置验证网络钩子
安装 Anthos Service Mesh 时,您可以在 istiod 上设置修订版本标签。您需要在验证网络钩子上设置相同的修订版本。
- 创建一个名为
istiod-service.yaml
且包含以下内容的文件:apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1129-3 app: istiod istio: pilot release: istio spec: ports: - port: 15010 name: grpc-xds # plaintext protocol: TCP - port: 15012 name: https-dns # mTLS with k8s-signed cert protocol: TCP - port: 443 name: https-webhook # validation and injection targetPort: 15017 protocol: TCP - port: 15014 name: http-monitoring # prometheus stats protocol: TCP selector: app: istiod istio.io/rev: asm-1129-3 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
- 使用
kubectl
应用验证网络钩子配置:kubectl apply -f istiod-service.yaml
- 验证配置是否已应用:
kubectl get svc -n istio-system
响应应如下所示:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 22s
OpenShift
设置和下载 ASM
开始之前,请仔细阅读以下步骤。我们会要求您执行 ASM 文档中列出的某些步骤,然后返回此处完成安装。
本指南介绍了如何在 Anthos 关联集群上执行 Anthos Service Mesh (ASM) 1.12.9-asm.3 版本的全新安装。使用本指南可以在以下环境中安装 Anthos Service Mesh:
- Kubernetes 上的 Amazon Elastic Kubernetes Service (Amazon EKS)
- Kubernetes 上的 Microsoft Azure Kubernetes Service (Microsoft AKS)
- Red Hat OpenShift
准备安装 Anthos Service Mesh
- 使用以下
oc
命令向 istio-system 授予anyuid
安全上下文限制条件 (SCC):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- 将 Anthos Service Mesh 安装文件下载到当前工作目录中:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- 下载签名文件并使用 openssl 验证签名:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3-linux-amd64.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 将文件内容提取到文件系统上的任意位置。例如,如需将内容提取到当前工作目录,请运行以下命令:
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
该命令会在当前工作目录中创建一个名为
istio-1.12.9-asm.3
的安装目录,其中包含:samples
目录中的示例应用。- 用于安装 Anthos Service Mesh 的
istioctl
命令行工具位于bin
目录中。 - Anthos Service Mesh 配置文件位于
manifests/profiles
目录中。
- 确保您位于 Anthos Service Mesh 安装的根目录。
cd istio-1.12.9-asm.3
- 为方便起见,请将 /bin 目录中的工具添加到 PATH:
export PATH=$PWD/bin:$PATH
- 使用以下
oc
命令向 istio-system 授予anyuid
安全上下文限制条件 (SCC):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- 将 Anthos Service Mesh 安装文件下载到当前工作目录中:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- 下载签名文件并使用 openssl 验证签名:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3-osx.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 将文件内容提取到文件系统上的任意位置。例如,如需将内容提取到当前工作目录,请运行以下命令:
tar xzf istio-1.12.9-asm.3-osx.tar.gz
该命令会在当前工作目录中创建一个名为
istio-1.12.9-asm.3
的安装目录,其中包含:samples
目录中的示例应用。- 用于安装 Anthos Service Mesh 的
istioctl
命令行工具位于bin
目录中。 - Anthos Service Mesh 配置文件位于
manifests/profiles
目录中。
- 确保您位于 Anthos Service Mesh 安装的根目录。
cd istio-1.12.9-asm.3
- 为方便起见,请将 /bin 目录中的工具添加到 PATH:
export PATH=$PWD/bin:$PATH
- 使用以下 OpenShift CLI (
oc
) 命令向 istio-system 授予anyuid
安全上下文限制条件 (SCC):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- 将 Anthos Service Mesh 安装文件下载到当前工作目录中:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- 下载签名文件并使用 openssl 验证签名:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3-win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 将文件内容提取到文件系统上的任意位置。例如,如需将内容提取到当前工作目录,请运行以下命令:
tar xzf istio-1.12.9-asm.3-win.zip
该命令会在当前工作目录中创建一个名为
istio-1.12.9-asm.3
的安装目录,其中包含:samples
目录中的示例应用。- 用于安装 Anthos Service Mesh 的
istioctl
命令行工具位于bin
目录中。 - Anthos Service Mesh 配置文件位于
manifests\profiles
目录中。
- 确保您位于 Anthos Service Mesh 安装的根目录。
cd istio-1.12.9-asm.3
- 为方便起见,请将 \bin 目录中的工具添加到 PATH:
set PATH=%CD%\bin:%PATH%
- 现在,ASM Istio 已安装,请检查
istioctl
的版本:istioctl version
- 为控制平面组件创建一个名为 istio-system 的命名空间:
kubectl create namespace istio-system
Linux
Mac OS
Windows
安装 Anthos Service Mesh
- 使用
asm-multicloud
配置文件,利用istioctl
来安装 Anthos Service Mesh:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3"
--set revision
参数会将格式为istio.io/rev=asm-1129-3
的修订版本标签添加到 istiod。自动边车注入器网络钩子使用修订版本标签将注入的边车与特定 istiod 修订版本相关联。如需为命名空间启用边车自动注入功能,您必须使用一个与 istiod 上的标签匹配的修订版本来为其添加标签。 - 使用
kubectl get pods
检查istiod
pod 是否正在运行:kubectl get pods -n istio-system
输出应如下所示:
NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-dbfb7c7b6-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-dbfb7c7b6-fnj8c 1/1 Running 1 3m21s
- 验证安装是否已完成:
kubectl get svc -n istio-system
输出应如下所示:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
配置验证网络钩子
安装 Anthos Service Mesh 时,您可以在 istiod 上设置修订版本标签。您需要在验证网络钩子上设置相同的修订版本。
- 创建一个名为
istiod-service.yaml
且包含以下内容的文件:apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1129-3 app: istiod istio: pilot release: istio spec: ports: - port: 15010 name: grpc-xds # plaintext protocol: TCP - port: 15012 name: https-dns # mTLS with k8s-signed cert protocol: TCP - port: 443 name: https-webhook # validation and injection targetPort: 15017 protocol: TCP - port: 15014 name: http-monitoring # prometheus stats protocol: TCP selector: app: istiod istio.io/rev: asm-1129-3 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
- 使用
kubectl
应用验证网络钩子配置:kubectl apply -f istiod-service.yaml
- 验证配置是否已应用:
kubectl get svc -n istio-system
响应应如下所示:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 22s
自定义 ASM 安装
您刚刚执行的 ASM 安装是最简安装,足够测试和使用 Apigee Hybrid 基本用例。如需了解如何处理更高级的用例(例如添加、移除或修改负载均衡器端口号),请参阅启用可选功能。
摘要
现在,您已经安装了 cert-manager 和 ASM,可以在本地机器上安装 Apigee Hybrid 命令行工具了。
1 2 3 (下一步)第 4 步:安装 apigeectl 5 6 7 8 9