AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-450811

rookie099's questions

Martin Hope
rookie099
Asked: 2023-12-05 23:21:32 +0800 CST

Debian 升级后 Pacemaker 无法再启动 Nginx

  • 5

我有一个 Pacemaker 集群,它控制多个 type 资源ocf:heartbeat:IPaddr2和一个 type资源ocf:heartbeat:nginx。升级到 Debian 12 后,它无法再启动 Nginx。发生的情况是,Pacemaker 尝试在一侧启动 Nginx,40 秒后放弃,然后在另一侧尝试,40 秒后再次放弃。在这两个 40 秒的时间间隔内,Nginx 看起来都正常工作。在这些尝试之后,Nginx 资源保持停止状态,并且错误消息显示“nginx start on ...无法执行(超时:资源代理未在 40 秒内完成)”。

我已经查看了各种日志文件,但尚未找到原因。如何进一步诊断并解决这个问题?(作为一种解决方法,我可以在 Pacemaker 的控制之外启动 Nginx systemctl start nginx.service。与集群的正常操作相比,这不是最理想的,但确实表明配置完好无损。)

nginx
  • 1 个回答
  • 28 Views
Martin Hope
rookie099
Asked: 2020-11-24 07:05:31 +0800 CST

尽管持有能力 CAP_NET_BIND_SERVICE,Apache 容器无法绑定到已知端口

  • 0

当尝试在启动的 systemd 容器中运行 Apache 时systemd-nspawn --private-users=pick ...(与--private-users=false此解决方案不同),我遇到此错误:

Permission denied: AH00072: make_sock: could not bind to address ...:999

令我困惑的是容器已被授予能力CAP_NET_BIND_SERVICE(getpcaps 1容器内部也证实了这一点),--capability=help表明该能力是受支持的,并且netcat -l 999 -s ...(也在容器内部)显然可以在同一个端口上监听就好了。

我错过了什么?该功能是否应该允许容器内的进程打开主机上的知名端口,无论它们的 PID 是什么?

更新我在调用netcat. 正确的命令行是netcat -vl -p 999 -s ...,现在这会产生“无法抓取 ...:999 with bind : Permission denied”。所以事实上 Apache 和 netcat 都不能在这一点上绑定,这不是 Apache 特定的。关于配置的另外两个事实:容器正在运行root(映射到主机上的非根 pid),iptables主机上是空的。

更新所以也许能力CAP_NET_BIND_SERVICE根本无法超越用户命名空间。

systemd containers
  • 1 个回答
  • 272 Views
Martin Hope
rookie099
Asked: 2020-08-11 00:02:22 +0800 CST

尽管有限制 PodSecurityPolicy,经过身份验证的用户仍然可以创建 Kubernetes pod

  • 0

我正在尝试使用PodSecurityPolicyKeycloak 提供的用户管理的裸机 Kubernetes 1.18.3 集群开始。psp/restricted应该适用于namespace/restricted(对于特定用户user和命名空间的serviceaccount/default),并且psp/unrestricted应该适用于namespace/unrestricted. 我有基本的工作(PodSecurityPolicy安装准入控制器等),并且有以下资源:

apiVersion: v1
kind: List
items:
- kind: Role
  apiVersion: rbac.authorization.k8s.io/v1
  metadata:
    name: user
    namespace: restricted
  rules:
  - apiGroups: ["*"]
    resources: ["*"]
    verbs: ["*"]
- kind: RoleBinding
  apiVersion: rbac.authorization.k8s.io/v1
  metadata:
    name: user
    namespace: restricted
  subjects:
  - kind: Group
    name: user
    apiGroup: rbac.authorization.k8s.io
  roleRef:
    kind: Role
    name: user
    apiGroup: rbac.authorization.k8s.io
- kind: PodSecurityPolicy
  apiVersion: policy/v1beta1
  kind: PodSecurityPolicy
  metadata:
    name: restricted
  spec:
    privileged: false
    seLinux:
      rule: RunAsAny
    supplementalGroups:
      rule: RunAsAny
    runAsUser:
      rule: RunAsAny
    fsGroup:
      rule: RunAsAny
    volumes:
    - '*'
