问题标签 [istio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
742 浏览

kubernetes - 保护 Nginx-Ingress > Istio-Ingress

我有 Istio Ingress,它处理进入微服务的流量,微服务之间的流量在 ISTIO 域内被加密。但我不想将 ISTIO 入口暴露给公众。

因此尝试部署 NGINX 或 HAPROXY 入口(使用 https 证书)并将它们指向 ISTIO 入口,一切都运行良好。

我现在唯一担心的是 NGINX INGRESS(https 术语)> ISTIO INGRESS 之间的流量没有加密。

在 Istio 上获得完全加密流量但使用 NGINX/HAPROXY 入口的常用方法是什么。

我想一种方法是将 HAPROXY tcp 模式转换为 ISTIO 入口,并在 Istio 入口上提供证书。没有尝试过,但它应该可以工作。疯狂的想法是在 ISTIO mash 中运行 NGINX 入口,但是我会失去一些 Istio Ingress 功能。

推荐的方式或任何建议是什么。通常 Istio 是如何暴露在一些真实的 Prod 环境示例中的。

0 投票
0 回答
1257 浏览

kubernetes - 如何使用 rbac 保护 k8s 机密?

我在启用 rbac 的 GKE 中设置了一个 k8s 集群,并将 Istio 安装到集群中。

我按照此步骤(链接)为 Istio 入口控制器创建密钥/证书,并将密钥/证书存储为名称为 istio-ingress-certs 的秘密。

现在我想使用 RBAC 来限制对 istio-ingress-certs 的访问,以便允许 istio-system 中的每个组件读取秘密,但没有人可以修改或删除它。

我创建了一个 secrets-rbac.yaml 文件,然后运行 ​​kubectl apply -f secrets-rbac.yaml,它创建了一个角色来读取密钥,并将这个角色绑定到 istio-system 命名空间中的所有服务帐户。

验证服务帐户不允许修改 istio-ingress-certs。我用这个命令来测试。kubectl auth can-i edit secrets/istio-ingress-certs -n istio-system --as system:serviceaccount:istio-system:istio-pilot-service-account

我希望该命令会返回 false,但它会返回 true。我认为我没有在yaml文件中正确设置rbac,但我不清楚哪个部分不正确。

0 投票
2 回答
1813 浏览

sql-server - 无法从 Istio Envoy 代理连接到 SQL Server

我使用IstioEnvoy 作为 sidecar 代理。我已经部署了bookinfo示例并且它工作正常,但是当我部署我自己的应用程序时,它在 https 或其他外部服务上调用 SQL Server,它给出了异常。

与服务器成功建立连接,但在登录前握手期间发生错误。(提供者:TCP 提供者,错误:35 - 捕获到内部异常)

0 投票
2 回答
216 浏览

istio - ./bin/istioctl 上下文创建分段错误

我正在遵循这个安装 istio 的指南https://istio.io/docs/setup/consul/quick-start.html

在第 7 步,我注意到 Pilot 在我运行 docker-compose -f install/consul/istio.yaml up -d 后终止

所以我运行了 istioctl context-create。我遇到了一个段错误:

./bin/istioctl context-create panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x30 pc=0x1debb79]

goroutine 1 [running]: main.getDefaultNamespace(0xc42021c620, 0x20, 0x0, 0x0) /home/sebastienvas/go/src/istio.io/pilot/cmd/istioctl/main.go:700 +0x99 main.glob..func4(0x2892960, 0x28be4b8, 0x0, 0x0) /home/sebastienvas/go/src/istio.io/pilot/cmd/istioctl/main.go:86 +0x39 istio.io/pilot/vendor/github.com/spf13/cobra.(*Command).execute(0x2892960, 0x28be4b8, 0x0, 0x0, 0x2892960, 0x28be4b8) /home/sebastienvas/go/src/istio.io/pilot/vendor/github.com/spf13/cobra/command.go:637 +0x549 istio.io/pilot/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x2891760, 0x1df15f3, 0x0, 0x0) /home/sebastienvas/go/src/istio.io/pilot/vendor/github.com/spf13/cobra/command.go:729 +0x339 istio.io/pilot/vendor/github.com/spf13/cobra.(*Command).Execute(0x2891760, 0x0, 0x154) /home/sebastienvas/go/src/istio.io/pilot/vendor/github.com/spf13/cobra/command.go:688 +0x2b main.main() /home/sebastienvas/go/src/istio.io/pilot/cmd/istioctl/main.go:531 +0xc0

我升级到最新的 go 版本: go version go version go1.9.2 darwin/amd64 还是一样的问题

如果有人可以帮助我,我将不胜感激。

0 投票
1 回答
718 浏览

kubernetes - 使用 istio 和 zipkin 进行分布式跟踪时,是否可以发回 x-request-id?

在链接Istio/Distributed tracking之后,我可以使用 zipkin 进行跟踪。

目前,为了让客户端/调用者知道 x-request-id(如果没有发送 id,zipkin 会创建一个),他需要将其作为请求的一部分发送。

这使他能够跟踪请求。一切正常。

但是,我认为客户端发送 x-request-id 以避免约束/重复问题可能不是一个好主意。

如果可以在 istio 级别修改响应标头并将 x-request-id 发回,那将是一件好事。

我目前没有为 istio 找到这样的功能。如果有办法实现这一点,请告诉我。

0 投票
4 回答
46298 浏览

kubernetes - Istio Ingress 导致“上游没有健康”

