Closed4
Portainer (Ver 20.0.2) のDocker Swarm (Ver 26.0.0) へのStackのデプロイが成功しない
なんかまだDocker 26がリリースされてから日が浅いっぽく、その影響かいろいろまだまだPortainerもバグっているっぽい。
デプロイ失敗の他にも、Portainer v19系だとコンテナへのAttatchなどに失敗する、などが既知のバグとして存在する模様。
症状
今回のデプロイが成功しないの問題の症状としては
- https://docs.portainer.io/start/install-ce/server/swarm/linux 通りにコマンドを実行
- 9443ポートでPortainerの初期セットアップ画面が開く、
- しかしEnvironmentが存在せず、初期セットアップから始めることになる 又は
- 既存のEnvironmentが存在し、
docker ps -a
をするとエージェントがデプロイされているが、portainer.Snapshot.Docker: portainer.DockerSnapshot.SnapshotRaw: portainer.DockerSnapshotRaw.Info: types.Info.Swarm: swarm.Info.Cluster: swarm.ClusterInfo.Spec: swarm.Spec.Dispatcher: swarm.DispatcherConfig.HeartbeatPeriod: readUint64: unexpected character: , error found in #10 byte of ...|tPeriod":"5s"},"CACo|..., bigger context ...|eartbeatTick":1},"Dispatcher":{"HeartbeatPeriod":"5s"},"CAConfig":{"NodeCertExpiry":"2160h0m0s"},"Ta|...
などのエラーが表示され、Environment管理画面に接続できない 等
解決策
最悪&なんかやってみたらできただけの解決策とも呼べない何かだが、
- とりあえずEnvironmentをAdd
- 環境を聞かれるのでDocker Swarmを選択
- 接続方法を聞かれるのでEdge Agent Standardを選び、Nameとして適当な名前を入れる (後で変更可能) それ以外はそのままで
-
sudo docker service create --name portainer_edge_agent --network portainer_agent_network -e EDGE=1
からはじまるエージェント追加用コマンドが出てくるので、SwarmのManagerで実行 - 1分ぐらい待ってPortainerを開くと正常にEnvironmentを管理できるように
とりあえず↑のコマンド&元のstackファイルを元に一応動きはするportainer-agent-stack.ymlっぽい何かを作った。Portainerのバージョンがstsを参照しているので注意。
version: "3.2"
services:
edge_agent:
image: portainer/agent:sts
environment:
- EDGE=1
- EDGE_ID=
- EDGE_KEY=
- EDGE_INSECURE_POLL=1
- AGENT_CLUSTER_ADDR=tasks.edge_agent
deploy:
mode: global
placement:
constraints:
- node.platform.os == linux
volumes:
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
- type: bind
source: /var/lib/docker/volumes
target: /var/lib/docker/volumes
- type: bind
source: /
target: /host
- type: volume
source: portainer_agent_data
target: /data
networks:
- agent_network
portainer:
image: portainer/portainer-ce:sts
command: -H tcp://tasks.agent:9001 --tlsskipverify
ports:
- "9443:9443"
- "9000:9000"
- "8000:8000"
volumes:
- portainer_data:/data
networks:
- agent_network
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
networks:
agent_network:
driver: overlay
attachable: true
volumes:
portainer_data:
portainer_agent_data:
このスクラップは2024/05/03にクローズされました