- kind: PodSecurityPolicy
  apiVersion: policy/v1beta1
  kind: PodSecurityPolicy
  metadata:
    name: unrestricted
  spec:
    privileged: true
    hostNetwork: true
    seLinux:
      rule: RunAsAny
    supplementalGroups:
      rule: RunAsAny
    runAsUser:
      rule: RunAsAny
    fsGroup:
      rule: RunAsAny
    volumes:
    - '*'
- kind: ClusterRole
  apiVersion: rbac.authorization.k8s.io/v1
  metadata:
    name: restricted
  rules:
  - apiGroups: ["policy"]
    resources: ["podsecuritypolicies"]
    verbs: ["use"]
    resourceNames:
    - restricted
- kind: ClusterRole
  apiVersion: rbac.authorization.k8s.io/v1
  metadata:
    name: unrestricted
  rules:
  - apiGroups: ["policy"]
    resources: ["podsecuritypolicies"]
    verbs: ["use"]
    resourceNames:
    - unrestricted
- kind: ClusterRoleBinding
  apiVersion: rbac.authorization.k8s.io/v1
  metadata:
    name: restricted
  subjects:
  - kind: ServiceAccount
    name: default
    namespace: restricted
  - kind: User
    name: user
    apiGroup: rbac.authorization.k8s.io
  roleRef:
    kind: ClusterRole
    name: restricted
    apiGroup: rbac.authorization.k8s.io
- kind: ClusterRoleBinding
  apiVersion: rbac.authorization.k8s.io/v1
  metadata:
    name: unrestrictied
  subjects:
  - kind: Group
    name: system:nodes
    apiGroup: rbac.authorization.k8s.io
  - kind: ServiceAccount
    name: default
    namespace: unrestricted
  roleRef:
    kind: ClusterRole
    name: unrestricted
    apiGroup: rbac.authorization.k8s.io

在use许可方面,一切看起来都符合预期,例如:

kubectl auth can-i use podsecuritypolicy/restricted --as user --as-group=system:authenticated # yes
kubectl auth can-i use podsecuritypolicy/unrestricted --as user --as-group=system:authenticated # no

但我观察到的是,虽然serviceaccount:restricrted:default无法在 中创建特权 pod namespace/restricted,但用户user显然仍然可以(在该用户通过集群身份验证时):

kubectl create -f - <<EOF # succeeds (as expected)
apiVersion: v1
kind: Pod
metadata:
  name: unprivileged-test-pod
  namespace: restricted
spec:
  containers:
  - name:  pause
    image: k8s.gcr.io/pause
EOF
kubectl create -f - <<EOF # succeeds (unexpected)
apiVersion: v1
kind: Pod
metadata:
  name: privileged-test-pod
  namespace: restricted
spec:
  containers:
  - name:  pause
    image: k8s.gcr.io/pause
    securityContext:
      privileged: true
EOF

