小编thu*_*der的帖子

为 DaemonSet 创建服务

我正在尝试通过服务访问侦听端口 18081 的 DaemonSet,但到目前为止未成功。

由 DaemonSet 启动的 pod 工作正常。我可以将端口转发到 pod 和端口 18081,并与端口上公开的 API 对话。

DaemonSet 的服务配置如下:

kind: Service
apiVersion: v1
metadata:
  name: monerod-service
spec:
  selector:
    name: monerod
  ports:
  - protocol: TCP
    port: 18081
Run Code Online (Sandbox Code Playgroud)

在 Kubernetes UI(kubectl 代理)中,服务中选择了正确的 Pod,因此 Pod 选择器似乎没问题。

我可以在需要连接到 monerod-service 的 pod 上执行 ping 并显示正确的 IP。但是通过 curl 连接到端口失败(相同的 curl 在端口转发测试中有效)。

我在配置中缺少什么。DaemonSet/Deployment 服务创建之间有区别吗?


更多地使用 Kubernetes

我玩弄了服务和 DaemonSet。我将 DaemonSet 转换为“正常”部署,但显示了相同的行为。因此该行为与 DaemonSets 无关。它必须是我不理解的服务/豆荚的其他东西。

我现在创建了服务:

kubectl expose deployment monerod-deployment --type=ClusterIP
Run Code Online (Sandbox Code Playgroud)

这导致以下服务:

{
  "kind": "Service",
  "apiVersion": "v1",
  "metadata": {
    "name": "monerod-deployment",
    "namespace": "default", …
Run Code Online (Sandbox Code Playgroud)

kubernetes

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

~|的意思 Common Lisp 格式

CLHS 描述了 22.3.1.4 波浪线垂直条:页面 如果可能,它会输出页面分隔符。~n| 这样做n次。

我没有找到太多的页面分隔符。在 MacOS 上使用 SBCL 2.0 进行尝试,页面分隔符似乎是换行符 (Ascii 0A)。这将使它与 ~% 相同?

在 Common Lisp 的悠久历史中,它是不是还有别的东西?

character common-lisp

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

字大小的 OUT 到字节 IO 寄存器?使用旧 VGA 代码中的指令设置序列控制器寄存器

我无法理解如何使用一些旧的 VGA 代码在此示例中设置序列控制器寄存器:

 mov     dx,SC_INDEX
 mov     ax,0604h
 out     dx,ax   ;disable chain4 mode
Run Code Online (Sandbox Code Playgroud)

该示例来自 Michael Abrash 的 VGA 书籍:https : //www.phatcode.net/res/224/files/html/ch47/47-02.html

根据描述,他想设置索引 4 处的内存模式寄存器。他想禁用位索引 3 处的 chain4(全部根据 Richard F. Ferraro 编写的 EGA、VGA 和超级 VGA 卡的程序员指南)。

我不明白为什么他将 2 个字节 06 和 04 放入 ax 和out它们。输出寄存器只有一个字节,他没有明确设置寄存器的索引以进行寻址。是不是发生了一些我不明白的魔法?

x86 assembly vga ioports

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

在Rust中错误的u128乘法?

在我打开bug之前,我想检查一下这里发生了什么.

我把这个C代码移植到Rust:

    unsigned __int128 r = (unsigned __int128)a * (unsigned __int128)b;
Run Code Online (Sandbox Code Playgroud)

很容易(我想):

    let r = (a as u128) * (b as u128);
Run Code Online (Sandbox Code Playgroud)

现在有了这个输入参数,我在C和Rust中获得了不同的乘法结果:

(0x56eaa5f5f650a9e3 as u128) * (0xa0cf24341e75bda9 as u128)
Run Code Online (Sandbox Code Playgroud)

Rust和C的结果不同:

Rust: 0x3698fbc09d2c5b15e8889b1b676bbddb
C:    0x3698fbc0f417010bded944fe676bbddb
                ^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

交叉检查了结果,得到了与C代码相同的结果.

我错过了什么吗?

===添加了上下文信息:

这是来自xmr-stak(https://github.com/fireice-uk/xmr-stak)的函数,其表现不同:

static inline uint64_t _umul128(uint64_t a, uint64_t b, uint64_t* hi)
{
    unsigned __int128 r = (unsigned __int128)a * (unsigned __int128)b;
    *hi = r >> 64;
    return (uint64_t)r;
}
Run Code Online (Sandbox Code Playgroud)

无论C实现是否错误,我都必须在Rust中重新创建精确的计算,因为这是哈希计算所需要的.

rust

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

标签 统计

assembly ×1

character ×1

common-lisp ×1

ioports ×1

kubernetes ×1

rust ×1

vga ×1

x86 ×1