我正在尝试用以下结构为我的服务创建一个舵手图:
.
├── my-app
│ ├── Chart.yaml
│ ├── templates
│ │ ├── deployment.yaml
│ │ ├── istio-virtualservice.yaml
│ │ └── service.yaml
│ └── values.yaml
安装helm chart后,部署和服务已成功创建,但virtualservice尚未创建。
$ helm install -name my-app ./my-app -n my-namespace
$ kubectl get pods -n my-namespace
NAME READY STATUS RESTARTS AGE
my-app-5578cbb95-xzqzk 2/2 Running 0 5m
$ kubectl get vs
NAME GATEWAYS HOSTS AGE
<Empty>
我的 istio 虚拟服务 yaml 文件如下所示:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: my-virtual-service
spec:
hosts:
- {{$.Values.props.host | quote}}
gateways:
- my-api-gateway
http:
- match:
- uri:
prefix: /app/
rewrite:
uri: "/"
route:
- destination:
port:
number: 8083
host: my-service.my-namespace.svc.cluster.local
令人惊讶的是,如果我在helm安装完成部署应用程序之后应用上面的yaml,那么就会创建virtualservice。
$ kubectl apply -f istio-vs.yaml
$ kubectl get vs
NAME GATEWAYS HOSTS AGE
my-virtual-service [my-api-gateway] [my-host.com] 60s
请帮我调试这个问题,如果需要更多的调试信息,请告诉我。
$ helm version
version.BuildInfo{Version:"v3.0.1", GitCommit:"7c22ef9ce89e0ebeb7125ba2ebf7d421f3e82ffa", GitTreeState:"clean", GoVersion:"go1.13.4"}
$ istioctl version
client version: 1.4.1
control plane version: 1.4.1
data plane version: 1.4.1 (2 proxies)
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.6-beta.0", GitCommit:"e7f962ba86f4ce7033828210ca3556393c377bcc", GitTreeState:"clean", BuildDate:"2020-01-15T08:26:26Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.6-beta.0", GitCommit:"e7f962ba86f4ce7033828210ca3556393c377bcc", GitTreeState:"clean", BuildDate:"2020-01-15T08:18:29Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"linux/amd64"}
使用
kubectl get vs -n my-namespace
而不是
kubectl get vs
这是因为您已经在my namespace命名空间中部署了所有内容。
头盔安装-命名我的应用程序。/my-app -n我的命名空间
您正在默认名称空间中搜索虚拟服务。
当您自己应用它时,它是有效的,因为虚拟服务yaml中没有命名空间,它部署在默认的命名空间中。
附加信息,我看到您已经部署了网关,如果它与虚拟服务不在同一名称空间中,您应该像下面的示例那样添加它。
检查<代码>规格。网关部分
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo-Mongo
namespace: bookinfo-namespace
spec:
gateways:
- some-config-namespace/my-gateway # can omit the namespace if gateway is in same
namespace as virtual service.
我希望这能回答你的问题。如果您还有其他问题,请告诉我。
我正在Istio服务网格上观看Pluralsight视频。演示文稿的一部分是这样说的: VirtualService使用库伯内特斯服务查找所有pod的IP地址。VirtualService不会通过[库伯内特斯]服务路由任何流量,但它只是使用它来获取流量可能去往的endpoint列表。 它显示了这个图形(显示pod发现,而不是流量路由): 我对此有点困惑,因为我不知道Istio如何知道要查看哪个库伯
行动时刻 - 创建两个虚拟服务器 在本练习中,我们将创建两个非常简单的虚拟服务器。 一个将接受所有身份验证请求,而另一个将拒绝所有身份验证请求。 在FreeRADIUS配置目录内的sites-available目录下,使用以下内容创建名为always_accept的文件: server always_accept { authorize { update control {
在sites-available目录中创建新的虚拟服务器。 为此新虚拟服务器配置并指定单独的SQL数据库。 将此虚拟服务器链接到启用站点(sites-available)的目录。 在client.conf文件中将VPN服务器定义为客户端,并使用virtual_server指令强制将此新虚拟服务器用于RADIUS请求。 sites-available目录下的buffered-sql虚拟服务器可以用作
FreeRADIUS 2.x分支的一个主要新功能是引入虚拟服务器。 这个概念并不新鲜,并且在2.x分支诞生时已经被Web服务器使用。 然而,freeradius是第一个将虚拟服务器引入到radius中的。 本章将更深入地了解RADIUS中虚拟服务器的世界。 在本章中,我们将: 了解您使用虚拟服务器的原因 了解如何定义和启用虚拟服务器 探索监听和客户端部分 发现预定义的虚拟服务器 让我们继续吧...
创建Azure VM时,必须将其放入云服务(新的或现有的)中。 这是否与通过Visual Studio部署Web和辅助角色时创建的Azure云服务的逻辑结构完全相同? 我可以将VS中的角色部署到通过VM创建创建的云服务中吗?我可以将VM部署到通过VS部署创建的云服务中?如果这两个都是真的,那么“独立”VM与角色VM之间的关系如何?它是否只是独立于虚拟机角色在云服务中浮动? 提前感谢!
行动时刻 - 为计算机科学系创建一个虚拟服务器 Isaac发现,计算机科学系的教师通过默认设置来实现安全。 其RADIUS服务器使用端口2812进行身份验证,使用2813进行记帐。 它有一个用户文件,其中包含用户的entre详细信息。 RADIUS客户端仅向RADIUS服务器发送身份验证请求。 下表列出了重要信息: Informaton item Detail User store users f