我正在使用部署一个面向外的服务,该服务暴露在一个节点端口后面,然后是一个 istio 入口。部署使用手动边车注入。一旦部署、nodeport 和 ingress 运行起来,我就可以向 istio ingress 发出请求。

由于某些未知原因,该请求不会路由到我的部署,而是显示文本“上游不健康”。为什么会这样,是什么原因造成的?

我可以在 http 响应中看到状态码是 503(服务不可用),服务器是“特使”。部署正在运行,因为我可以将端口映射到它,并且一切都按预期工作。

0 投票
1 回答
155 浏览

istio - 无法通过 minikube 安装找到“istio-egress”服务

我按照“ https://istio.io/docs/setup/kubernetes/quick-start.html ”上提供的说明“确保部署了以下 Kubernetes 服务:istio-pilot、istio-mixer、istio-ingress、 istio-egress"

但是,当我执行“kubectl get svc --all-namespaces”时,只显示以下服务:

然后我在“install/kubernetes/istio.yaml”中搜索关键字“istio-egress”,找不到任何...这是 v0.3.0 的新内容吗?

0 投票
2 回答
376 浏览

kubectl - istio-ingress 无法启动

当我启动 minikube 并应用 istio.yaml 错误时,入口无法启动:

当我尝试查看日志时,我得到以下输出:

可能是什么原因?

0 投票
1 回答
343 浏览

istio - 错误:无法从命名空间“istio-system”读取有效的配置映射“istio”:无法转换为原型

团队,当我尝试 istio-0.3.0 时,出现错误。有小费吗?谢谢!

$ kubectl apply -f <(istioctl kube-inject -f myservice.yaml) Error: could not read valid configmap "istio" from namespace "istio- system": failed to convert to proto. unknown field "controlPlaneAuthPolicy" in istio_proxy_v1_config.ProxyConfig - Re-run kube-inject with-i 并确保存在有效的 MeshConfig 错误:没有传递给应用的对象`但是我检查了,configmap 就在命名空间“istio-system”中

$ kubectl get configmap -n istio-system NAME DATA AGE istio 1 2m istio-ingress-controller-leader-istio 0 2m istio-mixer 1 2m 仅供参考,我在那之前做了什么 curl -L https://git.io/getLatestIstio | sh - cd istio-0.3.0 kubectl apply -f install/kubernetes/istio-auth.yaml namespace "istio-system" created clusterrole "istio-pilot-istio-system" created clusterrole "istio-initializer-istio-system" created clusterrole "istio-mixer-istio-system" created clusterrole "istio-ca-istio-system" created clusterrole "istio-sidecar-istio-system" created clusterrolebinding "istio-pilot-admin-role-binding-istio-system" created clusterrolebinding "istio-initializer-admin-role-binding-istio-system" created clusterrolebinding "istio-ca-role-binding-istio-system" created clusterrolebinding "istio-ingress-admin-role-binding-istio-system" created clusterrolebinding "istio-sidecar-role-binding-istio-system" created clusterrolebinding "istio-mixer-admin-role-binding-istio-system" created configmap "istio-mixer" created service "istio-mixer" created serviceaccount "istio-mixer-service-account" created deployment "istio-mixer" created customresourcedefinition "rules.config.istio.io" created customresourcedefinition "attributemanifests.config.istio.io" created customresourcedefinition "deniers.config.istio.io" created customresourcedefinition "listcheckers.config.istio.io" created customresourcedefinition "memquotas.config.istio.io" created customresourcedefinition "noops.config.istio.io" created customresourcedefinition "prometheuses.config.istio.io" created customresourcedefinition "stackdrivers.config.istio.io" created customresourcedefinition "statsds.config.istio.io" created customresourcedefinition "stdios.config.istio.io" created customresourcedefinition "svcctrls.config.istio.io" created customresourcedefinition "checknothings.config.istio.io" created customresourcedefinition "listentries.config.istio.io" created customresourcedefinition "logentries.config.istio.io" created customresourcedefinition "metrics.config.istio.io" created customresourcedefinition "quotas.config.istio.io" created customresourcedefinition "reportnothings.config.istio.io" created attributemanifest "istioproxy" created attributemanifest "kubernetes" created stdio "handler" created logentry "accesslog" created rule "stdio" created metric "requestcount" created metric "requestduration" created metric "requestsize" created metric "responsesize" created metric "tcpbytesent" created metric "tcpbytereceived" created prometheus "handler" created rule "promhttp" created rule "promtcp" created configmap "istio" created customresourcedefinition "destinationpolicies.config.istio.io" created customresourcedefinition "egressrules.config.istio.io" created customresourcedefinition "routerules.config.istio.io" created service "istio-pilot" created serviceaccount "istio-pilot-service-account" created deployment "istio-pilot" created service "istio-ingress" created serviceaccount "istio-ingress-service-account" created deployment "istio-ingress" created serviceaccount "istio-ca-service-account" created deployment "istio-ca" created

0 投票
1 回答
142 浏览

istio - 将我通过 azure Draft 安装的应用程序集成到 Istio

我应该怎么做才能让我通过azure/draft安装的应用程序与 Istio 集成?

具体来说,在 Istio 官方文档中:

https://istio.io/docs/setup/kubernetes/quick-start.html

如果您没有安装 Istio-Initializer,则必须在部署之前使用 istioctl kube-inject 在应用程序 pod 中手动注入 Envoy 容器:

kubectl create -f <(istioctl kube-inject -f .yaml)

我应该在哪里修改由 azure/draft 创建的 Helm 图表文件夹以与 Istio 一起使用?