小编mip*_*pnw的帖子

我可以为由 Istio 配置的经典 AWS ELB 定义子域吗?

我在 AWS EKS 托管的 Kubernetes 集群中部署了 Istio。这创建了一个名为 istio-ingressgateway 的 LoadBalancer 类型的 Kubernetes 服务,外部主机名为[redacted]-redacted.us-west-2.elb.amazonaws.com,并自动配置了一个 AWS ELB,类型为经典。那太棒了。(注意:在 AWS 控制台中,我没有看到此 elb 主机名的托管区域,看起来我无法配置别名或诸如此类的东西)

我已经能够通过定义一个打开端口 80 的 istio 网关host:"*",并定义一个将端口 80路由到我的目的地(某些端口一些 kubernetes 服务)。到现在为止还挺好。

现在我想为集群中的第二个 gRPC 端点执行此操作。据我所知,我的选择是:要么通过在入口上打开第二个端口(比如 81)来路由(我现在选择不这样做)。或者通过定义 的子域进行[redacted]-redacted.us-west-2.elb.amazonaws.com路由,或者通过实现“虚拟主机”进行路由,即客户端host:"svc1"在标头中发送的同一域上的两个服务。

这就是我被困的地方。不知道怎么给这个ELB域名定义子域,也不知道能不能用TLS做虚拟主机,如果能,还能不能用Istio的“passthrough”tls模式,以免网关上的 TLS 终止。

1- 使用子域:当我在我的开发机器上尝试时,getent hosts svc1.[redacted]-redacted.us-west-2.elb.amazonaws.com它不映射到 IP,而如果删除svc1前缀 DNS 返回 3 个 IP(猜测 us-west-2 中的 3 个可用区)。所以我不能在没有一些工作的情况下为域添加 svc1 前缀。

我是否可以定义子域svc1以及svc2为通过部署 Istio 自动配置的经典 AWS ELB 创建的域,如果可以,如何定义?我可以通过kubectl/istioctl配置 Istio 来执行此操作,还是需要使用 AWS CLI …

amazon-web-services amazon-elb grpc istio kubernetes-ingress

5
推荐指数
1
解决办法
541
查看次数

Android 上的 AWS Cognito 身份池导致 Google 身份验证失败

NotAuthorizedException:Token is not from a supported provider of this identity pool我打电话时得到一个Amazon.CognitoIdentity.AmazonCognitoIdentityClient.GetIdAsync()

我不明白为什么,令牌是通过身份验证获得的GoogleSignInApi,并且 AWS 身份池配置为使用用于在 Android 设备上进行身份验证的相同“Google WebApp 客户端 ID”与 Google 身份验证提供程序联合。

在此处输入图片说明

我也尝试使用 2 种不同的方式获取 Google 令牌

  • 使用的结果.RequestIdToken()GoogleSignInOptions
  • 通过调用GoogleAuthUtil.GetTokenAPI

两个令牌在检查时是不同的,两者看起来都是好的令牌,并且在给AmazonCognitoIdentityClient. 显然,用户在 Android 设备上已通过身份验证,该应用程序能够获取电子邮件、显示名称等...

var googleSignInOptions = new 
GoogleSignInOptions.Builder(GoogleSignInOptions.DefaultSignIn)
   .RequestIdToken("Google WebApp Client ID")
   .RequestEmail()
   .Build();

mGoogleApiClient = new GoogleApiClient.Builder(this)
   .EnableAutoManage(
      this, // FragmentActivity
      this) // OnConnectionFailedListener
   .AddApi(Auth.GOOGLE_SIGN_IN_API, gso)
   .Build();

mGoogleApiClient.Connect();

var result = await Auth.GoogleSignInApi.SilentSignIn(mGoogleApiClient);

// Only need one or the …
Run Code Online (Sandbox Code Playgroud)

android amazon-web-services amazon-cognito google-signin aws-cognito

4
推荐指数
1
解决办法
1467
查看次数

无法 brew switch go 版本

我已经安装了 1.13.1 和 1.12.9 版本

$brew list --versions | grep go
go 1.13.1
go@1.12 1.12.9
Run Code Online (Sandbox Code Playgroud)

但是我无法切换到 1.12,一个错误表明我只安装了 1.13.1 版本,这与之前的清单相矛盾。

$brew switch go 1.12
Error: go does not have a version "1.12" in the Cellar.
go installed versions: 1.13.1
Run Code Online (Sandbox Code Playgroud)

当我仔细查看 go 版本时(没有 grep)

$brew list --versions go
go 1.13.1
Run Code Online (Sandbox Code Playgroud)

所以我在安装 go 1.12 时一定是做错了什么,但是什么?我用过brew install go@1.12,我应该用另一种语法吗?

homebrew go

4
推荐指数
1
解决办法
5511
查看次数

通过 Istio 入口网关的 TLS 握手失败 (tlsMode=passthrough)

从外部客户端到 Kubernetes 集群内服务器的 TLS 握手失败。这是关于理解原因。

我已配置 Istio 入口网关以通过端口 15433 上收到的 TLS,并将其路由到端口 433 上的服务器。

入口网关日志显示客户端尝试 TLS 握手时的活动,但不显示服务器日志,也不显示 istio-proxy 日志。

TLS 客户端

openssl s_client \ 
        -connect [redacted]-[redacted].us-west-2.elb.amazonaws.com:15443 \ 
        -servername myservice.mynamespace \ 
        -CAfile /path/to/ca.cert \ 
        -cert /path/to/cert.pem \ 
        -key /path/to/cert.key <<< "Q"
Run Code Online (Sandbox Code Playgroud)

日志

CONNECTED(00000006) 
140090868934296:error:140790E5:SSL routines:ssl23_write:ssl handshake failure:s23_lib.c:177: 
--- 
no peer certificate available 
--- 
No client certificate CA names sent 
--- 
SSL handshake has read 0 bytes and written 298 bytes 
--- 
New, (NONE), Cipher is (NONE) 
Secure Renegotiation IS NOT supported …
Run Code Online (Sandbox Code Playgroud)

ssl openssl istio

3
推荐指数
1
解决办法
5884
查看次数

无论 --jobs 是什么,GNU Make 都只使用 4 个线程

无论--jobs我要提出什么论点,我总是得到 4 个线程。

make --jobs=1 target我可以这样开始的标准输出线看make[1]:make[2]:make[3]:make[4]:当我只会想到一个单独的线程。

如果我使用make --jobs=100 target,结果相同,我得到 4 个线程而不是 100 个。

我不确定这是否相关,但我在 docker 容器中运行 make 并且 docker 有 7 个可用的本地主机内核。

>docker info
Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 7
Run Code Online (Sandbox Code Playgroud)

在 Alpine Linux docker 容器内

>make --version
GNU Make 4.2.1
Built for x86_64-alpine-linux-musl

>grep -c ^processor /proc/cpuinfo
7
Run Code Online (Sandbox Code Playgroud)

确认容器获得 7 个内核。

有什么我可以运行的东西可以帮助我缩小为什么 make 会这样?

makefile gnu-make docker

0
推荐指数
1
解决办法
46
查看次数