小编Kri*_*nom的帖子

Kubernetes Pod 无法解析外部主机

我正在运行一个3 节点 Kubernetes 集群,其中 Flannel 作为 CNI。我使用 kubeadm 设置集群,版本是 1.23。

我的 Pod 需要使用 DNS 地址与外部主机通信,但这些主机没有 DNS 服务器。为此,我已将它们的条目添加到集群中每个节点的 /etc/hosts 中。节点可以从 DNS 解析主机,但 Pod 无法解析它们。

我尝试通过互联网搜索这个问题,并有建议使用 HostAlias 或更新容器内的 /etc/hosts 文件。我的问题是主机列表很大,在 yaml 文件中维护列表是不可行的。

我还查看了 Kubernetes 是否有一些内置标志来让 Pod 在 Node 的 /etc/hosts 中查找条目,但找不到它。

所以我的问题是 -

  1. 为什么节点上运行的 pod 无法解析 /etc/hosts 文件中存在的主机。
  2. 有没有办法设置本地 DNS 服务器并要求所有 Pod 查询该 DNS 服务器以获取特定主机解析?

也欢迎任何其他建议或解决方法。

dns kubernetes flannel kube-proxy

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

JFXPanel setScene 冻结与 Java 11

我想将 openjfx 集成到我的 Java 11 代码中。在 Windows 10 上使用 IntelliJ IDEA 2018.2.6,我创建了一个测试项目并尝试了下面的代码

import javafx.embed.swing.JFXPanel;
import javafx.scene.Scene;
import javafx.scene.control.TabPane;

public class Java11FXTestApplication {



    public static void main(String[] args) {
        JFXPanel dummyPanel;
        TabPane dummyTabPane;
        Scene dummyScene;
        System.out.println("Creating JFX Panel");
        dummyPanel = new JFXPanel();
        System.out.println("Creating  TabPane");
        dummyTabPane = new TabPane();
        System.out.println("Creating  Scene");
        dummyScene = new Scene(dummyTabPane);
        System.out.println("Setting  Scene");
        dummyPanel.setScene(dummyScene); //Freezing here
        System.out.println("Scene Created");
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码在 setScene() 方法调用中冻结。我尝试调试它,发现它的代码在 JFXPanel.setScene 方法中的 secondaryLoop.enter() 调用中无限期地等待。任何想法为什么?

此代码在 JDK-8 中运行良好,但不适用于 java-11.0.1。

我对这个问题一无所知,有点卡在 Java11 JavaFX 问题上。代码有问题吗?或任何报告的 javafx for java11 …

java windows openjfx java-11

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

LDC指令代码的负值是什么意思?

我对Java字节码世界非常陌生。我有一些涉及字节码的调试任务。在浏览时,我注意到一些看起来可疑的值,但我不确定。这是完整字节码的一部分

// access flags 0x100A
  private static synthetic $jacocoInit()[Z
    GETSTATIC ClassUnderTest.$jacocoData : [Z
    DUP
    IFNONNULL L0
    POP
    LDC -1475355800743669619
    LDC "ClassUnderTest"
    BIPUSH 64
    INVOKESTATIC org/jacoco/agent/rt/internal_1f1cc91/Offline.getProbes (JLjava/lang/String;I)[Z
    DUP
    PUTSTATIC ClassUnderTest.$jacocoData : [Z
   L0
Run Code Online (Sandbox Code Playgroud)

最关心的LDC -1475355800743669619。到目前为止,我了解到的是,这是一个类中用于常量值的字段。

如果LDC值可以为负,我会感到困惑吗?

我遇到的另一个问题是,对于JDK-8,同一类的LDC值为正,但是对于JDK-11,它为负。所以我的问题是,它也依赖于JDK吗?

java jvm bytecode jacoco java-11

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

Gradle 无法将 sysout 写入文件 - java.io.IOException:无法删除文件

我正在尝试将命令的输出放入某个文件。在写入文件之前,我想删除文件而不是进行写入操作。这是我的gradle脚本


group 'org.example'
version '1.0-SNAPSHOT'

task deletefiles(type: Delete){
    delete "$projectDir/somefile.txt"
}

task writefile(type: Exec, dependsOn: deletefiles){
    commandLine 'echo', "Hello World"
    standardOutput = new FileOutputStream("$projectDir/somefile.txt")
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行 writefile 任务时,出现以下错误

Execution failed for task ':deletefiles'.
> java.io.IOException: Unable to delete file 'D:\workspace\code\repo\sample-gradle-mono\somefile.txt'
Run Code Online (Sandbox Code Playgroud)

知道出了什么问题吗?

我猜的一件事是 gradle 在deletefiles任务可以开始之前以某种方式获取文件锁定。如果是这样,我们如何才能实现这一目标?

编辑 1:环境信息 -

------------------------------------------------------------
Gradle 6.3
------------------------------------------------------------

Build time:   2020-03-24 19:52:07 UTC
Revision:     bacd40b727b0130eeac8855ae3f9fd9a0b207c60

Kotlin:       1.3.70
Groovy:       2.5.10
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          11.0.4 (Oracle Corporation 11.0.4+11)
OS: …
Run Code Online (Sandbox Code Playgroud)

java groovy gradle

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

标签 统计

java ×3

java-11 ×2

bytecode ×1

dns ×1

flannel ×1

gradle ×1

groovy ×1

jacoco ×1

jvm ×1

kube-proxy ×1

kubernetes ×1

openjfx ×1

windows ×1