两个创建的容器都带有一个 annotation kubernetes.io/psp: unrestricted,而我希望pod/unrestricted在用户user通过身份验证时创建 for 失败。事情按预期工作(即通过命名空间中的成功和失败分别kubectl create deployment间接创建受限制的不受限制的部署。不知何故,用户(但不是服务帐户似乎绑定到了过于广泛的安全策略。serviceaccount:defaultrestricted

我错过了什么?如何进一步诊断和解决问题(即防止serviceaccount/defaultinnamespace/restricted和用户user在namespace/restricted?

更新我想我现在已经隔离了根本原因,但还不知道一个好的解决方案。看起来resources: ["*"],verbs: ["*"]inrole/user也授予use任何(集群范围的)资源的权限psp。这是无意的:我想role/user允许user内部的“常规”活动,而namespace/restricted不是一一允许。usepsp

security kubernetes
  • 1 个回答
  • 120 Views
Martin Hope
rookie099
Asked: 2020-08-05 03:19:02 +0800 CST

为什么第一次会话结束时基于 Alpine 的 sshd 会关闭?

  • 0

我有一个简单的 Docker 容器,用于有目的 sshd的服务器,其图像源自alpine:latest. 它目前/usr/sbin/sshd -D -e -ddd用作其入口点。当我ssh进入它以远程运行某个命令时,该命令可以正常执行,但随后sshd容器立即关闭。

在其他地方session optional pam_loginuid.so,在启用/etc/pam.d/sshd. 这听起来很有希望,但 Alpine 的sshd(来自apk add openssh)显然没有 PAM,而且我不确定这将如何发挥作用。

有人可以告诉我如何sshd使基于 Alpine 的容器在许多 SSH 会话中持续存在以支持正常操作吗?

更新sshd这是关闭之前的日志输出的最后几行:

Received disconnect from 1.2.3.4 port 29213:11: disconnected by user
Disconnected from user rts 1.2.3.4 port 29213
debug1: do_cleanup
debug3: mm_request_receive entering
debug1: do_cleanup
ssh pam docker alpine
  • 1 个回答
  • 345 Views
Martin Hope
rookie099
Asked: 2019-12-14 00:26:04 +0800 CST

无法在 Kubernetes 容器中执行 sh:从关闭的文件中读取,设备上没有剩余空间

  • 0

我的 Kubernetes v1.16.3 集群中的一个节点最终处于一种奇怪的状态。该节点正在运行 Debian 10.1 和 Docker 19.03.1。当我尝试kubectl exec sh进入该节点上的容器时,我在节点中看到这些错误消息journalctl -u docker(第二个也由kubectl自身报告):

stream copy error: reading from a closed fifo
Error running exec ... in container: failed to create runc console socket: mkdir /tmp/pty...: no space left on device ..."

在这一点上,我看不到哪个设备可能已满。一个简单df的不会引起任何警报。我该如何进一步诊断和纠正这种情况?

顺便说一句,到目前为止,问题一直存在于kubectl drain、 、systemctl restart docker、 重新启动kube-proxy和 CNI 的 pod 以及其他几个措施中。

docker
  • 1 个回答
  • 502 Views
Martin Hope
rookie099
Asked: 2019-08-22 23:40:05 +0800 CST

Pacemaker 资源操作的默认间隔、超时等

  • 0

Pacemaker 资源代理在其元数据中提及其操作超时、间隔等的默认值。例如,crm_resource --show-metadata=ocf:heartbeat:IPaddr2列出一些:

<actions>
<action name="start" timeout="20s" />
<action name="stop" timeout="20s" />
<action name="status" depth="0" timeout="20s" interval="10s" />
<action name="monitor" depth="0" timeout="20s" interval="10s" />
<action name="meta-data" timeout="5s" />
<action name="validate-all" timeout="20s" />
</actions>

当我在配置资源时(例如 with )没有指定显式值时,这些是否会被视为默认值,crm configure primitive ip_test IPaddr2 params ip=1.2.3.4 nic=eth0 cidr_netmask=32 iflabel=test或者当我想使用此类默认值(例如 with crm configure primitive ip_test ... op monitor timeout=20s interval=10s)时,我是否必须明确设置它们?

我目前的假设是第二种情况,除非另有明确设置,否则所有超时、间隔等通常默认为 0(而不是元数据中提到的任何默认值)。但是我在文档中没有找到任何明确的声明,也没有找到可以显示所有相关值的命令(crm resource show ip_nginx),所以我正在联系可能更了解的人。

pacemaker
  • 1 个回答
  • 1753 Views
Martin Hope
rookie099
Asked: 2019-01-25 23:26:54 +0800 CST

使用相同的 DNS 名称作为主机名和子域

  • 7

我可以配置一个 DNS 区域,使两者都a.b.c可以b.c用作主机名吗?换句话说,可以b.c同时是子域和主机名吗?

这可能只是为in区域提供A和NS(对于委派)记录的问题吗?bc

domain-name-system
  • 2 个回答
  • 2825 Views
Martin Hope
rookie099
Asked: 2019-01-16 04:26:51 +0800 CST

为什么要在 Pacemaker 集群中禁用 DRBD

  • 8

DRBD 文档(在将 DRBD 与 Pacemaker 集群集成部分)建议应在 Pacemaker 集群中禁用 DRBD:

如果您正在使用 DRBD OCF 资源代理,建议您将 DRBD 启动、关闭、升级和降级专门推迟到 OCF 资源代理。这意味着您应该禁用 DRBD 初始化脚本:chkconfig drbd off.

在 systemd 下,这相当于systemctl disable drbd.service.

尽管有此建议,但启用 DRBD 有什么害处吗?这个想法是启用 DRBD,但禁用 Corosync 和 Pacemaker,以便在集群节点发生故障并重新启动后,它将继续接收 DRBD 同步的数据,但否则将保持“被动”状态。这应该允许在故障节点重新进入集群之前对其进行分析,但同时实时数据仍保存在两个集群节点上。建议背后的理由是什么?

drbd
  • 3 个回答
  • 1915 Views
Martin Hope
rookie099
Asked: 2018-04-04 07:00:18 +0800 CST

apt-cache 依赖/rdepends 是否总是反向的

  • 1

apt-cache depends/rdepends并不总是彼此相反是否有意义?

例如,我有一个主机,其中apt-cache rdepends liblognorm1列出了这些反向依赖项:rsyslog liblognorm-dev,但apt-cache depends rsyslog不包括liblognorm1(仅liblognorm5)它的依赖项。

这是功能还是错误?

debian
  • 1 个回答
  • 205 Views
Martin Hope
rookie099
Asked: 2018-03-17 00:43:26 +0800 CST

Pacemaker 集群中的死节点:“无法完成 CIB 注册”

  • 0

我有一种情况,升级后两节点 Pacemaker 集群不再工作。软件包版本在 Debian Jessie 下pacemaker 1.1.16-1~bpo8+。corosync 2.4.2-3~bpo8+1

Pacemaker 仍然能够在一个节点上启动。crm_node -l然后将该节点列为在线,第二个列为丢失。

Pacemaker 无法再在第二个节点上启动。以下日志消息/var/log/corosync/logfile似乎相关:

cib: info: validate_with_relaxng: Creating RNG parser context
pacemakerd: error: pcmk_child_exit: The cib process (1234) exited: Key has expired (127)
pacemakerd: notice: pcmk_process_exit: Respawning failed child process: cib
...
cib: info: validate_with_relaxng: Creating RNG parser context
pacemakerd: error: pcmk_child_exit: The cib process (1235) exited: Key has expired (127)
pacemakerd: notice: pcmk_process_exit: Respawning failed child process: cib
...
crmd: warning: do_cib_control: Couldn't complete CIB registration 1 times... pause and retry
...
crmd: warning: do_cib_control: Couldn't complete CIB registration 16 times... pause and retry 
crmd: notice: crm_shutdown: Shutting down cluster resource manager | limit=1200000ms
pacemakerd: notice: pcmk_shutdown_worker: Shutdown complete

因此,似乎第二个节点尝试 CIB 注册并在 16 次尝试失败后取消 Pacemaker 启动,并且第一个节点认为第二个节点可能因为无法注册而死亡。

谁能摆脱这样的局面?

pacemaker
  • 1 个回答
  • 1003 Views
Martin Hope
rookie099
Asked: 2018-01-06 05:50:14 +0800 CST

Debian 软件包 ifenslave 真的需要绑定吗?

  • 3

这段Debian 文档指出包ifenslave是绑定所必需的:

首先安装 ifenslave 包,这是启用绑定所必需的

然而,我知道有两个 Debian 7.10(wheezy)主机dpkg --get-selections | grep ifenslave返回ifenslave-2.6 install(即未安装软件包)并且有多个条目/proc/net/bonding/*带有MII Status: up.

那么封装ifenslave真的需要粘合吗?

debian
  • 1 个回答
  • 1222 Views
Martin Hope
rookie099
Asked: 2018-01-06 04:14:22 +0800 CST

从 QLogic 获取 InfiniBand 适配器的固件版本

  • 1

如何在 Debian 服务器上找到 QLogic InfiniBand 适配器的正确固件版本号?

ibstat显示一个空的版本号,如下所示:

Firmware version: 
Hardware version: 2

lspci -vvv对这个问题也保持沉默,如下所示:

InfiniBand: QLogic Corp. IBA7322 QDR InfiniBand HCA (rev 02)
Subsystem: QLogic Corp. IBA7322 QDR InfiniBand HCA
debian
  • 1 个回答
  • 268 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve