我们的GKE集群共享给公司的多个团队。每个团队可以有不同的公共域(因此希望有不同的CA证书设置和不同的入口网关控制器)。在Istio怎么做?Istio网站上的所有教程/介绍文章都使用了共享入口网关。请参见ISTIO-1.0.0安装的共享入口网关示例:https://istio.io/docs/tasks/traffic-management/secure-ingress/
spec:
selector:
istio: ingressgateway # use istio default ingress gateway
好的,我找到了答案后,看了代码的Istio安装通过Helm。因此,基本上istio有一个官方的方法(但在他们的readme.md文件中没有真正记录)来添加额外的网关(入口和出口网关)。我知道这一点,因为我在他们的github repo中找到了这个yaml文件,并阅读了注释(还查看了gateway
图表模板代码,以了解规范及其逻辑)。
因此,我通过定义这个values-custom-gateway.yaml文件来解决这个问题:
# Gateways Configuration
# By default (if enabled) a pair of Ingress and Egress Gateways will be created for the mesh.
# You can add more gateways in addition to the defaults but make sure those are uniquely named
# and that NodePorts are not conflicting.
# Disable specifc gateway by setting the `enabled` to false.
#
gateways:
enabled: true
agung-ingressgateway:
namespace: agung-ns
enabled: true
labels:
app: agung-istio-ingressgateway
istio: agung-ingressgateway
replicaCount: 1
autoscaleMin: 1
autoscaleMax: 2
resources: {}
# limits:
# cpu: 100m
# memory: 128Mi
#requests:
# cpu: 1800m
# memory: 256Mi
loadBalancerIP: ""
serviceAnnotations: {}
type: LoadBalancer #change to NodePort, ClusterIP or LoadBalancer if need be
ports:
## You can add custom gateway ports
- port: 80
targetPort: 80
name: http2
# nodePort: 31380
- port: 443
name: https
# nodePort: 31390
- port: 31400
name: tcp
secretVolumes:
- name: ingressgateway-certs
secretName: istio-ingressgateway-certs
mountPath: /etc/istio/ingressgateway-certs
- name: ingressgateway-ca-certs
secretName: istio-ingressgateway-ca-certs
mountPath: /etc/istio/ingressgateway-ca-certs
如果您看一下上面的yaml文件,我指定了命名空间
,而不是istio-system
ns。在这种情况下,我们可以有一种方法来定制定制网关使用的TLS和ca证书。此外,Agung-IngressGateway
作为自定义网关控制器规范的持有者,被用作网关控制器的名称。
helm upgrade my-istio-release-name <istio-chart-folder> --install
一旦成功升级,我就可以将自定义选择器指定到我的网关
:
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: agung-gateway
namespace: agung-ns
spec:
selector:
app: agung-istio-ingressgateway # use custom gateway
# istio: ingressgateway # use Istio default gateway implementation
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
- port:
number: 443
name: https
protocol: HTTPS
tls:
mode: SIMPLE
serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
privateKey: /etc/istio/ingressgateway-certs/tls.key
hosts:
- "*"
我有一个在kubernetes pod中运行的应用程序(在我的本地docker桌面上,启用kubernetes),监听端口8080。然后我有以下kubernetes配置 这个很好用。但我想把443端口改成其他端口,比如8443(因为我将有多个网关)。当我有这个,我不能再访问应用程序了。是否有一些配置我遗漏了?我猜我需要配置Istio来接受8443端口?我使用以下命令安装了istio: 编辑:我读了
我明白,对于处理器,我只需在文件夹下的中编写代码,然后从中创建一个nar文件。但是在控制器服务的情况下,我有4个文件夹生成。我可以看到两个java文件。 > 显示在文件夹下 显示在文件夹下 现在,为什么在自定义控制器服务的情况下生成两个java文件,而在自定义处理器的情况下只生成一个java文件。另外,由于我试图模仿服务,其中的java文件中有两个我应该复制服务的原始源代码。 请从头开始指导我创建
我试图在安装服务网格、网关和应用路由策略后,在我的Istio入口网关上启用HTTPS。最初的Istio安装是使用一个配置文件完成的,该配置文件包括一个istio-ingress网关服务。当我这样做时,它将入口网关创建为,而不是。 我看了这个:https://istio.io/latest/docs/tasks/traffic-management/ingress/secure-ingress/但是
这起作用了 这不是
我尝试使用openshift路由配置istio入口。据我所知,请求路径如下:
问题内容: 例如,我想创建一个类似于AngularJS实现“电子邮件”的自定义输入类型。 我要创建的是这样的输入类型: 关于如何做到这一点的任何想法?到目前为止,我仅能弄清楚如何实现自定义指令,其中“ path”是标记,属性或类的名称。 例如,我可以使它工作,但是它与其他表单字段 不一致 ,我真的希望它们看起来相同。 问题答案: 如果type属性设置为“ path”,则可以通过使用自定义逻辑创建输