小编Vai*_*ain的帖子

具有相同CIDR块的多个VPC和子网

我意识到我可以使用相同的CIDR块创建多个AWS VPC和子网,我不确定这背后的哲学是什么以及它是如何实现的.

amazon-ec2 vpc amazon-web-services amazon-vpc

12
推荐指数
1
解决办法
5609
查看次数

在Node.js中的单个HTTP请求中调用多个HTTP请求

我试图在单个URL调用中调用多个URL并在数组中推送它的json响应并发送该数组以响应最终用户.

我的代码看起来像这样:

var express = require('express');

var main_router = express.Router();

var http = require('http');

urls = [
"http://localhost:3010/alm/build_tool",
"http://localhost:3010/alm/development_tool",
"http://localhost:3010/alm/project_architecture"];

var responses = [];

main_router.route('/')

.get(function (req, res) {

var completed_requests = 0;

for (url in urls) {

  http.get(url, function(res) {

    responses.push(res.body);

    completed_request++;

    if (completed_request == urls.length) {

        // All download done, process responses array
    }
  });
}
res.send(responses);
});
Run Code Online (Sandbox Code Playgroud)

我也尝试使用npm请求模块.当我运行此代码时,它只返回NULL或一些只有标题的随机输出.

我的目标是在单个节点获取请求中调用多个URL,并将其JSON输出附加到阵列上并发送给最终用户.

谢谢

javascript json node.js npm express

9
推荐指数
1
解决办法
2万
查看次数

Kubernetes pod 长时间处于终止状态接收流量

我有一个应用程序服务,运行着 2 个 pod,这些 pod 正在接收来自 Kubernetes 集群中另一个服务的流量。

我面临的问题是我的 Pod 被终止并且无法满足飞行中的请求。

因此,为了解决这个问题,我添加了一个 pod 生命周期 preStop 挂钩,以等待 250 秒来完成所有待处理的请求,并将 TerminationGracePeriodSeconds设置 为 300 秒。

lifecycle:
  preStop:
    exec:
      command:
      - /bin/sleep
      - "250"
Run Code Online (Sandbox Code Playgroud)

现在我期望的是,当 Pod 转换到 Terminate 状态时,它应该停止接收新请求,只满足它已经有的请求,但这并没有发生。

Pod 持续接收流量直到最后一秒,最终在 preStop 完成后被杀死,最终调用应用程序收到 502 错误代码。

因此,为了调试此问题,我进一步进行了操作,并怀疑可能是端点在服务中未正确更新,但我错了。当 Pod 转换到终止状态时,端点将从服务中删除,但 Pod 继续获取流量。

然后我登录到节点并检查 IPtables 以获取 IP 表转发规则,以验证 pod IP 是否仍然存在,但当 pod 转换为 Terminate 时,IPtable 转发规则立即更新。

>sudo iptables -t nat -L  KUBE-SVC-MYVS2X43QAGQT6BT -n | column -t
Chain                      KUBE-SVC-MYVS2X43QAGQT6BT  (1   references)
target                     prot                       opt  source       destination
KUBE-SEP-HDK3MJ4L3R3PLTOQ …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services kubernetes kube-proxy amazon-eks nginx-ingress

6
推荐指数
0
解决办法
1511
查看次数

Jenkins kubernetes插件无法正常工作

我正在尝试使用jenkins-kubernetes插件设置Jenkins Dynamic slaves创建.

我的jenkins在K8s Cluster外面运行.

链接:https://github.com/jenkinsci/kubernetes-plugin

我的jenkins版本是2.60.2,Kubernetes插件版本是1.1.2

我按照自述文件中提到的步骤进行操作并成功设置连接.

我的设置如下: 在此输入图像描述

连接成功.

然后我用pod模板创建了一个作业: 在此输入图像描述

这里开始出现问题: 1.当我最初运行此作业时,它运行并且我的pod中的jenkins slave容器无法连接并抛出:

在此输入图像描述

我已经启用JNLP端口(50000)不确定它是否是正确的端口,即使在Jenkins中使用随机选项进行测试也没有用.

现在我放弃了这个詹金斯的工作并再次运行它说:

 Started by user Vaibhav Jain
