Podman:如何解析使用Kubernetes YAML部署的Pod的主机名

plupiseo  于 2023-03-07  发布在  Kubernetes
关注(0)|答案(1)|浏览(213)

我使用的是podman 4.5-dev,我使用以下工具部署了两个pod:* 波德曼·库贝玩foo.yaml**波德曼·库贝玩酒吧.yaml*
我在文件中指定了pod的主机名,但是它们在container中无法解析。我验证了pod在同一个网络中。
是否缺少一些DNS配置?我应该使用服务吗?官方文档缺乏关于此主题的精确指示
下面是两个pod中的一个的YAML(另一个具有相同的键和不同的值):

apiVersion: v1
kind: Pod
metadata:
  labels:
    app: postgres
  name: postgres
spec:
  hostname: postgres
  containers:
  - name: pgadmin-container
    image: docker.io/dpage/pgadmin4:latest
    ports:
    - containerPort: 80
      hostPort: 9876

下面是一些可能有用的终端输出:

[daniele@localhost]$ podman pod inspect xptssrv |grep -ni network
25:          "HostNetwork": false,
34:          "Networks": [
35:               "podman-default-kube-network"
37:          "NetworkOptions": null,

[daniele@localhost]$ podman pod inspect postgres |grep -ni network
25:          "HostNetwork": false,
34:          "Networks": [
35:               "podman-default-kube-network"
37:          "NetworkOptions": null,


[daniele@localhost]$ podman network inspect podman-default-kube-network |grep "" -n
1:[
2:     {
3:          "name": "podman-default-kube-network",
4:          "id": "a4dcf21f020ee4e36651c11256cbe884182552e835eaaafd409153cd21dca4cc",
5:          "driver": "bridge",
6:          "network_interface": "cni-podman1",
7:          "created": "2023-02-21T23:03:25.800256942+01:00",
8:          "subnets": [
9:               {
10:                    "subnet": "10.89.0.0/24",
11:                    "gateway": "10.89.0.1"
12:               }
13:          ],
14:          "ipv6_enabled": false,
15:          "internal": false,
16:          "dns_enabled": false,
17:          "ipam_options": {
18:               "driver": "host-local"
19:          }
20:     }
21:]

[daniele@localhost pods]$ podman exec  xptssrv-xptssrv-container cat /etc/resolv.conf 
nameserver 192.168.1.6
nameserver 8.8.8.8
6yjfywim

6yjfywim1#

/etc/containers/net.d/podman-default-kube-network.conflist中编辑网络设置更改此行

"dns_enabled": false,

对此:

"dns_enabled": true,

然后重新启动并启动你的yaml,并尝试解决这个问题:

postgres_pgadmin-container_1

或者这样:

postgres_postgres_1

编辑1

只需复制配置文件:

sudo cp /usr/share/containers/containers.conf /etc/containers/containers.conf

然后在文件中使用以下命令将网络后端更改为netavark:

sed -i "/^\s*\#*\s*network_backend\s*=.*$/ s/^.*$/network_backend = \"netavark\"/" /etc/containers/containers.conf
    • 注意:**我认为最好重新启动系统以应用更改。

相关问题