ฉันต้องการเริ่ม etcd (โหนดเดียว) ในนักเทียบท่าจาก systemd แต่มีบางอย่างผิดพลาด - จะถูกยกเลิกประมาณ 30 วินาทีหลังจากเริ่มต้น
ดูเหมือนว่าบริการจะเริ่มในสถานะ "เปิดใช้งาน" แต่ถูกยกเลิกหลังจากนั้นประมาณ 30 วินาทีโดยไม่ถึงสถานะ "คล่องแคล่ว". อาจมีการส่งสัญญาณที่ขาดหายไประหว่าง docker container และ systemd?
อัปเดต (ดูด้านล่างของโพสต์): ถึงสถานะบริการ systemd ล้มเหลว (ผลลัพธ์: หมดเวลา)
- เมื่อฉันถอด รีสตาร์ท = เมื่อล้มเหลว
การเรียนการสอน.
เมื่อฉันตรวจสอบสถานะของบริการ etcd หลังจากบูต ฉันได้รับผลลัพธ์นี้:
$ sudo systemctl สถานะ etcdâ etcd.service - etcd โหลดแล้ว: โหลดแล้ว (/etc/systemd/system/etcd.service; เปิดใช้งาน; ค่าที่ตั้งไว้ล่วงหน้าของผู้ขาย: ปิดใช้งาน)
ใช้งานอยู่: กำลังเปิดใช้งาน (รีสตาร์ทอัตโนมัติ) (ผลลัพธ์: exit-code) ตั้งแต่วันพุธที่ 2021-08-18 20:13:30 UTC; 4 วินาทีที่แล้ว
กระบวนการ: 2971 ExecStart=/usr/bin/docker run -p 2380:2380 -p 2379:2379 --volume=etcd-data:/etcd-data --name etcd my-aws-account.dkr.ecr.eu- north-1.amazonaws.com/etcd:v3.5.0 /usr/local/bin/etcd --data-dir=/etcd-data --name etcd0 --advertise-client-urls http://10.0.0.11: 2379 --listen-client-urls http://0.0.0.0:2379 --initial-advertise-peer-urls http://10.0.0.11:2380 --listen-peer-urls http://0.0.0.0: 2380 --initial-cluster etcd0=http://10.0.0.11:2380 (รหัส=ออก, สถานะ=125)
PID หลัก: 2971 (รหัส=ออก สถานะ=125)
ฉันเรียกใช้สิ่งนี้บนเครื่อง Amazon Linux 2 โดยมีสคริปต์ข้อมูลผู้ใช้ให้เรียกใช้เมื่อเปิดตัว ฉันได้รับการยืนยันว่า นักเทียบท่า.บริการ
และ นักเทียบท่า_ecr_login.service
ทำงานสำเร็จ
และหลังจากเปิดเครื่องได้ไม่นาน ฉันเห็นว่า etcd กำลังทำงานอยู่:
สถานะ sudo systemctl เป็นต้น
â etcd.บริการ - etcd
โหลดแล้ว: โหลดแล้ว (/etc/systemd/system/etcd.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: ปิดใช้งาน)
ใช้งานอยู่: กำลังเปิดใช้งาน (เริ่มต้น) ตั้งแต่วันพุธที่ 2021-08-18 20:30:07 UTC; 1 นาที 20 วินาทีที่แล้ว
PID หลัก: 1573 (นักเทียบท่า)
งาน: 9
หน่วยความจำ: 24.3M
CGroup: /system.slice/etcd.service
ââ1573 /usr/bin/docker run -p 2380:2380 -p 2379:2379 --volume=etcd-data:/etcd-data --name etcd my-aws-account.dkr.ecr eu-เหนือ-1.amazonaws.com...
18 ส.ค. 20:30:17 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1573]: {"level":"info","ts":"2021-08-18T20 :30:17.690Z","คนตัดไม้":"แพ","ผู้โทร":"...rm 2"}
18 ส.ค. 20:30:17 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1573]: {"level":"info","ts":"2021-08-18T20 :30:17.691Z","ผู้โทร":"etcdserver/server..."3.5"}
18 ส.ค. 20:30:17 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1573]: {"level":"info","ts":"2021-08-18T20 :30:17.693Z","ผู้โทร":"สมาชิก/คลัสเตอร์..."3.5"}
18 ส.ค. 20:30:17 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1573]: {"level":"info","ts":"2021-08-18T20 :30:17.693Z","ผู้โทร":"etcdserver/server.go:2...
18 ส.ค. 20:30:17 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1573]: {"level":"info","ts":"2021-08-18T20 :30:17.693Z","ผู้โทร":"api/capability.g..."3.5"}
18 ส.ค. 20:30:17 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1573]: {"level":"info","ts":"2021-08-18T20 :30:17.693Z","ผู้โทร":"etcdserver/server..."3.5"}
18 ส.ค. 20:30:17 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1573]: {"level":"info","ts":"2021-08-18T20 :30:17.693Z","ผู้โทร":"embed/serve.go:9...ests"}
18 ส.ค. 20:30:17 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1573]: {"level":"info","ts":"2021-08-18T20 :30:17.695Z","ผู้โทร":"etcdmain/main.go...emon"}
18 ส.ค. 20:30:17 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1573]: {"level":"info","ts":"2021-08-18T20 :30:17.695Z","ผู้โทร":"etcdmain/main.go...emon"}
18 ส.ค. 20:30:17 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1573]: {"level":"info","ts":"2021-08-18T20 :30:17.702Z","ผู้โทร":"embed/serve.go:1...2379"}
คำแนะนำ: บางบรรทัดเป็นวงรี ใช้ -l เพื่อแสดงแบบเต็ม
ฉันได้รับพฤติกรรมเดียวกันไม่ว่าจะฟัง Node IP (10.0.0.11) หรือ 127.0.0.1
ฉันสามารถเรียกใช้ etcd ในเครื่องโดยเริ่มจากบรรทัดคำสั่ง (และจะไม่สิ้นสุดหลังจาก 30 วินาที), กับ:
sudo docker run -p 2380:2380 -p 2379:2379 --volume=etcd-data:/etcd-data --name etcd-local \
my-aws-account.dkr.ecr.eu-north-1.amazonaws.com/etcd:v3.5.0 \
/usr/local/bin/etcd --data-dir=/etcd-data \
--ชื่อ etcd0 \
--advertise-client-url http://127.0.0.1:2379 \
--listen-client-url http://0.0.0.0:2379 \
--initial-advertise-peer-url http://127.0.0.1:2380 \
--listen-peer-url http://0.0.0.0:2380 \
--initial-cluster etcd0=http://127.0.0.1:2380
พารามิเตอร์ของ etcd คล้ายกับ เรียกใช้โหนดเดียว etcd - ectd 3.5 เอกสารประกอบ.
นี่คือส่วนที่เกี่ยวข้องของสคริปต์เริ่มต้นที่มีเป้าหมายเพื่อเรียกใช้ etcd:
ปริมาณนักเทียบท่า sudo สร้าง --name etcd-data
แมว <<EOF | sudo tee /etc/systemd/system/etcd.service
[หน่วย]
คำอธิบาย = ฯลฯ
หลังจาก = docker_ecr_login.service
[บริการ]
พิมพ์=แจ้ง
ExecStart=/usr/bin/docker run -p 2380:2380 -p 2379:2379 --volume=etcd-data:/etcd-data \
--name etcd my-aws-account.dkr.ecr.eu-north-1.amazonaws.com/etcd:v3.5.0 \
/usr/local/bin/etcd --data-dir=/etcd-data \
--ชื่อ etcd0 \
--advertise-client-url http://10.0.0.11:2379 \
--listen-client-url http://0.0.0.0:2379 \
--initial-advertise-peer-url http://10.0.0.11:2380 \
--listen-peer-url http://0.0.0.0:2380 \
--initial-cluster etcd0=http://10.0.0.11:2380
รีสตาร์ท = เมื่อล้มเหลว
รีสตาร์ทวินาที=5
[ติดตั้ง]
WantedBy=multi-user.target
อฟ
sudo systemctl เปิดใช้งาน etcd
sudo systemctl start เป็นต้น
เมื่อแสดงรายการคอนเทนเนอร์ทั้งหมดบนเครื่อง ฉันเห็นว่ามันกำลังทำงานอยู่:
sudo นักเทียบท่า ps -a
รหัสคอนเทนเนอร์ IMAGE คำสั่งสร้างสถานะชื่อพอร์ต
a744aed0beb1 my-aws-account.dkr.ecr.eu-north-1.amazonaws.com/etcd:v3.5.0 "/usr/local/bin/etcdâ¦" 25 นาทีที่แล้ว ออก (0) 24 นาทีที่แล้ว etcd
แต่ฉันสงสัยว่าไม่สามารถเริ่มใหม่ได้เนื่องจากชื่อคอนเทนเนอร์มีอยู่แล้ว
เหตุใดคอนเทนเนอร์ etcd จึงถูกยกเลิกหลังจาก ~ 30 วินาทีเมื่อเริ่มต้นจาก systemd ดูเหมือนว่าเริ่มต้นได้สำเร็จ แต่ systemd แสดงเฉพาะในสถานะ "เปิดใช้งาน" แต่ไม่เคยอยู่ในสถานะ "ใช้งาน" และดูเหมือนว่าจะถูกยกเลิกหลังจากผ่านไปประมาณ 30 วินาทีมีการส่งสัญญาณที่ขาดหายไปจากคอนเทนเนอร์ etcd docker ไปยัง systemd หรือไม่ ถ้าเป็นเช่นนั้น ฉันจะทำให้สัญญาณนั้นถูกต้องได้อย่างไร
อัปเดต:
หลังจากถอด รีสตาร์ท = เมื่อล้มเหลว
คำแนะนำในไฟล์หน่วยบริการ ตอนนี้ฉันได้รับสถานะ: ล้มเหลว (ผลลัพธ์: หมดเวลา):
$ sudo systemctl สถานะ ฯลฯ
â etcd.บริการ - etcd
โหลดแล้ว: โหลดแล้ว (/etc/systemd/system/etcd.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: ปิดใช้งาน)
ใช้งานอยู่: ล้มเหลว (ผลลัพธ์: หมดเวลา) ตั้งแต่วันพุธที่ 2021-08-18 21:35:54 UTC; 5 นาทีที่แล้ว
กระบวนการ: 1567 ExecStart=/usr/bin/docker run -p 2380:2380 -p 2379:2379 --volume=etcd-data:/etcd-data --name etcd my-aws-account.dkr.ecr.eu- north-1.amazonaws.com/etcd:v3.5.0 /usr/local/bin/etcd --data-dir=/etcd-data --name etcd0 --advertise-client-urls http://127.0.0.1: 2379 --listen-client-urls http://0.0.0.0:2379 --initial-advertise-peer-urls http://127.0.0.1:2380 --listen-peer-urls http://0.0.0.0: 2380 --initial-cluster etcd0=http://127.0.0.1:2380 (รหัส=ออกแล้ว สถานะ=0/สำเร็จ)
PID หลัก: 1567 (รหัส=ออก สถานะ=0/สำเร็จ)
18 ส.ค. 21:35:54 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1567]: {"level":"info","ts":"2021-08-18T21 :35:54.332Z","ผู้โทร":"osutil/interrupt...ated"}
18 ส.ค. 21:35:54 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1567]: {"level":"info","ts":"2021-08-18T21 :35:54.333Z","ผู้โทร":"embed/etcd.go:36...379"]}
18 ส.ค. 21:35:54 ip-10-0-0-11.eu-north-1.compute.internal docker[1567]: คำเตือน: 2021/08/18 21:35:54 [หลัก] grpc: addrConn. createTransport ล้มเหลว ...กำลัง...
18 ส.ค. 21:35:54 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1567]: {"level":"info","ts":"2021-08-18T21 :35:54.335Z","ผู้โทร":"etcdserver/serve...6a6c"}
18 ส.ค. 21:35:54 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1567]: {"level":"info","ts":"2021-08-18T21 :35:54.337Z","ผู้โทร":"embed/etcd.go:56...2380"}
18 ส.ค. 21:35:54 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1567]: {"level":"info","ts":"2021-08-18T21 :35:54.338Z","ผู้โทร":"embed/etcd.go:56...2380"}
18 ส.ค. 21:35:54 น. ip-10-0-0-11.eu-north-1.compute.internal docker[1567]: {"level":"info","ts":"2021-08-18T21 :35:54.339Z","ผู้โทร":"embed/etcd.go:36...379"]}
18 ส.ค. 21:35:54 ip-10-0-0-11.eu-north-1.compute.internal systemd[1]: ไม่สามารถเริ่มต้น etcd
18 ส.ค. 21:35:54 ip-10-0-0-11.eu-north-1.compute.internal systemd[1]: Unit etcd.service เข้าสู่สถานะล้มเหลว
18 สิงหาคม 21:35:54 ip-10-0-0-11.eu-north-1.compute.internal systemd[1]: etcd.service ล้มเหลว
คำแนะนำ: บางบรรทัดเป็นวงรี ใช้ -l เพื่อแสดงแบบเต็ม