[Pipeline] podTemplate
[Pipeline] {
[Pipeline] node
Still waiting to schedule task
Jenkins doesn’t have label defaultlabel
Run Code Online (Sandbox Code Playgroud)

并且没有任何pod正在kubernetes开始.这很奇怪.

我不确定我做错了什么.需要帮忙!

jenkins jenkins-plugins kubernetes jenkins-pipeline jenkins-2

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

Jenkins 配置因系统用户异常而恢复

我在 Kubernetes 上作为 pod 运行 Jenkins 版本 2.85(亲和力设置为一个工作节点)。我通过将 XML 传递给该模块来使用Salt Jenkins 模块创建作业。

我正在使用 Jenkins Global Library 来执行作业。

我的工作配置如下所示在此输入图像描述 在此输入图像描述在此输入图像描述

我正在使用 repoURL、componet 等参数调用 GobalLibrary,

几周来一切都很顺利,现在我遇到了一个奇怪的情况,我的作业配置(config.xml)自动更新/恢复。

我的“使用参数构建”选项间歇性地消失,我只能在 Jenkins GUI 中看到“立即构建”。最初我以为有人在这样做,所以为了跟踪配置更改,我在 Jenkins 中安装了作业配置历史记录插件,但我发现很奇怪。用户名为“SYSTEM”的人正在进行/恢复更改。

这就是它的样子

在此输入图像描述

我发现系统用户仅恢复作业配置更改,而不恢复管道。

在此输入图像描述 在此输入图像描述

我不确定幕后出了什么问题以及如何阻止或解决这个问题。这是我的生产实例,所以我更担心。

我可以在我的 Jenkins 中看到一个 SYSTEM 用户

在此输入图像描述

但我无法删除该用户

在此输入图像描述

我为此找到了一些相关问题,但没有答案

Jenkins 上的系统用户更新作业配置

Jenkins 系统用户删除自定义工作区配置

我不确定这个 Jenkins Bug 或某个插件是否在玩弄我的灵魂。

需要帮忙!:(

continuous-integration jenkins jenkins-plugins salt-stack jenkins-pipeline

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

在kubernetes内运行并编织为网络的docker容器内没有互联网连接

我有一个在AWS EC2实例上运行的kubernetes集群,并编织为networking(cni)。我已经禁用了docker网络(ipmask和iptables),因为它是由weave管理的(以避免网络冲突)。

我已经将我的Jenkins作为K8s pod部署在了这个集群上,并且这个jenkins使用jenkins kubernetes插件基于我定义的pod和容器模板生成了动态的slave。这些从属容器中具有docker客户端,该客户端通过docker.sock连接到主机docker引擎。

因此,当我在Jenkins中运行任何作业时,它将启动一个从属服务器,并在此服务器上克隆git存储库并开始构建存储库中存在的Dockerfile。

我的样本dockerfile看起来像这样:

FROM abc:123
RUN yum update
Run Code Online (Sandbox Code Playgroud)

因此,当容器开始构建容器时,它将尝试连接到redhat仓库以更新本地仓库,并在此处失败。为了进行调试,我登录到该容器并尝试wget / CURL一些软件包,发现该容器中没有Internet连接。

我怀疑在构建docker时会启动中间容器,而这些容器没有通过编织进行管理,因此它们没有Internet连接。

需要建议。

相关问题:Kubernetes中Docker容器内部的Internet连接

jenkins jenkins-plugins docker kubernetes weave

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

Istio envoy 504 网关在出站连接 15 秒后超时

背景:

\n\n

我使用的是istio 1.2.5

\n\n

我已经使用 istio 文档中的 helm 默认配置文件部署了 istio,将跟踪、kiali 和 logLevel 启用为“调试”。

\n\n

我的 pod 和 istio 系统命名空间中的服务如下所示:

\n\n
(\xe2\x8e\x88 |cluster-dev:default)\xe2\x9e\x9c  istio-1.2.5 git:(master) \xe2\x9c\x97 k pods -n istio-system\nNAME                                      READY     STATUS    RESTARTS   AGE\ngrafana-97fb6966d-cv5fq                   1/1       Running   0          1d\nistio-citadel-76f9586b8b-4bbcx            1/1       Running   0          1d\nistio-galley-78f65c8469-v5cmn             1/1       Running   0          1d\nistio-ingressgateway-5d5487c666-jjhb7     1/1       Running   0          1d\nistio-pilot-65cb5648bf-4nfl7              2/2       Running   0          1d\nistio-policy-8596cc6554-7sgzt             2/2       Running   0          1d\nistio-sidecar-injector-76f487845d-ktf6p   1/1       Running   0          1d\nistio-telemetry-5c6b6d59f6-lppqt          2/2       Running   0          1d\nistio-tracing-595796cf54-zsnvj            1/1       Running   0          1d\nkiali-55fcfc86cc-p2jrk                    1/1       Running   0          1d\nprometheus-5679cb4dcd-h7qsj               1/1       Running   0          1d\n\n(\xe2\x8e\x88 |cluster-dev:default)\xe2\x9e\x9c …
Run Code Online (Sandbox Code Playgroud)

kubernetes microservices istio amazon-eks

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

GKE 上的 Istio - 准入 Webhook 无法注入 sidecar-porxy

我一直在尝试在现有的 GKE 集群上设置 Istio。

我按照 Istio 网站上提到的步骤进行安装 - 先决条件。

https://istio.io/latest/docs/setup/platform-setup/gke/

我有一个私有集群,因此我在先决条件中添加了防火墙规则。

gke-aiq-kubernetes-0a227ee8-all               default  INGRESS    1000      tcp,udp,icmp,esp,ah,sctp            False
gke-aiq-kubernetes-0a227ee8-master            default  INGRESS    1000      tcp:10250,tcp:443,tcp:15017         False
gke-aiq-kubernetes-0a227ee8-vms               default  INGRESS    1000      tcp:1-65535,udp:1-65535,icmp        False
Run Code Online (Sandbox Code Playgroud)

然后使用演示配置文件安装 istio。

istioctl install --set profile=demo
Run Code Online (Sandbox Code Playgroud)

然后验证安装

istioctl verify-install
Run Code Online (Sandbox Code Playgroud)

这说明一切都成功了。

我用 namecpace 标记为“instio-inject=enabled”,这样我就会自动注入 sidecar porxy。

但是当我尝试在命名空间中部署某些内容时,出现以下错误:

Error from server (InternalError): error when creating "pod-pending.yaml": Internal error occurred: failed calling webhook "sidecar-injector.istio.io": Post https://istiod.istio-system.svc:443/inject?timeout=30s: context deadline exceeded
Run Code Online (Sandbox Code Playgroud)

据我了解,存在一些连接问题,但我不知道如何调试它。

我尝试了 istio 的调试页面:

https://github.com/istio/istio/wiki/Troubleshooting-Istio#diagnostics

运行命令后:

kubectl get --raw /api/v1/namespaces/istio-system/services/https:istiod:https-webhook/proxy/inject -v4
Run Code Online (Sandbox Code Playgroud)

我确信这是连接问题:

t -v5
I1113 …
Run Code Online (Sandbox Code Playgroud)

google-compute-engine google-cloud-platform kubernetes google-kubernetes-engine istio

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