我意识到我可以使用相同的CIDR块创建多个AWS VPC和子网,我不确定这背后的哲学是什么以及它是如何实现的.
我试图在单个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输出附加到阵列上并发送给最终用户.
谢谢
我有一个应用程序服务,运行着 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
我正在尝试使用jenkins-kubernetes插件设置Jenkins Dynamic slaves创建.
我的jenkins在K8s Cluster外面运行.
链接:https://github.com/jenkinsci/kubernetes-plugin
我的jenkins版本是2.60.2,Kubernetes插件版本是1.1.2
我按照自述文件中提到的步骤进行操作并成功设置连接.
连接成功.
这里开始出现问题: 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
我在 Kubernetes 上作为 pod 运行 Jenkins 版本 2.85(亲和力设置为一个工作节点)。我通过将 XML 传递给该模块来使用Salt Jenkins 模块创建作业。
我正在使用 Jenkins Global Library 来执行作业。
我正在使用 repoURL、componet 等参数调用 GobalLibrary,
几周来一切都很顺利,现在我遇到了一个奇怪的情况,我的作业配置(config.xml)自动更新/恢复。
我的“使用参数构建”选项间歇性地消失,我只能在 Jenkins GUI 中看到“立即构建”。最初我以为有人在这样做,所以为了跟踪配置更改,我在 Jenkins 中安装了作业配置历史记录插件,但我发现很奇怪。用户名为“SYSTEM”的人正在进行/恢复更改。
这就是它的样子
我发现系统用户仅恢复作业配置更改,而不恢复管道。
我不确定幕后出了什么问题以及如何阻止或解决这个问题。这是我的生产实例,所以我更担心。
我可以在我的 Jenkins 中看到一个 SYSTEM 用户
但我无法删除该用户
我为此找到了一些相关问题,但没有答案
我不确定这个 Jenkins Bug 或某个插件是否在玩弄我的灵魂。
需要帮忙!:(
continuous-integration jenkins jenkins-plugins salt-stack jenkins-pipeline
我有一个在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连接。
需要建议。
背景:
\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) 我一直在尝试在现有的 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
kubernetes ×5
jenkins ×3
amazon-eks ×2
istio ×2
amazon-ec2 ×1
amazon-vpc ×1
docker ×1
express ×1
javascript ×1
jenkins-2 ×1
json ×1
kube-proxy ×1
node.js ×1
npm ×1
salt-stack ×1
vpc ×1
weave ×1