Tuesday 14 September 2021

podman-compose and podman pod

PowerDNS はinternal/externalと二つ上げる必要があるんですが、

 docker image が mysql db 一つを想定してる

学生の良くある「1,2 ... 動きません」だな。なので、db を copy しておいて

  mysql -u root -p
  create database extdns;
  use extdns;
  GRANT ALL ON *.* TO powerdns;

で、許可を出してやると良いらしい。そこで気がついたんですが、

  二つ目が port 53 already used

とかいう。つまり、podman-compose では ip-address / port の空間は共通らしい。

そこで、pythonなんかで書いてある podman-compose は見捨てることに。

やっとわかったんですが、pod を別にすれば ip-address / port の空間は別になるわけね。

つまり、pod と ip-address / port の空間は一対一と。

内向け
  podman pod create --name powerdns --network pdns-br350
  podman run --pod powerdns --env-file env-conf/internal/env-mysql.conf -v Mariadb:/var/lib/mysql -d mariadb --net-read-timeout=2000 --innodb_use_native_aio=0 --innodb_flush_method=fsync
  podman run --pod powerdns --name powerdns-pod --env-file env-conf/external/env-powerdns.conf -d pschiffe/pdns-mysql
  podman run --pod powerdns --name powerdns-admin --env-file env-conf/external/env-admin.conf -d aescanero/powerdns-admin

外向け
  podman pod create --name extdns --network extpdns-br350,extpdns-br48
  podman run --pod extdns --name extdns-pod --env-file env-conf/external/env-powerdns2.conf -d pschiffe/pdns-mysql
  podman run --pod extdns --name extdns-admin --env-file env-conf/external/env-admin2.conf -d aescanero/powerdns-admin

という感じ。いや、BIND9なら一つですむんですけどね。

pod で作れば k8s の yaml も吐いてくれるらしい。

これで、 internal/external が mysql 一つで動きました。mysql も別で良いなら podman-compose でよい。

まだまだ、続くわけですが...

No comments: