问题标签 [sidecar]
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.
macos - MacOS:连接特定 Sidecar 设备的终端命令是什么?
场景:我有一台与 Sidecar 兼容的 iMac Pro 和 iPad Pro。我通过电缆保持两个设备连接。
愿望/问题:当我启动或解锁 iMac 时,我想自动化这两个设备之间的 Sidecar 连接。(换句话说,我希望 iPad Pro 通过 Sidecar 作为辅助显示器启动,而无需通过系统偏好设置面板手动进行。)
问题:有人知道执行此操作的终端命令(或 Applescript)吗?
先感谢您。
kubernetes - GKE:将文件日志从 docker 容器发送到 Google Cloud Logging
我正在尝试在 GKE 上的应用程序 pod 中捕获一些基于文件的日志,并从 Google Cloud Logging 中查看它们。
由于各种原因,这些应用程序日志不会发送到 STDOUT 或 STDERR(因为这些日志会自动发送到 Cloud Logging)。有人建议我实施一个脚本解决方案,跟踪日志并将它们发送到 STDOUT。但是,我希望采用 Fluentd(或 Fluentbit)日志记录代理的侧车方法,该代理将跟踪日志并将它们输出到 Cloud Logging。
使用 sidecar image "k8s.gcr.io/fluentd-gcp:1.30"
,我尝试了下面的 YAML 文件(包含 fluentd configmap 和部署):
最初,sidecar 日志抛出 403 错误,因为我没有为服务帐户提供必要的权限(我使用的是 GKE 工作负载身份,并且相应的 GCP IAM 服务帐户需要添加 logWriter 权限)。修复错误后,我得到以下日志:
尽管消息成功,但我在 Cloud Logging 端看不到任何内容。
所以,这是我的问题:
- 这对我的用例有更好的解决方案吗?
- 是我应该使用的边车图像吗?我找不到任何其他流利的图像,而我使用的是 3 岁的图像。我更喜欢使用 Google 推荐的东西,而不是自己创建。
- 我还需要做什么才能查看 Cloud Logging 上的日志?我该如何进一步调试?
谢谢!
performance - 如何解读 Dapr Sidecar 性能测试?
如果我理解正确,Dapr 文档说单个边车在指定条件下使用 0.48 vCPU。
这是否意味着如果像 Netflix 或 Uber 这样的大型应用程序(使用超过一千个微服务)要使用 Dapr,那么它需要超过 480 个 vCPU?好吓人。
我哪里错了?
jenkins - Jenkins sidecar 方法 - 在主容器内运行多个容器
我试图从这里复制 Jenkins 中的边车方法:https ://www.jenkins.io/doc/book/pipeline/docker/#running-sidecar-containers但我试图在里面运行多个容器。我的代码看起来像这样:
然后,我试图通过设置 docker.sock 来列出通过 python 容器在 VM 中运行的所有容器,但是“docker ps -a”命令输出仅显示两个容器已启动并正在运行,并且没有关于redis 映像(甚至不在退出状态)但从 Jenkins 日志中我可以看到 redis 映像正在被拉取。我无法得到我在这里缺少的东西以及为什么 redis 容器没有在 'docker ps -a' 命令中列出。任何帮助和建议都会非常有帮助
kubernetes - 带有边车日志容器的 Cronjob 没有退出代码
Cronjob 需要退出代码才能使作业成功或失败,但以 sidecar 容器为例,日志容器继续运行并且没有退出代码,即使主容器的作业也可能成功运行,最终状态仍然失败。有什么办法可以缓解这个问题?!谢谢
.net - Dapr .Net SDK 的 InvokeMethodGrpcAsync() gRPC 调用问题
我在 Dapr 中启动了一个具有 gRPC 服务的应用程序。使用 id MyGrpcApi001 启动 Dapr。HTTP 端口:55319。gRPC 端口:55320
我已经使用以下命令启动它:
dapr run --app-id MyGrpcApi001 --app-protocol grpc --app-port 5000 -- dotnet run
原型:
我有一个客户端,它有 2 种使用 gRPC 连接到服务的方法
- 直接通过自动生成的客户端调用服务
- 另一个通过 dapr sidecar gRPC 端口
第二种方法似乎不起作用,所以直接调用有效,但是sidecar似乎没有找到服务。以下是两者的日志:
正在运行的服务的日志:
第一种方法OK:
第二种方法错误:
第二个似乎有错误的 URL,其中包括/dapr.proto.runtime. ...
我在这里做错了什么?dapr run 命令是错误的,还是 InvokeMethodGrpcAsync 方法的参数错误?
由于我可以直接通过自动生成的客户端运行该方法,我认为服务器工作正常,是 dapr 没有找到服务和/或方法。
有任何想法吗?
谢谢!
kubernetes - k8s sidecar收集的日志会不会丢失?
我使用k8s的sidecar方式来收集日志。如果我使用emptydiry挂载,当pod移动到另一个节点时,未收集的日志会丢失吗?
kubernetes - Kubernetes Pod 与 OpenVPN 客户端 sidecar 一起运行,并通过隧道和集群拥有功能性 DNS
我尝试构建一个运行需要的服务的 Pod:
- 由其 FQDN (
*.cluster.local
) 解析和访问的集群内部服务, - 同时还具有与远程集群的活动 OpenVPN 连接,并且来自该远程集群的服务将由其 FQDN (
*.cluster.remote
) 解析和访问。
Pod 中没有 OpenVPN sidecar 的服务容器可以访问所有使用*.cluster.local
命名空间提供 FQDN 的服务。这是/etc/resolv.conf
在这种情况下:
当 OpenVPN sidecar 管理时resolv.conf
OpenVPN sidecar 的启动方式如下:
OpenVPN 客户端配置包含以下几行:
然后 OpenVPN 客户端将覆盖resolv.conf
,使其包含以下内容:
在这种情况下,*.cluster.remote
解析中的任何服务,但没有来自 的服务*.cluster.local
。这是意料之中的。
当 OpenVPN sidecar 不管理resolv.conf
,但spec.dnsConfig
提供时
从 OpenVPN 客户端配置中删除以下行:
提供spec.dnsConfig
如下:
然后,resolv.conf
将是以下内容:
这适用于*.cluster.remote
,但不适用于任何东西*.cluster.local
,因为只要第一个超时,就会尝试第二个名称服务器。我注意到有些人会通过设置命名空间轮换和超时 1 秒来绕过这个限制,但是这种行为对我来说看起来很忙,我不会考虑这个,甚至不是一种解决方法。或者,也许我错过了一些东西。我的第一个问题是:在这种情况下轮换和超时可以工作吗?
我的第二个问题是:有什么方法可以使*.cluster.local
和*.cluster.remote
DNS 解析从 Pod 内的服务容器可靠地工作,而无需使用类似的东西dnsmasq
?
我的第三个问题是:如果dnsmasq
需要,我如何配置、提供和覆盖它,resolv.conf
同时确保 Kubernetes 提供的名称服务器可以是任何东西(169.254.25.10
在这种情况下)。
最好的,佐尔坦
kubernetes - How to configure sidecar container with the Cloud SQL Auth Proxy in SCDF
I have a Spring cloud data flow task that needs to be connected to Cloud SQL.
I understand, SCDF should configure sidecar container with the Cloud SQL Auth Proxy using below command.
deployer.sbs-http-reader-task.kubernetes.additionalContainers=[{name: 'sql-proxy-name', image: 'gcr.io/cloudsql-docker/gce-proxy:1.17', command: ['/cloud_sql_proxy','- instances=projectid:zoneid:sqlinstance=tcp:5432']}]
but neither I see any additional container created in the pod nor any reason for failure in the logs.
Please help me how can I configure the same.
kubernetes - k8s作业中的Sidecar redis实例
我的用例:
- 在 kubernetes 中运行一堆我自己的处理
Job
- 想要在处理的生命周期内关联一个短暂的
redis
缓存Job
- 当
Job
我的处理完成时应该完成,并且redis
应该消失
我不知道如何做到这一点,尽管我觉得我不能成为第一个需要这个的人。
如果我将redis
作为第二个容器添加到作业中spec
,那么我的处理完成但redis
继续进行,并且Job
永远不会完成。
我可以尝试将redis
我的处理添加到容器中,首先将其作为守护程序运行,然后运行我自己的代码,但这对我来说感觉不对。
我读过关于边车模式和其他一些人在寻找我需要的东西,但我没有看到任何明确的解决方案。我看到在我看来像共享卷和 livenessProbes 的黑客。
这如何最好地完成?