เบเบฑเปเบเปเบกเปเบ, เบซเบผเบฑเบเบเบฒเบเบเปเบญเบ
เปเบ tutorial เบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบชเปเบฒเบเบเบฑเปเบเบเบญเบเปเบเบเบเบฑเปเบเบเบญเบ
เบเบฒเบเบฅเบงเบก
เบเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบ
เปเบเบเบงเบฒเบเบเบต 1: เบเบฒเบเบฅเบงเบกเบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบเบเบญเบเบงเบดเบเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบปเบเบชเบธเบ
เปเบซเปเปเบเบดเปเบเปเบ
เปเบเปเบเบญเบ, เบกเบตเบเปเปเบกเบนเบเบเบตเปเปเบเบฑเบเบเบฐเปเบซเบเบเบขเบนเปเบเบตเปเบเบฑเปเบ, เปเบเปเบเปเปเบกเบตเบเปเบฒเปเบเบฐเบเปเบฒเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเปเบฒเปเบเปเบกเบฑเบเบเบฑเบเบซเบกเบปเบ. เบเบฑเปเบโเบเบฑเปเบ, เปเบเบฑเปเบโเบเบฝเบงโเบเบฑเบโเบเบปเบโเบเบตเปโเบกเบตโเบชเบธโเบเบฐโเบเบฒเบ, เบเปเบฒเบ scour เบญเบดเบโเปเบเบตโเปเบเบฑเบโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบเบตเปโเบเปเบฒ. เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ ... เปเบเบปเปเบฒเบฅเบปเปเบกเปเบซเบฅเบง. เบกเบฑเบโเปเบเบตเบโเบเบทเปเบ. เปเบซเปเปเบเปเปเบเบเบตเป.
เบเปเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเบงเปเบเบชเบนเปเบเบฒเบเบชเปเบฒเบ POC เบเบญเบเบเบงเบเปเบฎเบปเบฒ, เปเบซเปเบเบฑเบเบเบทเบเปเบเบซเบฒเบเบฒเบเบฅเบงเบกเบเบญเบเบงเบดเบเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบญเบเบเบปเบเบชเบธเบ (เปเบเบเบงเบฒเบ 1) เปเบฅเบฐเบเบฑเบเบเบธเบเบกเบฑเบเปเบเบชเบฐเบเบฒเบเบเบฒเบเบเบญเบ Kubernetes.
เบเบฒเบเบฑเบเบเบฐเบเบฐ
เปเบเบเบปเบเบชเบญเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเปเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ Consul เปเบเปเบเบทเปเบญเบเปเบเบเบเปเบฒเบเบซเบฒเบเบเบตเปเบเบฐเบเบดเบเบเปเปเบชเบทเปเบชเบฒเบเบเบฑเบเบเบธเปเบก Kubernetes เบเบฑเบเบฅเบนเบเบเปเบฒ Consul เบเบดเบเบเบฑเปเบ. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเปเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ dummy เบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบเบฑเบเปเบฅเบฐเบเปเบฒเปเบเปเบงเบดเบเบตเบเบฒเบเบเปเบฒเบเบปเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบทเปเบญเบญเปเบฒเบเบเบฒเบ Consul key / value store เบเบญเบเบเบงเบเปเบฎเบปเบฒ.
เปเบเบเบงเบฒเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเปเบฝเบงเบเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเบชเปเบฒเบเบขเบนเปเปเบเบเบปเบเบชเบญเบเบเบตเป, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเปเบซเบเบเบปเบเบเบฒเบเบซเบฅเบฑเบเบเบญเบเบงเบดเบเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบ, เปเบเบดเปเบเบเบฐเบเบทเบเบญเบฐเบเบดเบเบฒเบเปเบเบเบฒเบเบซเบฅเบฑเบ.
เปเบเบเบงเบฒเบ 2: เบฅเบฒเบเบฅเบฐเบญเบฝเบเบงเบดเบเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบ Kubernetes
เบเบฑเบเบเบถเบเบเปเบงเบ: เปเบเบตเบเปเบงเบต Consul เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบญเบฒเปเบชเบขเบนเปเบเบญเบเบเบธเปเบก Kubernetes เปเบเบทเปเบญเปเบซเปเบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเปเบเป. เปเบเปเปเบกเปเบเปเบฅเปเบง, เบฅเบฒเบงเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเบเปเบงเบเบงเบดเบเบตเบเบตเปเปเบฅเบฐเปเบเบเบเบฑเปเบ.
เบเบฑเปเบเบเบฑเปเบ, เปเบญเบปเบฒเปเบเบเบงเบฒเบเบเบฒเบเบฅเบงเบกเบเบญเบเบเบปเบเบชเบธเบ (เปเบเบเบเบฑเบ 1) เปเบฅเบฐเบเปเบฒเปเบเป Kubernetes เบเบฑเบเบกเบฑเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเปเบเบเบงเบฒเบเบเปเบฒเบเปเบเบดเบ (เปเบเบเบงเบฒเบ 2), เปเบฅเบฐเปเบซเบเบเบปเบเปเบเบเบตเปเบเบตเปเปเบกเปเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
- เปเบเปเบฅเบฐเบเบฑเบเบเบฐเบกเบตเบเบฑเบเบเบตเบเปเบฅเบดเบเบฒเบเบเบตเปเบเบดเบเบขเบนเปเบเบฑเบเบกเบฑเบเบเบตเปเบเบฐเบเบญเบเบกเบต token JWT เบเบตเปเบชเปเบฒเบเบเบถเปเบ เปเบฅเบฐเบฎเบนเปเบเบฑเบเปเบเบ Kubernetes. เปเบเปเบเบฑเบเบเบตเปเบเบทเบเปเบชเปเปเบชเปเปเบเบเบญเบเบเบฒเบกเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ.
- เบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบซเบผเบทเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฒเบเปเบเบเบฑเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบฒเบชเบฑเปเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเปเบซเปเบเบฑเบเบฅเบนเบเบเปเบฒ Consul เบเบญเบเบเบงเบเปเบฎเบปเบฒ. เบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบเบฐเบเบฐเบเบญเบเบกเบต token เปเบฅเบฐเบเบทเปเบเบญเบเบเบงเบเปเบฎเบปเบฒ เบชเปเบฒเบเปเบเบฑเบเบเบดเปเบชเบ เบงเบดเบเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบ (เบเบฐเปเบเบ Kubernetes). เบเบฑเปเบโเบเบญเบโเบเบต 2 เบเบตเปโเบเบปเบโเบเบฑเบโเบเบฑเปเบโเบเบญเบโเบเบต 1 เบเบญเบโเปเบเบโเบงเบฒเบ Consul (เปเบเบโเบเบฒเบ 1).
- เบฅเบนเบเบเปเบฒ Consul เบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบปเปเบเบเปเปเบเปเบฒเบฎเปเบญเบเบเปเบเบตเปเปเบเบซเบฒเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ Consul เบเบญเบเบเบงเบเปเบฎเบปเบฒ.
- MAGIC! เบเบตเปเปเบกเปเบเบเปเบญเบเบเบตเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ Consul เบเบงเบเบชเบญเบเบเบงเบฒเบกเบเบทเบเบเปเบญเบเบเบญเบเบเปเบฒเบฎเปเบญเบเบเป, เปเบเบฑเบเบเปเบฒเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเบปเบงเบเบปเบเบเบญเบเบเปเบฒเบฎเปเบญเบเบเปเปเบฅเบฐเบเบฝเบเบเบฝเบเบกเบฑเบเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเบเปเบญเบเบเบตเปเบเปเบฝเบงเบเปเบญเบ. เบเปเบฒเบเบฅเบธเปเบกเบเบตเปเปเบกเปเบเปเบเบเบงเบฒเบเบญเบทเปเบเปเบเบทเปเบญเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเปเบฅเบทเปเบญเบเบเบตเป. เบเบฑเปเบเบเบญเบเบเบตเปเบเบปเบเบเบฑเบเบเบฑเปเบเบเบญเบเบเบต 3, 4 เปเบฅเบฐ 5 เบเบญเบเปเบเบเบงเบฒเบเบเบฒเบเบฅเบงเบกเบเบญเบเบเบปเบเบชเบธเบ (เปเบเบเบงเบฒเบเบเบต 1).
- เปเบเบตเบเปเบงเบต Consul เบเบญเบเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบ Consul token เบเปเบงเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบฒเบกเบเบปเบเบฅเบฐเบเบฝเบเบงเบดเบเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ (เบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบเปเบฒเบเบปเบ) เบเปเบฝเบงเบเบฑเบเบเบปเบงเบเบปเบเบเบญเบเบเบนเปเบฎเปเบญเบเบเป. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบฑเบเบเบฐเบชเบปเปเบ token เบเบตเปเบเบทเบ. เบเบตเปเบเบปเบเบเบฑเบเบเบฑเปเบเบเบญเบเบเบต 6 เบเบญเบเปเบเบเบงเบฒเบเบเบปเบเบชเบธเบ (เปเบเบเบงเบฒเบเบเบต 1).
- เบฅเบนเบเบเปเบฒ Consul เบเบญเบเบเบงเบเปเบฎเบปเบฒเบชเบปเปเบ token เปเบเบซเบฒเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบซเบผเบทเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเบฎเปเบญเบเบเป.
เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ เบซเบผเบทเบเปเบฅเบดเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบญเบเบเบตเปเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเบฑเบ Consul เบเบตเปเปเบเบทเปเบญเบเบดเบเบเปเปเบชเบทเปเบชเบฒเบเบเบฑเบเบเปเปเบกเบนเบ Consul เบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบฒเบกเบเบตเปเบเบณเบเบปเบเปเบเบเบชเบดเบเบเบดเบเบดเปเบชเบเบเบญเบ token.
เบงเบดเปเบชเบเบเบทเบเปเบเบตเบเปเบเบตเบ!
เบชเบณเบฅเบฑเบเบเปเบฒเบเปเบเบเบตเปเบเปเปเบเปเปเบเบเบฑเบเบเบฝเบเปเบเปเบเบฐเบเปเบฒเบเบญเบญเบเบเบฒเบเปเบงเบ เปเบฅเบฐเบขเบฒเบเบฎเบนเปเบงเปเบฒเบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเปเบเบงเปเบ... เปเบซเปเบเปเบญเบเปเบเบดเปเบเบงเปเบฒ เปเบฅเบดเบเบเบถเปเบเบเบฒเบเปเบ เบเบธเบกเบเบฐเบเปเบฒเบ".
เบเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบงเบกเบฒเบเปเบญเบเบซเบเปเบฒเบเบตเป, เบเบฑเปเบเบเบญเบ "magic" เบเบญเบเบเบงเบเปเบฎเบปเบฒ (เบฎเบนเบ 2: เบเบฑเปเบเบเบญเบเบเบต 4) เปเบกเปเบเบเปเบญเบเบเบตเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ Consul เบขเบทเบเบขเบฑเบเบเปเบฒเบฎเปเบญเบเบเป, เปเบเบฑเบเบเปเบฒเบเปเปเบกเบนเบเบเบฒเบเบฎเปเบญเบเบเป, เปเบฅเบฐเบเบฝเบเบเบฝเบเบกเบฑเบเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเบเปเบญเบเบเบตเปเบเปเบฝเบงเบเปเบญเบ. เบเบฑเปเบเบเบญเบเบเบตเปเบเบปเบเบเบฑเบเบเบฑเปเบเบเบญเบเบเบต 3, 4 เปเบฅเบฐ 5 เบเบญเบเปเบเบเบงเบฒเบเบเบฒเบเบฅเบงเบกเบเบญเบเบเบปเบเบชเบธเบ (เปเบเบเบงเบฒเบเบเบต 1). เบเปเบฒเบเบฅเบธเปเบกเบเบตเปเปเบกเปเบเปเบเบเบงเบฒเบ (เปเบเบเบงเบฒเบ 3), เบเบธเบเบเบฐเบชเบปเบเปเบกเปเบเปเบเบทเปเบญเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบขเปเบฒเบเบเบฑเบเปเบเบเบงเปเบฒเบชเบดเปเบเบเบตเปเปเบเบตเบเบเบถเปเบเบเบดเบ เบเบฒเบเปเบเป Hood เปเบเป เบงเบดเบเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบ Kubernetes เบชเบฐเปเบเบฒเบฐ.
เปเบเบเบงเบฒเบเบเบต 3: เบเบงเบฒเบกเบงเบดเปเบชเบเบเบทเบเปเบเบตเบเปเบเบตเบ!
- เปเบเบฑเบเบเบธเบเปเบฅเบตเปเบกเบเบปเปเบ, เบฅเบนเบเบเปเบฒ Consul เบเบญเบเบเบงเบเปเบฎเบปเบฒเบชเบปเปเบเบเปเปเบเปเบฒเบฎเปเบญเบเบเปเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเปเบเบซเบฒเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ Consul เบเบญเบเบเบงเบเปเบฎเบปเบฒเบเปเบงเบ token เบเบฑเบเบเบต Kubernetes เปเบฅเบฐเบเบทเปเบชเบฐเปเบเบฒเบฐเบเบญเบเบงเบดเบเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบตเปเบเบทเบเบชเปเบฒเบเบเบทเปเบเบเปเบญเบเบซเบเปเบฒเบเบตเป. เบเบฑเปเบเบเบญเบเบเบตเปเบเบปเบเบเบฑเบเบเบฑเปเบเบเบญเบเบเบต 3 เปเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบงเบปเบเบเบญเบเบเบตเปเบเปเบฒเบเบกเบฒ.
- เปเบเบเบฑเบเบเบธเบเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ Consul (เบซเบผเบทเบเบนเปเบเปเบฒ) เบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบงเบเบชเบญเบเบเบงเบฒเบกเบเบทเบเบเปเบญเบเบเบญเบ token เบเบตเปเปเบเปเบฎเบฑเบ. เบเบฑเปเบเบเบฑเปเบ, เบกเบฑเบเบเบฐเบเบถเบเบชเบฒเบซเบฒเบฅเบทเบเบฑเบเบเบธเปเบก Kubernetes (เบเปเบฒเบเบฅเบนเบเบเปเบฒ Consul) เปเบฅเบฐ, เบเปเบงเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบญเบเบซเบฒเบงเปเบฒ token เปเบเบฑเบเบเบญเบเปเบเปเบซเบผเบทเบเปเปเปเบฅเบฐเบกเบฑเบเปเบกเปเบเบเบญเบเปเบ.
- เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบฎเปเบญเบเบเปเบเบตเปเบเบทเบเบเปเบญเบเบเบทเบเบชเบปเปเบเบเบฑเบเบเบทเบเปเบเบซเบฒเบเบนเปเบเปเบฒ Consul, เปเบฅเบฐเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ Consul เบเบญเบเบซเบฒเบเบปเบงเบขเปเบฒเบเบงเบดเบเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบตเปเบกเบตเบเบทเปเบเบตเปเบฅเบฐเบเบธเปเบงเปเบเบฒเบเบเปเบฒเบฎเปเบญเบเบเปเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบ (เปเบฅเบฐเบเบฐเปเบเบ Kubernetes).
- เบเบนเปเบเปเบฒเบเบปเบเบชเบธเบเบเปเบฒเบเบปเบเบงเบดเบเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเป (เบเปเบฒเบเบปเบเปเบซเบฑเบ) เปเบฅเบฐเบญเปเบฒเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเบนเบเบกเบฑเบเบเบตเปเบเบดเบเบเบฑเบเบกเบฑเบ. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบฑเบเบญเปเบฒเบเบเบปเบเบฅเบฐเบเบฝเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบฅเบฐเบเบฝเบเบเบฝเบเบเบงเบเบกเบฑเบเบเบฑเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบญเบเบเบปเบงเบเบปเบเบเบตเปเบเบทเบเบขเบทเบเบขเบฑเบ.
- เบเปเบฒ! เปเบซเปเบเปเบฒเบงเปเบเบชเบนเปเบเบฑเปเบเบเบญเบเบเบต 5 เปเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบงเบปเบเบเบญเบเบเบตเปเบเปเบฒเบเบกเบฒ.
เปเบฅเปเบ Consul-server เปเบเปเบเบทเปเบญเบ virtual เบเบปเบเบเบฐเบเบด
เบเบฒเบเบเบตเปเปเบ, เบชเปเบงเบเบซเบผเบฒเบเบเปเบญเบเบเบฐเปเบซเปเบเปเบฒเปเบเบฐเบเปเบฒเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเบชเปเบฒเบ POC เบเบตเป, เบกเบฑเบเบเบฐเบขเบนเปเปเบเบเบธเบ bullet, เปเบเบเบเปเปเบกเบตเบเปเบฒเบญเบฐเบเบดเบเบฒเบเปเบเบฑเบกเบเบฐเปเบซเบเบ. เบเบญเบเบเบฒเบเบเบตเป, เบเบฑเปเบเบเบตเปเปเบเปเบฅเบฐเบเบธเปเบงเปเบเปเบญเบเบซเบเปเบฒเบเบตเป, เบเปเบญเบเบเบฐเปเบเป GCP เปเบเบทเปเบญเบชเปเบฒเบเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเบเบฑเบเบซเบกเบปเบ, เปเบเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเบเบฝเบงเบเบฑเบเบขเบนเปเบเปเบญเบเบญเบทเปเบ.
- เปเบฅเบตเปเบกเปเบเบทเปเบญเบ virtual (เบเบปเบงเบขเปเบฒเบ/เปเบเบตเบเปเบงเบต).
- เบชเปเบฒเบเบเบปเบเบฅเบฐเบเบฝเบเบชเปเบฒเบฅเบฑเบ firewall (เบเบธเปเบกเบเบงเบฒเบกเบเบญเบเปเบเปเบ AWS):
- เบเปเบญเบเบกเบฑเบเบเปเบฒเบเบปเบเบเบทเปเปเบเบทเปเบญเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเปเบฅเบฐเปเบเบฑเบเปเบเบทเบญเบเปเบฒเบ, เปเบเบเปเบฅเบฐเบเบตเบเบตเป "skywiz-consul-server-poc".
- เบเบญเบเบซเบฒเบเบตเปเบขเบนเป IP เบเบญเบเบเบญเบกเบเบดเบงเปเบเบตเบเปเบญเบเบเบดเปเบเบเบญเบเบเปเบฒเบเปเบฅเบฐเปเบเบตเปเบกเบกเบฑเบเปเบชเปเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบตเปเบขเบนเป IP เปเบซเบผเปเบเบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบชเปเบงเบเบเบดเบเบเปเปเบเบนเปเปเบเป (UI).
- เปเบเบตเบเบเบญเบ 8500 เบชเปเบฒเบฅเบฑเบ UI. เบเบปเบ เบชเปเบฒเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฝเบ firewall เบเบตเปเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเปเบเปเบงเปเบเบตเป [
เบซเบเปเบฒเบเปเบฒเบญเบดเบ ]. - เปเบเบตเปเบกเบเบปเบเบฅเบฐเบเบฝเบเปเบเบงเปเปเบชเปเบเบปเบงเบขเปเบฒเบ. เบเบฑเบเบเบทเบเปเบเบซเบฒ dashboard VM เปเบ Consul Server เปเบฅเบฐเปเบเบตเปเบก "skywiz-consul-server-poc" เปเบชเปเบเปเบญเบเปเบเบฑเบเปเบเบทเบญเบเปเบฒเบ. เบเบปเบ Save.
- เบเบดเบเบเบฑเปเบ Consul เปเบเปเบเบทเปเบญเบ virtual, เบเบงเบเปเบเบดเปเบเบเบตเปเบเบตเป. เบเบทเปเปเบงเปเบงเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบ Consul version โฅ 1.5 [link]
- เปเบซเปเบชเปเบฒเบ node Consul เบเบฝเบง - เบเบฒเบเบเบฑเปเบเบเปเบฒเปเบกเปเบเบเบฑเปเบเบเปเปเปเบเบเบตเป.
groupadd --system consul
useradd -s /sbin/nologin --system -g consul consul
mkdir -p /var/lib/consul
chown -R consul:consul /var/lib/consul
chmod -R 775 /var/lib/consul
mkdir /etc/consul.d
chown -R consul:consul /etc/consul.d
- เบชเปเบฒเบฅเบฑเบเบเปเบฒเปเบเบฐเบเปเบฒเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบ Consul เปเบฅเบฐเบเบฒเบเบเบฑเปเบเบเปเบฒ cluster เบเบญเบ 3 nodes, เปเบเบดเปเบ
เบเบตเปเบเบตเป . - เบชเปเบฒเบเปเบเบฅเป /etc/consul.d/agent.json เบเบฑเปเบเบเปเปเปเบเบเบตเป [
เบซเบเปเบฒเบเปเบฒเบญเบดเบ ]:
### /etc/consul.d/agent.json
{
"acl" : {
"enabled": true,
"default_policy": "deny",
"enable_token_persistence": true
}
}
- เปเบฅเบตเปเบกเปเบเบตเบเปเบงเบต Consul เบเบญเบเบเบงเบเปเบฎเบปเบฒ:
consul agent
-server
-ui
-client 0.0.0.0
-data-dir=/var/lib/consul
-bootstrap-expect=1
-config-dir=/etc/consul.d
- เบเปเบฒเบเบเบงเบเปเบเบดเปเบเบเบปเบเปเบเปเบฎเบฑเบเบซเบผเบฒเบเปเบฅเบฐเบชเบดเปเบเบชเบธเบเบเปเบงเบ "... เบเบฒเบเบเบฑเบเบเบธเบเบเบตเปเบเบทเบเบเบฅเบฑเบญเบเปเบเบ ACLs."
- เบเบญเบเบซเบฒเบเบตเปเบขเบนเป IP เบเบฒเบเบเบญเบเบเบญเบเปเบเบตเบเปเบงเบต Consul เปเบฅเบฐเปเบเบตเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบเบเบตเปเบกเบตเบเบตเปเบขเบนเป IP เบเบตเปเบขเบนเปเปเบเบเบญเบ 8500. เปเบซเปเปเบเปเปเบเบงเปเบฒ UI เปเบเบตเบ.
- เบฅเบญเบเปเบเบตเปเบกเบเบนเปเบเบต/เบเปเบฒ. เบเปเบญเบเบกเบตเบเบงเบฒเบกเบเบดเบเบเบฒเบ. เบเบตเปเปเบกเปเบเบเปเบญเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบซเบฅเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ Consul เบเปเบงเบ ACL เปเบฅเบฐเบเบดเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฑเบเบซเบกเบปเบ.
- เบเบฑเบเบเบทเบเปเบเบซเบฒ Shell เบเบญเบเบเปเบฒเบเปเบเปเบเบตเบเปเบงเบต Consul เปเบฅเบฐเปเบฅเบตเปเบกเบเบปเปเบเบเบฐเบเบงเบเบเบฒเบเปเบเบเบทเปเบเบซเบฅเบฑเบเบซเบผเบทเบเบฒเบเบงเบดเบเบตเบญเบทเปเบเปเบเบทเปเบญเปเบซเปเบกเบฑเบเปเบฅเปเบเปเบฅเบฐเปเบชเปเบเปเปเปเบเบเบตเป:
consul acl bootstrap
- เบเบญเบเบซเบฒเบเปเบฒ "SecretID" เปเบฅเบฐเบเบฑเบเบเบทเบเปเบเบซเบฒ UI. เปเบเปเบเบ ACL, เปเบชเปเบฅเบฐเบซเบฑเบเบฅเบฑเบเบเบญเบ token เบเบตเปเปเบเบปเปเบฒเบซเบฒเบเปเปเบชเบณเปเบเบปเบฒ. เบชเบณเปเบเบปเบฒ SecretID เปเบเบเปเบญเบเบญเบทเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบเบฒเบเบกเบฑเบเปเบเบเบฒเบเบซเบผเบฑเบ.
- เบเบญเบเบเบตเปเปเบเบตเปเบกเบเบนเปเบเบต/เบเปเบฒ. เบชเปเบฒเบฅเบฑเบ POC เบเบตเป, เปเบซเปเปเบเบตเปเบกเบชเบดเปเบเบเปเปเปเบเบเบตเป: key: โcustom-ns/test_keyโ, เบเปเบฒ: โเบเปเบญเบเบขเบนเปเปเบเปเบเปเบเบต custom-ns!โ
เบเบฒเบเปเบเบตเบเบเบปเบงเบเบธเปเบก Kubernetes เบชเปเบฒเบฅเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบฅเบนเบเบเปเบฒ Consul เปเบเบฑเบ Daemonset
- เบชเปเบฒเบเบเบธเปเบก K8s (Kubernetes). เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเปเบฒเบเบกเบฑเบเบขเบนเปเปเบเปเบเบเบเบฝเบงเบเบฑเบเบเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบง, เปเบฅเบฐเบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเปเบฒเปเบเป subnet เบเบฝเบงเบเบฑเบเปเบเบทเปเบญเปเบเบทเปเบญเบกเบเปเปเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบเบเบฑเบเบเบตเปเบขเบนเป IP เบเบฒเบเปเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบญเบตเปเบเบกเบฑเบเบงเปเบฒ "skywiz-app-with-consul-client-poc".
- เปเบเบเบฒเบเบฐเปเบเบฑเบเบเบฑเบเบเบถเบเบเปเบฒเบเบเบฝเบ, เบเบตเปเปเบกเปเบเบเบฒเบเบชเบญเบเบเบตเปเบเบตเบเบตเปเบเปเบญเบเบเบปเบเปเบเบเบฐเบเบฐเบเบตเปเบเบฑเปเบเบเบธเปเบก POC Consul เบเบฑเบ Consul Connect.
- เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบฐเปเบเปเบเบฒเบเบฐเบฅเบฒเบเบซเบกเบงเบเบเบฑเบเบเบฐเบเบปเบ Hashicorp เบเบตเปเบกเบตเปเบเบฅเปเบกเบนเบเบเปเบฒเบเบฐเบซเบเบฒเบ.
- เบเบดเบเบเบฑเปเบ เปเบฅเบฐเบเบฑเปเบเบเปเบฒ Helm. เบเบฑเปเบโเบเบญเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโ:
kubectl create serviceaccount tiller --namespace kube-system
kubectl create clusterrolebinding tiller-admin-binding
--clusterrole=cluster-admin --serviceaccount=kube-system:tiller
./helm init --service-account=tiller
./helm update
- เบเบฒเบเบฐเบฅเบฒเบเปเบงเบ:
https://www.consul.io/docs/platform/k8s/helm.html - เปเบเปเปเบเบฅเปเบกเบนเบเบเปเบฒเบเปเปเปเบเบเบตเป (เบซเบกเบฒเบเปเบซเบเบเปเบญเบเปเบเปเบเบดเบเบเบฒเบเปเบเปเบเบฒเบเบซเบผเบฒเบเบเบตเปเบชเบธเบ):
### poc-helm-consul-values.yaml
global:
enabled: false
image: "consul:latest"
# Expose the Consul UI through this LoadBalancer
ui:
enabled: false
# Allow Consul to inject the Connect proxy into Kubernetes containers
connectInject:
enabled: false
# Configure a Consul client on Kubernetes nodes. GRPC listener is required for Connect.
client:
enabled: true
join: ["<PRIVATE_IP_CONSUL_SERVER>"]
extraConfig: |
{
"acl" : {
"enabled": true,
"default_policy": "deny",
"enable_token_persistence": true
}
}
# Minimal Consul configuration. Not suitable for production.
server:
enabled: false
# Sync Kubernetes and Consul services
syncCatalog:
enabled: false
- เบเบณเปเบเปเบเบฒเบเบฐเบฅเบฒเบเปเบงเบเบเบฑเบเบเบฐเบเบปเบ:
./helm install -f poc-helm-consul-values.yaml ./consul-helm - name skywiz-app-with-consul-client-poc
- เปเบกเบทเปเบญเบกเบฑเบเบเบฐเบเบฒเบเบฒเบกเปเบฅเปเบ, เบกเบฑเบเบเบฐเบเปเบญเบเบเบฒเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบชเปเบฒเบฅเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ Consul, เบเบฑเปเบเบเบฑเปเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเบตเปเบกเบเบงเบเบกเบฑเบ.
- เปเบซเปเบชเบฑเบเปเบเบ โเปเบฅเบเบฐเบเบตเปเบขเบนเป Podโ เบเบตเปเบเบฑเปเบเบขเบนเปเปเบ dashboard เบเบญเบเบเบธเปเบก เปเบฅเบฐเบชเบปเปเบเบเบฑเบเบเบทเบเปเบเบซเบฒเบเบปเบเบฅเบฐเบเบฝเบเปเบเบงเปเบเบญเบเบเบงเบเปเบฎเบปเบฒ โskywiz-consul-server-pocโ.
- เปเบเบตเปเบกเบเปเบงเบเบเบตเปเบขเบนเปเบชเบณเบฅเบฑเบเบเบญเบเปเบชเปเบฅเบฒเบเบเบทเปเบเบตเปเบขเบนเป IP เปเบฅเบฐเปเบเบตเบเบเบญเบ 8301 เปเบฅเบฐ 8300.
- เปเบเบเบตเป Consul UI เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบชเบญเบเบชเบฒเบกเบเบฒเบเบตเบเปเบฒเบเบเบฐเปเบซเบฑเบเบเบธเปเบกเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฒเบเบปเบเบขเบนเปเปเบเปเบเบ nodes.
เบเบฒเบเบเบฑเปเบเบเปเบฒเบงเบดเบเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบเปเบเบเบเบฒเบเบฅเบงเบกเบเบปเบเบชเบธเบเบเบฑเบ Kubernetes
- เบเบฑเบเบเบทเบเปเบเบซเบฒ Consul server shell เปเบฅเบฐเบชเบปเปเบเบญเบญเบ token เบเบตเปเบเปเบฒเบเบเบฑเบเบเบถเบเปเบงเปเบเปเบญเบเบซเบเปเบฒเบเบตเป:
export CONSUL_HTTP_TOKEN=<SecretID>
- เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบเบฒเบเบเปเปเบกเบนเบเบเบฒเบเบเบธเปเบก Kubernetes เบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบทเปเบญเบชเปเบฒเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบงเบดเบเบตเบเบฒเบเบเบงเบเบชเบญเบเบเบงเบฒเบกเบเบทเบเบเปเบญเบ:
- kubernetes-เปเบเบปเปเบฒเบเบฒเบ
kubectl get endpoints | grep kubernetes
- kubernetes-service-account-jwt
kubectl get sa <helm_deployment_name>-consul-client -o yaml | grep "- name:"
kubectl get secret <secret_name_from_prev_command> -o yaml | grep token:
- token เปเบกเปเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ base64, เบชเบฐเบเบฑเปเบ decrypt เบกเบฑเบเปเบเบเปเบเปเปเบเบทเปเบญเบเบกเบทเบเบตเปเบเปเบฒเบเบกเบฑเบ [
เบซเบเปเบฒเบเปเบฒเบญเบดเบ ] - kubernetes-ca-cert
kubectl get secret <secret_name_from_prev_command> -o yaml | grep ca.crt:
- เปเบญเบปเบฒเปเบเบขเบฑเปเบเบขเบทเบ โca.crtโ (เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบ base64) เปเบฅเบฐเบเบฝเบเปเบชเปเปเบเปเบเบฅเป โca.crtโ.
- เบเบญเบเบเบตเปเปเบซเปเบงเบดเบเบตเบเบฒเบเบเบงเบเบชเบญเบเบเบงเบฒเบกเบเบทเบเบเปเบญเบเบเบฑเบเบเบต, เปเบเบเบเบตเปเบเบปเบงเบเบถเบเบเปเบงเบเบเปเบฒเบเบตเปเปเบเบปเปเบฒเบซเบฒเบเปเปเบเปเบฎเบฑเบ.
consul acl auth-method create
-type "kubernetes"
-name "auth-method-skywiz-consul-poc"
-description "This is an auth method using kubernetes for the cluster skywiz-app-with-consul-client-poc"
-kubernetes-host "<k8s_endpoint_retrieved earlier>"
[email protected]
-kubernetes-service-account-
jwt="<decoded_token_retrieved_earlier>"
- เบเปเปเปเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเปเบฒเบเบเบปเบเบฅเบฐเบเบฝเบเปเบฅเบฐเบเบดเบเบเบฑเบเบเบปเบเบเบฒเบเปเบซเบกเป. เบชเปเบฒเบฅเบฑเบเบชเปเบงเบเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเป Consul UI, เปเบเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ.
- เบเบฝเบเบเบปเบเบฅเบฐเบเบฝเบ
### kv-custom-ns-policy.hcl
key_prefix "custom-ns/" {
policy = "write"
}
- เบเบณเปเบเปเบเบปเบเบฅเบฐเบเบฝเบ
consul acl policy create
-name kv-custom-ns-policy
-description "This is an example policy for kv at custom-ns/"
-rules @kv-custom-ns-policy.hcl
- เบเบญเบเบซเบฒ ID เบเบญเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบเปเบฒเบเบเบฝเบเปเบเปเบชเปเบฒเบเบเบฒเบเบเบปเบเบเบฐเบฅเบดเบ.
- เบชเปเบฒเบเบเบปเบเบเบฒเบเบเบตเปเบกเบตเบเบปเบเบฅเบฐเบเบฝเบเปเบซเบกเป.
consul acl role create
-name "custom-ns-role"
-description "This is an example role for custom-ns namespace"
-policy-id <policy_id>
- เบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบทเปเบญเบกเปเบเบเบเบปเบเบเบฒเบเปเบซเบกเปเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบปเบงเบขเปเบฒเบเบงเบดเบเบตเบเบฒเบเบเบงเบเบชเบญเบ. เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบธเบ "เบเบปเบงเปเบฅเบทเบญเบ" เบเปเบฒเบเบปเบเบงเปเบฒเบเปเบฒเบฎเปเบญเบเบเปเบเบฒเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบฎเบฑเบเบเบปเบเบเบฒเบเบเบตเปเบซเบผเบทเบเปเป. เบเบงเบเปเบเบดเปเบเบเปเบญเบเบเบตเปเบชเบณเบฅเบฑเบเบเบปเบงเปเบฅเบทเบญเบเบเบปเบงเปเบฅเบทเบญเบเบญเบทเปเบ:
https://www.consul.io/docs/acl/auth-methods/kubernetes.html#trusted-identity-attributes
consul acl binding-rule create
-method=auth-method-skywiz-consul-poc
-bind-type=role
-bind-name='custom-ns-role'
-selector='serviceaccount.namespace=="custom-ns"'
เบชเบธเบโเบเปเบฒเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโ
เบชเบดเบเบเบดเปเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ
- เบชเปเบฒเบเบชเบดเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ. เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบซเป Consul เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบงเบเบชเบญเบเปเบฅเบฐเบฅเบฐเบเบธเบเบปเบงเบเบปเบเบเบญเบ token เบเบฑเบเบเบตเบเปเบฅเบดเบเบฒเบ K8s.
- เบเบฝเบเบเปเปเปเบเบเบตเปเปเบชเปเปเบเบฅเป
[link] :
###skywiz-poc-consul-server_rbac.yaml
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: review-tokens
namespace: default
subjects:
- kind: ServiceAccount
name: skywiz-app-with-consul-client-poc-consul-client
namespace: default
roleRef:
kind: ClusterRole
name: system:auth-delegator
apiGroup: rbac.authorization.k8s.io
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: service-account-getter
namespace: default
rules:
- apiGroups: [""]
resources: ["serviceaccounts"]
verbs: ["get"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: get-service-accounts
namespace: default
subjects:
- kind: ServiceAccount
name: skywiz-app-with-consul-client-poc-consul-client
namespace: default
roleRef:
kind: ClusterRole
name: service-account-getter
apiGroup: rbac.authorization.k8s.io
- เบกเบฒเบชเปเบฒเบเบชเบดเบเบเบดเปเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ
kubectl create -f skywiz-poc-consul-server_rbac.yaml
เบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบฅเบนเบเบเปเบฒ Consul
- เบเบฑเปเบเบเบตเปเบเบฑเบเบเบถเบเปเบงเป
เบเบตเปเบเบตเป เบกเบตเบซเบผเบฒเบเบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบ daemonset, เปเบเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเบงเปเบเบชเบนเปเบเบฒเบเปเบเปเปเบเบเปเบฒเบเปเบเปเปเปเบเบเบตเป: - เบเบณเปเบเปเปเบเบฅเปเบเปเปเปเบเบเบตเป [
เบซเบเปเบฒเบเปเบฒเบญเบดเบ ].
### poc-consul-client-ds-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: consul-ds-client
spec:
selector:
app: consul
chart: consul-helm
component: client
hasDNS: "true"
release: skywiz-app-with-consul-client-poc
ports:
- protocol: TCP
port: 80
targetPort: 8500
- เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบเปเบเปเบฒเบชเบฑเปเบ buildin เบเปเปเปเบเบเบตเปเปเบเบทเปเบญเบชเปเบฒเบ configmap [
เบซเบเปเบฒเบเปเบฒเบญเบดเบ ]. เบเบฐเบฅเบธเบเบฒเบชเบฑเบเปเบเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเบญเปเบฒเบเปเบเบดเบเบเบทเปเบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบปเบเปเบเบเบกเบฑเบเบเปเบฒเบเปเบฒเปเบเบฑเบ.
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
labels:
addonmanager.kubernetes.io/mode: EnsureExists
name: kube-dns
namespace: kube-system
data:
stubDomains: |
{"consul": ["$(kubectl get svc consul-ds-client -o jsonpath='{.spec.clusterIP}')"]}
EOF
เบเบฒเบเบเบปเบเบชเบญเบเบงเบดเบเบตเบเบฒเบเบเบงเบเบชเบญเบ
เบเบฑเบเบเบตเปเปเบฎเบปเบฒเบกเบฒเปเบเบดเปเบเบงเบดเปเบชเบเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ!
- เบชเปเบฒเบเปเบเบเปเบเบตเบซเบผเบฑเบเบซเบผเบฒเบเบญเบฑเบเบเบตเปเบกเบตเบฅเบฐเบซเบฑเบเบฅเบฐเบเบฑเบเปเบเบดเบเบเบฝเบงเบเบฑเบ (i.e. /sample_key) เปเบฅเบฐเบเปเบฒเบเบตเปเบเปเบฒเบเปเบฅเบทเบญเบ. เบชเปเบฒเบเบเบฐเปเบเบเบฒเบเปเบฅเบฐเบเบฒเบฅเบฐเบเบปเบเบเบฒเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบชเบฑเปเบเบเบฒเบเบเบตเปเบชเปเบฒเบเบฑเบเปเบซเบกเป. เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบฎเบฑเบเบเบฒเบเบเบนเบเบกเบฑเบเปเบเบเบฒเบเบซเบผเบฑเบ.
เบเบฒเบเบเบปเบเบชเบญเบ namespace เปเบเบเบเบณเบเบปเบเปเบญเบ:
- เบกเบฒเบชเปเบฒเบ namespace เบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบญเบ:
kubectl create namespace custom-ns
- เบกเบฒเบชเปเบฒเบ pod เปเบ namespace เปเปเปเบเบญเบเบเบงเบเปเบฎเบปเบฒ. เบเบฝเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฑเบ.
###poc-ubuntu-custom-ns.yaml
apiVersion: v1
kind: Pod
metadata:
name: poc-ubuntu-custom-ns
namespace: custom-ns
spec:
containers:
- name: poc-ubuntu-custom-ns
image: ubuntu
command: ["/bin/bash", "-ec", "sleep infinity"]
restartPolicy: Never
- เบชเปเบฒเบเบเบฒเบเปเบเป:
kubectl create -f poc-ubuntu-custom-ns.yaml
- เปเบกเบทเปเบญเบเบฑเบเปเบฅเปเบ, เปเบเบเบตเปเบเบฑเปเบเปเบฅเบฐเบเบดเบเบเบฑเปเบ curl.
kubectl exec poc-ubuntu-custom-ns -n custom-ns -it /bin/bash
apt-get update && apt-get install curl -y
- เปเบเบเบฑเบเบเบธเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบปเปเบเบเปเบฒเบฎเปเบญเบเบเปเบเบฒเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเปเบเบซเบฒ Consul เปเบเบเปเบเปเบงเบดเบเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเบเปเบญเบเบซเบเปเบฒเบเบตเป [
เบซเบเปเบฒเบเปเบฒเบญเบดเบ ]. - เปเบเบทเปเบญเปเบเบดเปเบเปเบเปเบเบฑเบเบเบตเปเปเบเบปเปเบฒเบกเบฒเบเบฒเบเบเบฑเบเบเบตเบเปเบฅเบดเบเบฒเบเบเบญเบเบเปเบฒเบ:
cat /run/secrets/kubernetes.io/serviceaccount/token
- เบเบฝเบเบเปเปเปเบเบเบตเปเปเบชเปเปเบเบฅเปเบเบฒเบเปเบเบเปเบญเบเบเบฑเบเบเบธ:
### payload.json
{
"AuthMethod": "auth-method-test",
"BearerToken": "<jwt_token>"
}
- เปเบเบปเปเบฒโเบชเบนเปโเบฅเบฐโเบเบปเบ!
curl
--request POST
--data @payload.json
consul-ds-client.default.svc.cluster.local/v1/acl/login
- เปเบเบทเปเบญเปเบฎเบฑเบเบชเปเบฒเปเบฅเบฑเบเบเบฑเปเบเบเบญเบเบเปเบฒเบเปเบเบดเบเปเบเปเบเบงเบเบฝเบง (เบเบฑเบเบเบฑเปเบเปเบเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบเบซเบผเบฒเบ), เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
echo "{
"AuthMethod": "auth-method-skywiz-consul-poc",
"BearerToken": "$(cat /run/secrets/kubernetes.io/serviceaccount/token)"
}"
| curl
--request POST
--data @-
consul-ds-client.default.svc.cluster.local/v1/acl/login
- เปเบฎเบฑเบเบงเบฝเบ! เบขเปเบฒเบเบซเบเปเบญเบเบกเบฑเบเบเบงเบเบเบฐ. เบเบญเบเบเบตเปเปเบญเบปเบฒ SecretID เปเบฅเบฐเบเบฐเบเบฒเบเบฒเบกเปเบเบปเปเบฒเปเบเบดเบเบฅเบฐเบซเบฑเบ / เบกเบนเบเบเปเบฒเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบงเบเบเบฐเบกเบตเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ.
curl
consul-ds-client.default.svc.cluster.local/v1/kv/custom-ns/test_key --header โX-Consul-Token: <SecretID_from_prev_response>โ
- เบเปเบฒเบเบชเบฒเบกเบฒเบ base64 เบเบญเบเบฅเบฐเบซเบฑเบ "Value" เปเบฅเบฐเปเบซเบฑเบเบงเปเบฒเบกเบฑเบเบเบปเบเบเบฑเบเบเปเบฒเปเบ custom-ns/test_key เปเบ UI. เบเปเบฒเบเปเบฒเบเปเบเปเบเปเบฒเบเบฝเบงเบเบฑเบเบเปเบฒเบเปเบเบดเบเปเบเบเบปเบเบชเบญเบเบเบตเป, เบเปเบฒเบเบตเปเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเบเบญเบเบเปเบฒเบเบเบฐเปเบเบฑเบ IkknbSBpbiB0aGUgY3VzdG9tLW5zIGZvbGRlciEi.
เบเบฒเบเบเบปเบเบชเบญเบเบเบฑเบเบเบตเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบนเปเปเบเป:
- เบชเปเบฒเบเบเบฑเบเบเบตเบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบเบเบเบณเบเบปเบเปเบญเบเปเบเบเปเบเปเบเบณเบชเบฑเปเบเบเปเปเปเบเบเบตเป [
เบซเบเปเบฒเบเปเบฒเบญเบดเบ ].
kubectl apply -f - <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
name: custom-sa
EOF
- เบชเปเบฒเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบซเบกเปเบชเปเบฒเบฅเบฑเบ pod เปเบเป. เบเบฐเบฅเบธเบเบฒเบชเบฑเบเปเบเบเบงเปเบฒเบเปเบญเบเบฅเบงเบกเบเบฒเบเบเบดเบเบเบฑเปเบ curl เปเบเบทเปเบญเบเบฐเบซเบเบฑเบเปเบฎเบเบเบฒเบ :)
###poc-ubuntu-custom-sa.yaml
apiVersion: v1
kind: Pod
metadata:
name: poc-ubuntu-custom-sa
namespace: default
spec:
serviceAccountName: custom-sa
containers:
- name: poc-ubuntu-custom-sa
image: ubuntu
command: ["/bin/bash","-ec"]
args: ["apt-get update && apt-get install curl -y; sleep infinity"]
restartPolicy: Never
- เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบฅเปเบเปเบเบฐเบเบฒเบเปเบเบเบฑเบ.
kubectl exec -it poc-ubuntu-custom-sa /bin/bash
- เปเบเบปเปเบฒโเบชเบนเปโเบฅเบฐโเบเบปเบ!
echo "{
"AuthMethod": "auth-method-skywiz-consul-poc",
"BearerToken": "$(cat /run/secrets/kubernetes.io/serviceaccount/token)"
}"
| curl
--request POST
--data @-
consul-ds-client.default.svc.cluster.local/v1/acl/login
- เบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบทเบเบเบฐเบเบดเปเบชเบ. เปเบญเป, เบเบงเบเปเบฎเบปเบฒเบฅเบทเบกเบเบตเปเบเบฐเปเบเบตเปเบกเบเบปเบเบฅเบฐเบเบฝเบเปเบซเบกเปเบเบตเปเบเบนเบเบกเบฑเบเบเบฑเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก, เปเบซเปเปเบฎเบฑเบเบกเบฑเบเบเบฝเบงเบเบตเป.
เปเบฎเบฑเบเบเปเบณเบเบฑเปเบเบเบญเบเบเปเบญเบเปเปเบฒเบเบตเป:
a) เบชเปเบฒเบเบเบฐเปเบเบเบฒเบเบเบฝเบงเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบเปเบฒเบซเบเปเบฒ "custom-sa/".
b) เบชเปเบฒเบเบเบฒเบฅเบฐเบเบปเบเบเบฒเบ, เปเบเบซเบฒเบกเบฑเบ " custom-sa-role "
c) เบเบฑเบเบเบดเบเบเบฐเปเบเบเบฒเบเบเบฑเบเบเบปเบเบเบฒเบ.
- เบชเปเบฒเบเบเบปเบเบฅเบฐเบเบฝเบเบเบนเบเบกเบฑเบ (เปเบเบฑเบเปเบเปเบเปเบเบฝเบเปเบเปเบเบฒเบ cli/api). เปเบซเปเบชเบฑเบเปเบเบเบเบงเบฒเบกเบซเบกเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบเบญเบเบเบธเบเบเบปเบงเปเบฅเบทเบญเบ.
consul acl binding-rule create
-method=auth-method-skywiz-consul-poc
-bind-type=role
-bind-name='custom-sa-role'
-selector='serviceaccount.name=="custom-sa"'
- เปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบญเบตเบเบเบฑเปเบเบเบฒเบเบเปเบญเบเบเบฑเบเบเบธ "poc-ubuntu-custom-sa". เบเบงเบฒเบกโเบชเปเบฒโเปเบฅเบฑเบ!
- เบเบงเบโเบชเบญเบโเบเบฒเบโเปเบเบปเปเบฒโเปเบเบดเบโเบเบญเบโเบเบงเบโเปเบฎเบปเบฒโเปเบเบทเปเบญ custom-sa/ key path.
curl
consul-ds-client.default.svc.cluster.local/v1/kv/custom-sa/test_key --header โX-Consul-Token: <SecretID>โ
- เบเบญเบเบเบฑเปเบเบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒ token เบเบตเปเบเปเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบเบปเปเบฒเปเบเบดเบ kv เปเบ "custom-ns/". เบเบฝเบเปเบเปเปเบฎเบฑเบเบเปเปเบฒเบเปเบฒเบชเบฑเปเบเบเปเบฒเบเปเบเบดเบเบซเบผเบฑเบเบเบฒเบเบเปเบฝเบ "custom-sa" เบเบฑเบเบเปเบฒเบเปเบฒเบซเบเปเบฒ "custom-ns".
เบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบทเบเบเบฐเบเบดเปเบชเบ.
เบเบปเบงเบขเปเบฒเบ overlay:
- เบกเบฑเบเปเบเบฑเบเบกเบนเบเบเปเบฒเบเบตเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบฒเบเบชเปเบฒเบเปเบเบเบเบตเปเบเบนเบเบกเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฑเบเบซเบกเบปเบเบเบฐเบเบทเบเปเบเบตเปเบกเปเบชเป token เบเบตเปเบกเบตเบชเบดเบเบเบดเปเบซเบผเบปเปเบฒเบเบตเป.
- เบเปเบญเบเบเบฑเบเบเบธเบเบญเบเบเบงเบเปเบฎเบปเบฒ "poc-ubuntu-custom-sa" เปเบกเปเบเบขเบนเปเปเบ namespace เปเบฅเบตเปเบกเบเบปเปเบ - เบชเบฐเบเบฑเปเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบกเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบนเบเบกเบฑเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ.
- เปเบฎเบฑเบเบเปเบณเบเบฑเปเบเบเบญเบเบเบตเปเบเปเบฒเบเบกเบฒ:
a) เบชเปเบฒเบเบเบฐเปเบเบเบฒเบเบเบฝเบงเบเบฑเบเบชเปเบฒเบฅเบฑเบ "default/" เบเปเบฒเบเปเบฒเบซเบเปเบฒเบเบตเปเบชเปเบฒเบเบฑเบ.
b) เบชเปเบฒเบเบเบปเบเบเบฒเบ, เบเบฑเปเบเบเบทเปเบกเบฑเบเบงเปเบฒ "default-ns-role"
c) เบเบฑเบเบเบดเบเบเบฐเปเบเบเบฒเบเบเบฑเบเบเบปเบเบเบฒเบ. - เบชเปเบฒเบเบเบปเบเบฅเบฐเบเบฝเบเบเบนเบเบกเบฑเบ (เปเบเบฑเบเปเบเปเบเปเบเบฝเบเปเบเปเบเบฒเบ cli/api)
consul acl binding-rule create
-method=auth-method-skywiz-consul-poc
-bind-type=role
-bind-name='default-ns-role'
-selector='serviceaccount.namespace=="default"'
- เบเบฑเบเปเบเบเบตเปเบเปเบญเบเบเบฑเบเบเบธ "poc-ubuntu-custom-sa" เบเบญเบเบเบงเบเปเบฎเบปเบฒ เปเบฅเบฐเบเบฐเบเบฒเบเบฒเบกเปเบเบปเปเบฒเบซเบฒเปเบชเบฑเปเบเบเบฒเบ kvv "default/".
- เบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบทเบเบเบฐเบเบดเปเบชเบ.
เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบดเปเบเบเปเปเบกเบนเบเบเบฐเบเปเบฒเบเบปเบงเบเบตเปเบฅเบฐเบเบธเปเบงเปเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐ token เปเบ UI เบเบฒเบเปเบเป ACL > Token. เบเบฑเปเบเบเบตเปเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, token เปเบเบเบฐเบเบธเบเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบฝเบเปเบเปเบซเบเบถเปเบ "เบเบฒเบฅเบฐเบเบปเบเบเบฒเบ custom-sa-" เบเบดเบเบเบฑเบเบกเบฑเบ. เปเบเปเบเบฑเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบณเบฅเบฑเบเปเบเปเบขเบนเปเปเบเบเบฐเบเบฐเบเบตเป เปเบกเปเบเบเบทเบเบชเปเบฒเบเบเบถเปเบเปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบ เปเบฅเบฐเบกเบตเบเบฝเบเปเบเปเบเบปเบเบเบตเปเบเบนเบเบกเบฑเบเบญเบฑเบเบเบฝเบงเบเบตเปเบเบปเบเบเบฑเบเปเบเปเบงเบฅเบฒเบเบฑเปเบ. เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบญเบตเบเบเบฑเปเบ เปเบฅเบฐเปเบเปเปเบเปเบเบฑเบเปเปเป. - เปเบซเปเปเบเปเปเบเบงเปเบฒเบเปเบฒเบเบชเบฒเบกเบฒเบเบญเปเบฒเบเปเบเปเบเบฒเบเบเบฑเบเบชเบญเบ "custom-sa/" เปเบฅเบฐ "default/" เปเบชเบฑเปเบเบเบฒเบ kv.
เบเบงเบฒเบกโเบชเปเบฒโเปเบฅเบฑเบ!
เบเบตเปเปเบกเปเบเบเปเบญเบเบงเปเบฒ "poc-ubuntu-custom-sa" เบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบปเบเบเบฑเบ "custom-sa" เปเบฅเบฐ "default-ns" เบเบฒเบเบเบนเบเบกเบฑเบเบเบปเบเบฅเบฐเบเบฝเบ.
เบชเบฐเบซเบฅเบธเบ
TTL token mgmt?
เปเบเปเบงเบฅเบฒเบเบฝเบเบเบตเป, เบเปเปเบกเบตเบงเบดเบเบตเบเบฒเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเปเบเบทเปเบญเบเปเบฒเบเบปเบ TTL เบชเปเบฒเบฅเบฑเบ tokens เบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบเบงเบดเบเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบตเป. เบกเบฑเบเบเบฐเปเบเบฑเบเปเบญเบเบฒเบเบเบตเปเบเบตเบเบตเปเบเบฐเบชเบฐเบซเบเบญเบเบเบฒเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบตเปเบเบญเบเปเบเบเบญเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบปเบเบชเบธเบ.
เบกเบตเบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบเบชเปเบฒเบ token เบเปเบงเบเบเบปเบเปเบญเบเบเปเบงเบ TTL:
https://www.consul.io/docs/acl/acl-system.html#acl-tokens
เปเบงเบฅเบฒเปเบปเบเบญเบฒเบเบธ - เปเบงเบฅเบฒเบเบตเป token เบเบตเปเบเบฐเบเบทเบเบเบญเบเบเบทเบ. (เบเบฒเบเปเบฅเบทเบญเบ; เปเบเบตเปเบกเปเบ Consul 1.5.0)- เบกเบตเบเบฝเบเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเปเบฒเบ / เบเบฒเบเบเบฑเบเบเบธเบเบเบนเปเบกเบท
https://www.consul.io/api/acl/tokens.html#expirationtime
เบซเบงเบฑเบเบงเปเบฒเปเบเบญเบฐเบเบฒเบเบปเบเบญเบฑเบเปเบเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบงเบเบเบธเบกเบงเบดเบเบตเบเบฒเบเบชเปเบฒเบ tokens (เบเปเปเบเบปเบเบฅเบฐเบเบฝเบเบซเบผเบทเบงเบดเบเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบ) เปเบฅเบฐเปเบเบตเปเบก TTL.
เบเบปเบเบเปเบงเบฒเบเบฑเปเบ, เบกเบฑเบเปเบเปเบเบทเบเปเบเบฐเบเปเบฒเบงเปเบฒเบเปเบฒเบเปเบเปเบเบธเบเบชเบดเปเบเบชเบธเบเบญเบญเบเบเบฒเบเบฅเบฐเบเบปเบเปเบเปเบซเบเบเบปเบเบเบญเบเบเปเบฒเบ.
https://www.consul.io/api/acl/acl.html#logout-from-auth-method https://www.consul.io/docs/acl/acl-auth-methods.html#overall-login-process
เบญเปเบฒเบเบเบปเบเบเบงเบฒเบกเบญเบทเปเบเปเปเบ blog เบเบญเบเบเบงเบเปเบฎเบปเบฒ:
เบเบฒเบเปเบเบทเปเบญเบเบเปเบฒเบเบเบฒเบ ClickHouse เปเบเบเบเปเปเบกเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบเปเบเบซเบฒ ClickHouse เบเปเบงเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเปเบฒเปเบเบชเบนเปเบซเบเบฑเบ? เบงเบดเบเบตเบเบฒเบเปเบฅเปเบเบเปเปเบซเบผเบฒเบเบชเบฒเบเปเบเบเปเบเป GitLab CI/CD เบชเบฒเบก tricks เบเปเบฒเบเบเบฒเบเบเบตเปเบเบฐเบซเบเปเปเบฎเบนเบเบเบฒเบ Docker Traefik เปเบเบฑเบเบเบปเบงเบเบงเบเบเบธเบก Ingress เบชเปเบฒเบฅเบฑเบ K8S เบเบฒเบเบชเปเบฒเบฎเบญเบเบเบญเบเบเปเบฒเบเบงเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบเบญเบเปเบเบเบเบฒเบเปเบงเบฑเบเปเบเบเป heterogeneous Telegram bot เบชเปเบฒเบฅเบฑเบ Redmine. เบงเบดเบเบตเบเบฒเบเปเบฎเบฑเบเปเบซเปเบเบตเบงเบดเบเบเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบปเบงเบเปเบฒเบเปเบญเบเปเบฅเบฐเบเบปเบเบญเบทเปเบ
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com