我们有一个在 Java 8 上运行的企业应用程序。部署环境是通过 Bitbucket 管道构建和更新的。我有一张显示环境高级架构的图形。除了一些特定于应用程序的环境变量之外,我们有两个运行相同配置的应用程序服务器。
一切都运行良好,直到一周前成功运行管道后,其中一台服务器上的 2 个应用程序实例停止工作并出现以下错误:
There is insufficient memory for the Java Runtime Environment to continue.
Cannot create GC thread. Out of system resources.
Run Code Online (Sandbox Code Playgroud)
两个实例在另一台服务器上都运行良好。相反,容器无法在此服务器上启动。
该错误伴随以下信息:
可能的原因: 系统物理 RAM 或交换空间不足 进程在启用 CompressedOops 的情况下运行,Java 堆可能会阻止本机堆的增长。
可能的解决方案:
我们已经尝试过:
以下是内存和交换消耗的情况: …
我正在尝试使用 docker-compose 启动一个 kafka 服务,它应该可以在 docker 内部和外部访问。因此,应该在内部和外部设置合适的广告商:
version: '3'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9094:9092"
environment:
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
KAFKA_LISTENERS: INSIDE://:9092,OUTSIDE://127.0.0.1:9094
KAFKA_ADVERTISED_LISTENERS: INSIDE://:9092,OUTSIDE://127.0.0.1:9094
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
Run Code Online (Sandbox Code Playgroud)
问题是当我尝试从集群外部连接时,我没有得到 127.0.0.1 作为节点的名称,而是内部主机名:
$ kafkacat -L -b 127.0.0.1:9094
Metadata for all topics (from broker -1: 127.0.0.1:9092/bootstrap):
1 brokers:
broker 1001 at 91588ea968d4:9092
28 topics:
...
Run Code Online (Sandbox Code Playgroud)
KAFKA_ADVERTISED_LISTENERS 和 KAFKA_LISTENERS 的目的不是处理这种情况吗?我尝试设置 KAFKA_ADVERTISED_HOST_NAME 但它被忽略了(一份文档说它已弃用,另一份说它仍然处于活动状态),但这似乎不是答案,因为我想要两个不同的广告主机名用于两个不同的网络。
我想老问题仍然存在:如何使 kafka 在 docker-compose 内外工作?
我尝试使用卸载 AKS 集群中的 helm 版本,helm uninstall RELEASE_NAME
但似乎失败了。发生故障的原因是,由于某种原因,当我使用 时,集群中的所有节点都处于未就绪状态helm uninstall
。
从那时起,我让所有节点都恢复并运行,并且集群正常运行。现在,当我尝试时helm list
,我不会再看到此版本,但执行 ahelm list -a
会显示该版本的状态仍处于uninstalling
状态。我已经尝试了很多方法,但在过去的 3-4 天里它一直卡在那里。
我尝试过使用helm uninstall RELEASE_NAME
,helm delete --purge RELEASE_NAME
但这些命令会抛出错误,因为版本已经处于uninstalling
状态。我尝试修改此特定版本的集群中的 Helm Secret,但这也没有帮助。Helm3
正在使用,所以我不能重新启动舵柄吊舱来稳定这个问题。
是否Helm3
使用某种可以修改的终结器机制来纠正此问题,或者是否没有其他方法可以尝试删除此版本?我希望将来也对特定 API 使用相同的版本名称。
任何帮助将不胜感激。
我正在尝试使用 jenkins 作业运行 docker compose down。“sudo docker-compose down --remove-orphans”
我在使用 docker-compose down 时使用了 --remove-orphans 命令。仍然给出以下错误。
正在删除网络。删除网络时出现 abc 错误:网络 id ************ 有活动端点 状态为 1 的命令失败: sudo docker-compose down --remove-orphans
下面是我的 docker 撰写:
version: "3.9"
services:
abc:
image: <img>
container_name: 'abc'
hostname: abc
ports:
- "5****:5****"
- "1****:1***"
volumes:
- ~/.docker-conf/<volume>
networks:
- <network>
container-app-1:
image: <img2>
container_name: 'container-app-1'
hostname: 'container-app-1'
depends_on:
- abc
ports:
- "8085:8085"
env_file: ./.env
networks:
- <network>
networks:
<network>:
driver: bridge
name: <network>
Run Code Online (Sandbox Code Playgroud) 我目前面临 Kubernetes 集群的问题,需要一些帮助。直到今天一切都进展顺利。但是,在我的 Ubuntu 系统上执行更新后,我无法建立从工作环境到 kubernetes 集群的连接。
\n执行命令时kubectl get pods
,我遇到以下错误消息:
E0805 09:59:45.750534 234576 memcache.go:265] couldn\xe2\x80\x99t get current server API group list: Get "http://localhost:3334/api?timeout=32s": EOF
以下是我的集群设置的详细信息:Kubernetes 1.27,裸机,主机系统是 Ubuntu 20.04
\n我将非常感谢有关解决此问题的任何指导或见解。
\n我目前正在阅读 helm 的文档,点 (.) 至少有 3 种不同的用途,是否有任何具体定义?它与 bash 使用(实际文件夹/文件)有什么共同之处吗?
文档中的一些案例
这会打印之前调用的范围内的访问文件吗?
{{- $files := .Files }}
{{- range tuple "config1.toml" "config2.toml" "config3.toml" }}
{{ . }}: |-
{{ $files.Get . }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)
这告诉“mychart.app”使用当前文件夹中的文件(类似 bash 的行为)
{{ include "mychart.app" . | indent 4 }}
Run Code Online (Sandbox Code Playgroud)
而这个,我想它从整个文件夹中获取值???我想这是不正确的,因为它不起作用(当时是另一名员工制作的,我必须修复它)
{{- define "read.select-annot" -}}
{{- range $key, $value := . }}
{{ $key }}: {{ $value }}
{{- end }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助
我正在尝试将参数从文件传递到 docker 文件。
我尝试将文件复制到 docker 容器中并使用 source 命令。
COPY docker.env .
RUN /bin/bash -c "source docker.env"
Run Code Online (Sandbox Code Playgroud)
BuildMode="release"
Run Code Online (Sandbox Code Playgroud)
export BuildMode="release"
Run Code Online (Sandbox Code Playgroud)
没有错误,但是当我尝试打印时ECHO $BuildMode
,它没有打印其中的值,就像它没有获取其中的值一样。
但是,如果我创建一个 docker 容器并在 docker 容器内尝试相同的代码,那么它就可以工作。
我创建了一些数据处理脚本,它们需要每天执行,但是PC的数量接近150台,我无法在所有PC上手动安装Python。
\n\n所以我需要一种方法让这些在这些 Windows 系统上工作,我尝试使用 PyInstaller 创建 exe 并将其放置在服务器上,但脚本执行在初始阶段花费了大量时间(程序执行是相同的,但需要时间来加载)闪烁的光标)可能是\xe2\x80\x99s依赖项的负载,文件接近36 MB。
\n\n有没有可能在没有安装 python 的环境中执行该 .py 文件,或者创建 python 环境并在主机 PC 中使用 .bat 脚本设置路径变量?在不要求每个人手动安装任何东西的情况下,我还有什么其他选择?我听说在这种情况下可以使用 docker,但是在本地环境中工作我应该部署这样的东西吗?
\n我正在使用 minikube(docker 驱动程序)和 kubectl 来测试 agones 舰队部署。运行后kubectl apply -f lobby-fleet.yml
(当我尝试应用任何其他 agones yaml 文件时),我收到以下错误:
error: resource mapping not found for name: "lobby" namespace: "" from "lobby-fleet.yml": no matches for kind "Fleet" in version "agones.dev/v1"
ensure CRDs are installed first
Run Code Online (Sandbox Code Playgroud)
大厅-fleet.yml:
apiVersion: "agones.dev/v1"
kind: Fleet
metadata:
name: lobby
spec:
replicas: 2
scheduling: Packed
template:
metadata:
labels:
mode: lobby
spec:
ports:
- name: default
portPolicy: Dynamic
containerPort: 7600
container: lobby
template:
spec:
containers:
- name: lobby
image: gcr.io/agones-images/simple-game-server:0.12 # Modify to …
Run Code Online (Sandbox Code Playgroud) kubernetes ×5
docker ×4
containers ×2
kubectl ×2
agones ×1
apache-kafka ×1
azure-aks ×1
dockerfile ×1
go-templates ×1
helm3 ×1
java ×1
jenkins ×1
k3s ×1
minikube ×1
pyinstaller ×1
python ×1
python-3.x ×1
tomcat ×1