
āĻ
āϤāĻŋ āϏāĻŽā§āĻĒā§āϰāϤāĻŋ, āĻāĻāĻāĻŋ āϏā§āĻĒāϰāĻŋāĻāĻŋāϤ āĻā§āĻŽā§āĻĒāĻžāύāĻŋ āĻā§āώāĻŖāĻž āĻāϰā§āĻā§ āϝ⧠āĻāĻāĻŋ āϤāĻžāϰ āϞā§āϝāĻžāĻĒāĻāĻĒā§āϰ āϞāĻžāĻāύ āĻāĻāϰāĻāĻŽ āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰ⧠āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰ āĻāϰāĻā§āĨ¤ āϝāĻāύ āĻāĻŽāĻŋ āĻāĻ āĻāĻŦāϰāĻāĻŋ āĻļā§āύāϞāĻžāĻŽ, āĻāĻŽāĻžāϰ āĻŽāύ⧠āĻĒāĻĄāĻŧāϞ: AWS-āĻ EC2-āĻāϰ āĻĻāĻžāĻŽā§āϰ āĻĻāĻŋāĻā§ āĻāĻāĻŦāĻžāϰ āϤāĻžāĻāĻŋāϝāĻŧā§, āĻāĻŽāĻŋ āĻā§āĻŦ āϏā§āϏā§āĻŦāĻžāĻĻā§ āĻĻāĻžāĻŽā§āϰ Gravitons āϞāĻā§āώā§āϝ āĻāϰā§āĻāĻŋāĨ¤ āĻā§āϝāĻžāĻ, āĻ
āĻŦāĻļā§āϝāĻ, āĻāĻāĻž āĻāĻŋāϞ ARM. āϤāĻžāϰāĻĒāϰ⧠āĻāĻāĻŋ āĻāĻŽāĻžāϰ āĻāĻžāĻā§ āĻāĻāύāĻ āĻāϏā§āύāĻŋ āϝ⧠ARM āĻŦā§āĻļ āĻā§āϰā§āϤāϰ ...
āĻāĻŽāĻžāϰ āĻāύā§āϝ, āĻāĻ āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰāĻāĻŋ āϏāϰā§āĻŦāĻĻāĻž āĻŽā§āĻŦāĻžāĻāϞ āĻāĻŦāĻ āĻ āύā§āϝāĻžāύā§āϝ āĻāĻāĻāĻāĻŋ āĻāĻŋāύāĻŋāϏā§āϰ āĻ āύā§āĻ āĻāĻŋāĻā§ āĻāĻŋāϞāĨ¤ āĻāĻāϰāĻāĻŽ-āĻāϰ "āĻŦāĻžāϏā§āϤāĻŦ" āϏāĻžāϰā§āĻāĻžāϰāĻā§āϞāĻŋ āĻāĻāϰāĻāĻŽ āĻ āϏā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ, āĻāĻŋāĻā§ āĻāĻĒāĻžāϝāĻŧā§ āĻāĻŽāύāĻāĻŋ āĻŦāύā§āϝ ... āϝāĻžāĻāĻšā§āĻ, āĻāĻāĻāĻŋ āύāϤā§āύ āĻāĻŋāύā§āϤāĻž āĻāĻŽāĻžāϰ āĻŽāĻžāĻĨāĻžāϝāĻŧ āĻāĻāĻā§ āĻā§āĻā§, āϤāĻžāĻ āϏāĻĒā§āϤāĻžāĻšāĻžāύā§āϤ⧠āĻāĻŽāĻŋ āĻāĻ āĻāĻāϰāĻāĻŽ-āĻ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻā§ āĻāĻžāϞ⧠āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāϝāĻŧā§āĻāĻŋāĨ¤ āĻāĻŦāĻ āĻāĻ āĻāύā§āϝ, āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻāύāĻŋāώā§āĻ āĻāĻŦāĻ āĻĒā§āϰāĻŋāϝāĻŧ āĻāĻ āϏāĻā§āĻā§ āĻļā§āϰ⧠āĻāϰāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāϝāĻŧā§āĻā§ - āĻāĻāĻāĻŋ Kubernetes āĻā§āϞāĻžāϏā§āĻāĻžāϰ. āĻāĻŦāĻ āĻā§āĻŦāϞāĻŽāĻžāϤā§āϰ āĻāĻŋāĻā§ āĻļāϰā§āϤāϝā§āĻā§āϤ "āĻā§āϞāĻžāϏā§āĻāĻžāϰ" āύāϝāĻŧ, āϤāĻŦā§ āϏāĻŦāĻāĻŋāĻā§āĻ "āĻĒā§āϰāĻžāĻĒā§āϤāĻŦāϝāĻŧāϏā§āĻ āĻāĻĒāĻžāϝāĻŧā§", āϝāĻžāϤ⧠āĻāĻāĻŋ āϝāϤāĻāĻž āϏāĻŽā§āĻāĻŦ āĻāĻāĻ āϰāĻāĻŽ āĻšāϝāĻŧ āϝāĻž āĻāĻŽāĻŋ āĻāĻāĻŋāĻā§ āĻāϤā§āĻĒāĻžāĻĻāύ⧠āĻĻā§āĻā§āĻāĻŋāϞāĻžāĻŽāĨ¤
āĻāĻŽāĻžāϰ āϧāĻžāϰāĻŖāĻž āĻ āύā§āϏāĻžāϰā§, āĻā§āϞāĻžāϏā§āĻāĻžāϰāĻāĻŋ āĻāύā§āĻāĻžāϰāύā§āĻ āĻĨā§āĻā§ āĻ ā§āϝāĻžāĻā§āϏā§āϏāϝā§āĻā§āϝ āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤ, āĻāϤ⧠āĻāĻŋāĻā§ āĻāϝāĻŧā§āĻŦ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻāϞāĻŽāĻžāύ āĻĨāĻžāĻāĻž āĻāĻāĻŋāϤ āĻāĻŦāĻ āĻāĻŽāĻĒāĻā§āώ⧠āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻŖ āĻāϰāĻž āĻāĻāĻŋāϤāĨ¤ āĻāĻ āϧāĻžāϰāĻŖāĻžāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻāĻĒāύāĻžāĻā§ āĻāĻŽāĻĒāĻā§āώ⧠āĻŽāĻĄā§āϞ 3B+ āϰāĻžāϏā§āĻĒāĻŦā§āϰāĻŋ āĻĒāĻžāĻ āĻāϰ āĻāĻ āĻā§āĻĄāĻŧāĻž (āĻŦāĻž āϤāĻžāϰ āĻŦā§āĻļāĻŋ) āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāĻŦā§āĨ¤ AWS āĻĒāϰā§āĻā§āώāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽāĻ āĻšāϝāĻŧā§ āĻāĻ āϤ⧠āĻĒāĻžāϰā§, āĻāĻŋāύā§āϤ⧠āĻāĻāĻŋ āĻāĻŋāϞ "āϰāĻžāϏā§āĻĒāĻŦā§āϰāĻŋ" āϝāĻž āĻāĻŽāĻžāϰ āĻāĻžāĻā§ āĻāĻā§āϰāĻšā§āϰ āĻŦāĻŋāώāϝāĻŧ āĻāĻŋāϞ (āϝāĻž āĻāĻāύāĻ āύāĻŋāώā§āĻā§āϰāĻŋāϝāĻŧ āĻāĻŋāϞ)āĨ¤ āϏā§āϤāϰāĻžāĻ, āĻāĻŽāϰāĻž āϤāĻžāĻĻā§āϰ āĻāĻĒāϰ Ingress, Prometheus āĻāĻŦāĻ Grafana āϏāĻš āĻāĻāĻāĻŋ Kubernetes āĻā§āϞāĻžāϏā§āĻāĻžāϰ āϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻŦāĨ¤
"āϰāĻžāϏā§āĻĒāĻŦā§āϰāĻŋ" āĻĒā§āϰāϏā§āϤā§āϤāĻŋ
OS āĻāĻŦāĻ SSH āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻšāĻā§āĻā§
āĻāύāϏā§āĻāϞā§āĻļāύā§āϰ āĻāύā§āϝ āĻāĻāϏā§āϰ āĻĒāĻāύā§āĻĻ āύāĻŋāϝāĻŧā§ āĻāĻŽāĻŋ āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻŽāĻžāĻĨāĻž āĻāĻžāĻŽāĻžāĻāύāĻŋ: āĻāĻŽāĻŋ āϏāĻŦā§āĻŽāĻžāϤā§āϰ āϏāϰā§āĻŦāĻļā§āώ āϰāĻžāϏā§āĻĒāĻŦā§āϰāĻŋ āĻĒāĻžāĻ āĻāĻāϏ āϞāĻžāĻāĻ āύāĻŋāϝāĻŧā§āĻāĻŋ . āϏā§āĻāĻžāύ⧠āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāϝāĻŧ , āϏāĻŽāϏā§āϤ āĻā§āϰāĻŋāϝāĻŧāĻž āϝāĻž āĻĨā§āĻā§ āĻāĻŦāĻŋāώā§āϝāϤā§āϰ āĻā§āϞāĻžāϏā§āĻāĻžāϰā§āϰ āϏāĻŽāϏā§āϤ āύā§āĻĄā§ āϏāĻā§āĻāĻžāϞāĻŋāϤ āĻšāϤ⧠āĻšāĻŦā§āĨ¤ āĻāϰ āĻĒāϰā§, āĻāĻĒāύāĻžāĻā§ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŽā§āϝāĻžāύāĻŋāĻĒā§āϞā§āĻļāύāĻā§āϞāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻāϰāϤ⧠āĻšāĻŦā§ (āϏāĻŦ āύā§āĻĄāĻā§āϞāĻŋāϤā§āĻ)āĨ¤
āĻŽāύāĻŋāĻāϰ āĻāĻŦāĻ āĻā§āĻŦā§āϰā§āĻĄ āϏāĻāϝā§āĻ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻĒāύāĻžāĻā§ āĻĒā§āϰāĻĨāĻŽā§ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻāĻŦāĻ SSH āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§:
- āĻā§āϞāĻžāϏā§āĻāĻžāϰāĻāĻŋ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻŽāĻžāϏā§āĻāĻžāϰā§āϰ āĻāĻāĻāĻŋ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāύāĻž āĻĨāĻžāĻāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻžāĻ āύā§āĻĄāĻā§āϞāĻŋāϰ āĻŦāĻŋāĻŦā§āĻāύāĻžāϰ āĻāĻŋāϤā§āϤāĻŋāϤ⧠āĻāĻāĻŋ āĻĨāĻžāĻāϤ⧠āĻšāĻŦā§āĨ¤ āϏā§āĻāĻāĻĒā§āϰ āϏāĻšāĻāϤāĻžāϰ āĻāĻžāϰāĻŖā§ āĻāĻŽāĻŋ āϏāϰā§āĻŦāϤā§āϰ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻ āĻŋāĻāĻžāύāĻž āĻĒāĻāύā§āĻĻ āĻāϰā§āĻāĻŋāĨ¤
- āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻ āĻŋāĻāĻžāύāĻžāĻāĻŋ OS āĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠(āĻĢāĻžāĻāϞā§
/etc/dhcpcd.confāĻāĻāĻāĻŋ āĻāĻĒāϝā§āĻā§āϤ āĻāĻĻāĻžāĻšāϰāĻŖ āĻāĻā§) āĻ āĻĨāĻŦāĻž āĻŦā§āϝāĻŦāĻšā§āϤ (āĻāĻŽāĻžāϰ āĻā§āώā§āϤā§āϰā§, āĻšā§āĻŽ) āϰāĻžāĻāĻāĻžāϰā§āϰ DHCP āϏāĻžāϰā§āĻāĻžāϰ⧠āĻāĻāĻāĻŋ āϞāĻŋāĻ āĻ āĻŋāĻ āĻāϰā§āĨ¤ - ssh-āϏāĻžāϰā§āĻāĻžāϰ āϏāĻšāĻāĻāĻžāĻŦā§ raspi-config āĻ āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ (āĻāύā§āĻāĻžāϰāĻĢā§āϏāĻŋāĻ āĻ āĻĒāĻļāύ â ssh).
āĻāϰ āĻĒāϰā§, āĻāĻĒāύāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ SSH āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϞāĻ āĻāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ (āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§, āϞāĻāĻāύ āĻšāϞ piāĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻšāϞ raspberry āĻ
āĻĨāĻŦāĻž āĻāĻĒāύāĻŋ āϝā§āĻāĻŋāϤ⧠āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰā§āĻā§āύ) āĻāĻŦāĻ āϏā§āĻāĻŋāĻāϏ āĻāĻžāϞāĻŋāϝāĻŧā§ āϝāĻžāύāĨ¤
āĻ āύā§āϝāĻžāύā§āϝ āϏā§āĻāĻŋāĻāϏā§
- āĻšā§āϏā§āĻāύā§āĻŽ āϏā§āĻ āĻāϰā§āύāĨ¤ āĻāĻŽāĻžāϰ āĻāĻĻāĻžāĻšāϰāĻŖā§, āĻāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦ
pi-controlиpi-worker. - āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ āϝ⧠āĻĢāĻžāĻāϞ āϏāĻŋāϏā§āĻā§āĻŽāĻāĻŋ āĻĒā§āϰ⧠āĻĄāĻŋāϏā§āĻā§ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻšāϝāĻŧā§āĻā§ (
df -h /) āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϞā§, āĻāĻāĻŋ raspi-config āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ - raspi-config āĻ āĻĄāĻŋāĻĢāϞā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰā§āύāĨ¤
- āĻ
āĻĻāϞāĻŦāĻĻāϞ āĻĢāĻžāĻāϞāĻāĻŋ āĻŦāύā§āϧ āĻāϰā§āύ (āĻāĻāĻŋ āĻā§āĻŦāĻžāϰāύā§āĻāϏā§āϰ āĻāĻāĻāĻŋ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž; āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻ āĻŦāĻŋāώāϝāĻŧā§ āĻŦāĻŋāĻļāĻĻ āĻāĻžāύāϤ⧠āĻāĻā§āϰāĻšā§ āĻšāύ āϤāĻŦā§ āĻĻā§āĻā§āύāĨ¤ ):
dphys-swapfile swapoff systemctl disable dphys-swapfile - āϏāϰā§āĻŦāĻļā§āώ āϏāĻāϏā§āĻāϰāĻŖā§ āĻĒā§āϝāĻžāĻā§āĻ āĻāĻĒāĻĄā§āĻ āĻāϰā§āύ:
apt-get update && apt-get dist-upgrade -y - āĻĄāĻāĻžāϰ āĻāĻŦāĻ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āĻĒā§āϝāĻžāĻā§āĻ āĻāύāϏā§āĻāϞ āĻāϰā§āύ:
apt-get install -y docker docker.io apt-transport-https curl bridge-utils iptables-persistentāĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ
iptables-persistentāĻāĻĒāύāĻžāĻā§ ipv4 āĻāĻŦāĻ āĻĢāĻžāĻāϞā§āϰ āĻāύā§āϝ iptables āϏā§āĻāĻŋāĻāϏ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻšāĻŦā§/etc/iptables/rules.v4- āĻā§āĻāύ⧠āύāĻŋāϝāĻŧāĻŽ āϝā§āĻ āĻāϰā§āύFORWARD, āĻāĻ āĻŽāϤ:# Generated by xtables-save v1.8.2 on Sun Jul 19 00:27:43 2020 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A FORWARD -s 10.1.0.0/16 -j ACCEPT -A FORWARD -d 10.1.0.0/16 -j ACCEPT COMMIT - āϝāĻž āĻ āĻŦāĻļāĻŋāώā§āĻ āĻĨāĻžāĻā§ āϤāĻž āĻšāϞ āϰāĻŋāĻŦā§āĻ āĻāϰāĻžāĨ¤
āĻāĻĒāύāĻŋ āĻāĻāύ Kubernetes āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāϏā§āϤā§āϤāĨ¤
āĻā§āĻŦāĻžāϰāύā§āĻāϏ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻšāĻā§āĻā§
āĻāĻ āĻĒāϰā§āϝāĻžāϝāĻŧā§, āĻāĻŽāĻŋ āĻāĻā§āĻāĻžāĻā§āϤāĻāĻžāĻŦā§ K8s āĻā§āϞāĻžāϏā§āĻāĻžāϰā§āϰ āĻāύāϏā§āĻāϞā§āĻļāύ āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŽāĻžāϰ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āϰ āϏāĻŽāϏā§āϤ āĻāϰā§āĻĒā§āϰā§āĻ āĻāύā§āύāϝāĻŧāύāĻā§āϞāĻŋāĻā§ āĻāĻāĻĒāĻžāĻļā§ āϏāϰāĻŋāϝāĻŧā§ āϰā§āĻā§āĻāĻŋāĨ¤ āĻĒāϰāĻŋāĻŦāϰā§āϤā§, āĻāϰ āϏāĻžāĻĨā§ āĻ āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžāĻ (āĻŽāύā§āϤāĻŦā§āϝ āĻāĻŦāĻ āϏāĻāĻā§āώāĻŋāĻĒā§āϤ āϰā§āĻĒā§āϰ āϏāĻžāĻĨā§ āϏāĻžāĻŽāĻžāύā§āϝ āĻĒāϰāĻŋāĻĒā§āϰāĻ)āĨ¤
āĻā§āĻŦāĻžāϰāύā§āĻāϏ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ āϝā§āĻ āĻāϰāĻž āϝāĻžāĻ:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get updateāĻāϰāĻ, āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ āϏāĻŋāĻāϰāĻāĻ (āĻāύā§āĻā§āĻāύāĻžāϰ āϰāĻžāύāĻāĻžāĻāĻŽ āĻāύā§āĻāĻžāϰāĻĢā§āϏ) āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻĻā§āϝāĻŧāĨ¤ āϝā§āĻšā§āϤ⧠āĻĄāĻāĻžāϰ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻāĻā§, āĻāϞā§āύ āĻāϞā§āύ āĻāĻŦāĻ āĻĒā§āϰāϧāĻžāύ āĻāĻĒāĻžāĻĻāĻžāύāĻā§āϞāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāĻŋ:
sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni āĻĒā§āϰāϧāĻžāύ āĻāĻĒāĻžāĻĻāĻžāύ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āϧāĻžāĻĒā§, āĻāĻŽāĻŋ āĻ
āĻŦāĻŋāϞāĻŽā§āĻŦā§ āϝā§āĻ kubernetes-cni, āϝāĻž āĻā§āϞāĻžāϏā§āĻāĻžāϰā§āϰ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāĨ¤ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻĒāϝāĻŧā§āύā§āĻ āĻāĻā§: āĻĒā§āϝāĻžāĻā§āĻ kubernetes-cni āĻāĻŋāĻā§ āĻāĻžāϰāĻŖā§ CNI āϏā§āĻāĻŋāĻāϏā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĄāĻŋāĻĢāϞā§āĻ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋ āϤā§āϰāĻŋ āĻāϰ⧠āύāĻž, āϤāĻžāĻ āĻāĻŽāĻžāĻā§ āĻāĻāĻŋ āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞāĻŋ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻšāϝāĻŧā§āĻāĻŋāϞ:
mkdir -p /etc/cni/net.dāύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ, āϝāĻž āύā§āĻā§ āĻāϞā§āĻāύāĻž āĻāϰāĻž āĻšāĻŦā§, āĻāĻĒāύāĻžāĻā§ CNI-āĻāϰ āĻāύā§āϝ āĻĒā§āϞāĻžāĻāĻāύ āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻŽāĻŋ āĻĒāϰāĻŋāĻāĻŋāϤ āĻāĻŦāĻ āĻŦā§āϧāĻāĻŽā§āϝ āĻĒā§āϰā§āĻāĻŽā§āϝāĻžāĻĒ āĻĒā§āϞāĻžāĻāĻāύ āĻŦā§āĻā§ āύāĻŋāϝāĻŧā§āĻāĻŋ (āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϤāĻžāϞāĻŋāĻāĻžāϰ āĻāύā§āϝ, āĻĻā§āĻā§āύ ):
curl -sL https://github.com/containernetworking/plugins/releases/download/v0.7.5/cni-plugins-arm-v0.7.5.tgz | tar zxvf - -C /opt/cni/bin/ ./portmapāĻā§āĻŦāĻžāϰāύā§āĻāϏ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āĻšāĻā§āĻā§
āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āϏāĻŽāϤāϞ āϏāĻā§āĻā§ āύā§āĻĄ
āĻā§āϞāĻžāϏā§āĻāĻžāϰ āύāĻŋāĻā§āĻ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻŦā§āĻļ āϏāĻšāĻāĨ¤ āĻāĻŦāĻ āĻāĻ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāϰ āĻāϤāĻŋ āĻŦāĻžāĻĄāĻŧāĻžāύā§āϰ āĻāύā§āϝ āĻāĻŦāĻ āĻā§āĻŦāĻžāϰāύā§āĻāϏ āĻāĻŽā§āĻāĻā§āϞāĻŋ āĻāĻĒāϞāĻŦā§āϧ āĻāĻā§ āĻāĻŋāύāĻž āϤāĻž āϝāĻžāĻāĻžāĻ āĻāϰāϤā§, āĻāĻĒāύāĻŋ āĻĒā§āϰāĻžāĻ-āĻāĻžāϞāύāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
kubeadm config images pullāĻāĻāύ āĻāĻŽāϰāĻž āύāĻŋāĻā§āĻ āĻāύāϏā§āĻāϞā§āĻļāύāĻāĻŋ āĻāĻžāϞāĻžāĻ - āĻā§āϞāĻžāϏā§āĻāĻžāϰā§āϰ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āϏāĻŽāϤāϞ āĻļā§āϰ⧠āĻāϰā§āύ:
kubeadm init --pod-network-cidr=10.1.0.0/16 --service-cidr=10.2.0.0/16 --upload-certsāĻĻāϝāĻŧāĻž āĻāϰ⧠āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ āϝ⧠āĻĒāϰāĻŋāώā§āĻŦāĻž āĻāĻŦāĻ āĻĒāĻĄāĻā§āϞāĻŋāϰ āĻāύā§āϝ āϏāĻžāĻŦāύā§āĻāĻā§āϞāĻŋ āĻāĻā§ āĻ āĻĒāϰā§āϰ āϏāĻžāĻĨā§ āĻāĻŦāĻ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻāĻāĻžāϰāϞā§āϝāĻžāĻĒ āĻāϰāĻž āĻāĻāĻŋāϤ āύāϝāĻŧ⧎
āĻļā§āώā§, āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻāĻŋ āĻŦāĻžāϰā§āϤāĻž āĻĻā§āĻāĻžāύ⧠āĻšāĻŦā§ āϝ⧠āϏāĻŦāĻāĻŋāĻā§ āĻ āĻŋāĻ āĻāĻā§, āĻāĻŦāĻ āĻāĻāĻ āϏāĻžāĻĨā§ āĻāĻŽāĻžāĻĻā§āϰ āĻŦāϞā§āύ āĻā§āĻāĻžāĻŦā§ āĻāϰā§āĻŽā§ āύā§āĻĄāĻā§āϞāĻŋ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āϏāĻŽāϤāϞ⧠āϏāĻāϝā§āĻā§āϤ āĻāϰāĻŦā§āύ:
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
You can now join any number of the control-plane node running the following command on each as root:
kubeadm join 192.168.88.30:6443 --token a485vl.xjgvzzr2g0xbtbs4
--discovery-token-ca-cert-hash sha256:9da6b05aaa5364a9ec59adcc67b3988b9c1b94c15e81300560220acb1779b050
--contrl-plane --certificate-key 72a3c0a14c627d6d7fdade1f4c8d7a41b0fac31b1faf0d8fdf9678d74d7d2403
Please note that the certificate-key gives access to cluster sensitive data, keep it secret!
As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use
"kubeadm init phase upload-certs --upload-certs" to reload certs afterward.
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.88.30:6443 --token a485vl.xjgvzzr2g0xbtbs4
--discovery-token-ca-cert-hash sha256:9da6b05aaa5364a9ec59adcc67b3988b9c1b94c15e81300560220acb1779b050āĻāϏā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰ āϝā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āϏā§āĻĒāĻžāϰāĻŋāĻļāĻā§āϞāĻŋ āĻ āύā§āϏāϰāĻŖ āĻāϰāĻŋāĨ¤ āĻāĻŦāĻ āĻāĻāĻ āϏāĻŽāϝāĻŧā§ āĻāĻŽāĻŋ āĻ āĻŦāĻŋāϞāĻŽā§āĻŦā§ kubectl-āĻāϰ āĻāύā§āϝ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ-āϏāĻŽā§āĻĒā§āϰā§āĻŖāϤāĻž āϝā§āĻ āĻāϰāĻžāϰ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻĻāĻŋāĻ:
kubectl completion bash > ~/.kube/completion.bash.inc
printf "
# Kubectl shell completion
source '$HOME/.kube/completion.bash.inc'
" >> $HOME/.bash_profile
source $HOME/.bash_profileāĻāĻ āĻĒāϰā§āϝāĻžāϝāĻŧā§, āĻāĻĒāύāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āĻĒā§āϰāĻĨāĻŽ āύā§āĻĄ āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āύ (āϤāĻŦā§, āĻāĻāĻŋ āĻāĻāύāĻ āĻĒā§āϰāϏā§āϤā§āϤ āύāϝāĻŧ):
root@pi-control:~# kubectl get no
NAME STATUS ROLES AGE VERSION
pi-control NotReady master 29s v1.18.6āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ
āĻāϰāĻ, āϝā§āĻŽāύāĻāĻŋ āĻāύāϏā§āĻāϞā§āĻļāύā§āϰ āĻĒāϰ⧠āĻŦāĻžāϰā§āϤāĻžāϝāĻŧ āĻŦāϞāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ, āĻāĻĒāύāĻžāĻā§ āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύāĻāĻŋ āĻā§āϝāĻžāϞāĻŋāĻā§, āϏāĻŋāϞāĻŋāϝāĻŧāĻžāĻŽ, āĻāύāĻāĻŋāĻ-āĻāĻŋāĻĒāĻŋāĻĒāĻŋ, āĻā§āĻŦā§-āϰāĻžāĻāĻāĻžāϰ āĻāĻŦāĻ āĻāϝāĻŧā§āĻ āύā§āĻ-āĻāϰ āĻāĻāĻāĻŋ āĻĒāĻāύā§āĻĻ āĻĒā§āϰāϏā§āϤāĻžāĻŦ āĻāϰā§... āĻāĻāĻžāύ⧠āĻāĻŽāĻŋ āĻ āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āύāĻŋāϰā§āĻĻā§āĻļāύāĻž āĻĨā§āĻā§ āĻŦāĻŋāĻā§āϝā§āϤ āĻšāϝāĻŧā§āĻāĻŋ āĻāĻŦāĻ āĻāĻŽāĻžāϰ āĻāύā§āϝ āĻāϰāĻ āĻĒāϰāĻŋāĻāĻŋāϤ āĻāĻŦāĻ āĻŦā§āϧāĻāĻŽā§āϝ āĻŦāĻŋāĻāϞā§āĻĒ āĻŦā§āĻā§ āύāĻŋāϝāĻŧā§āĻāĻŋ: āĻšā§āϏā§āĻ-āĻāĻŋāĻĄāĻŦā§āϞāĻŋāĻ āĻŽā§āĻĄā§ (āĻāĻĒāϞāĻŦā§āϧ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§āϰ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻāĻžāύāĻžāϰ āĻāύā§āϝ, āĻĻā§āĻā§āύ ).
āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āĻāĻāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻŦā§āĻļ āϏāĻšāĻāĨ¤ āĻĒā§āϰāĻĨāĻŽā§, āĻāϏā§āύ āĻŽā§āϝāĻžāύāĻŋāĻĢā§āϏā§āĻāĻā§āϞāĻŋ āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāĻŋ:
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml āϤāĻžāϰāĻĒāϰ⧠āĻāĻŽāϰāĻž āϏā§āĻāĻŋāĻāϏ āĻĨā§āĻā§ āĻāĻžāĻāĻĒ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻŋ vxlan āĻāĻĒāϰ host-gw:
sed -i 's/vxlan/host-gw/' kube-flannel.yml... āĻāĻŦāĻ āĻĒāĻĄā§āϰ āϏāĻžāĻŦāύā§āĻ - āĻĄāĻŋāĻĢāϞā§āĻ āĻŽāĻžāύ āĻĨā§āĻā§ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻāύāĻŋāĻļāĻŋāϝāĻŧāĻžāϞāĻžāĻāĻā§āĻļāύā§āϰ āϏāĻŽāϝāĻŧ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻž āĻĒāϰā§āϝāύā§āϤ:
sed -i 's#10.244.0.0/16#10.1.0.0/16#' kube-flannel.ymlāĻāϰ āĻĒāϰā§, āĻāĻŽāϰāĻž āϏāĻāϏā§āĻĨāĻžāύ āϤā§āϰāĻŋ āĻāϰāĻŋ:
kubectl create -f kube-flannel.yml āĻĒā§āϰāϏā§āϤā§āϤ! āĻāĻŋāĻā§ āϏāĻŽāϝāĻŧ āĻĒāϰā§, āĻĒā§āϰāĻĨāĻŽ K8s āύā§āĻĄāĻāĻŋ āϏā§āĻĨāĻŋāϤāĻŋāϤ⧠āϏā§āϝā§āĻāĻ āĻāϰāĻŦā§ Ready:
NAME STATUS ROLES AGE VERSION
pi-control Ready master 2m v1.18.6āĻāĻāĻāĻŋ āĻāϰā§āĻŽā§ āύā§āĻĄ āϝā§āĻ āĻāϰāĻž āĻšāĻā§āĻā§
āĻāĻāύ āĻāĻĒāύāĻŋ āĻāĻāĻāύ āĻāϰā§āĻŽā§ āϝā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻāĻāĻŋāϤ⧠- āĻāĻĒāϰ⧠āĻŦāϰā§āĻŖāĻŋāϤ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋ āĻ āύā§āϏāĻžāϰ⧠āĻā§āĻŦāĻžāϰāύā§āĻāϏ āύāĻŋāĻā§āĻ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻĒāϰ⧠- āĻāĻĒāύāĻžāĻā§ āĻā§āĻŦāϞ āĻĒā§āϰā§āĻŦā§ āĻĒā§āϰāĻžāĻĒā§āϤ āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāϤ⧠āĻšāĻŦā§:
kubeadm join 192.168.88.30:6443 --token a485vl.xjgvzzr2g0xbtbs4
--discovery-token-ca-cert-hash sha256:9da6b05aaa5364a9ec59adcc67b3988b9c1b94c15e81300560220acb1779b050āĻāĻāĻŋāϤā§, āĻāĻŽāϰāĻž āĻ āύā§āĻŽāĻžāύ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ āϝ⧠āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻĒā§āϰāϏā§āϤā§āϤ:
root@pi-control:~# kubectl get no
NAME STATUS ROLES AGE VERSION
pi-control Ready master 28m v1.18.6
pi-worker Ready <none> 2m8s v1.18.6āĻāĻŽāĻžāϰ āĻšāĻžāϤ⧠āĻŽāĻžāϤā§āϰ āĻĻā§āĻāĻŋ āϰāĻžāϏā§āĻĒāĻŦā§āϰāĻŋ āĻĒāĻŋāϏ āĻāĻŋāϞ, āϤāĻžāĻ āϤāĻžāĻĻā§āϰ āĻāĻāĻāĻŋ āĻĻāĻŋāϝāĻŧā§ āĻĻāĻŋāϞāĻžāĻŽ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻŽāĻŋ āĻāĻāĻŋ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āϏāĻŽāϤāϞā§āϰ āĻ āϧā§āύ⧠āĻāĻžāĻāύāĻŋāĨ¤ āϤāĻžāĻ āĻāĻŽāĻŋ āĻāĻžāϞāĻžāύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĒāĻžāĻ-āĻāύā§āĻā§āϰā§āϞ āύā§āĻĄ āĻĨā§āĻā§ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻāϞāĻā§āĻāĻāĻŋ āϏāϰāĻŋāϝāĻŧā§āĻāĻŋ:
root@pi-control:~# kubectl edit node pi-controlāĻāĻŦāĻ āϞāĻžāĻāύāĻā§āϞāĻŋ āĻ āĻĒāϏāĻžāϰāĻŖ āĻāϰāĻž āĻšāĻā§āĻā§:
- effect: NoSchedule
key: node-role.kubernetes.io/masterāĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āύā§āϝā§āύāϤāĻŽ āϏāĻā§āĻā§ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻĒā§āϰāĻŖ
āĻĒā§āϰāĻĨāĻŽāϤ, āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāĻŦā§ āĻšāĻžāϞ. āĻ āĻŦāĻļā§āϝāĻ, āĻāĻĒāύāĻŋ āĻāĻāĻŋ āĻāĻžāĻĄāĻŧāĻžāĻ āϏāĻŦāĻāĻŋāĻā§ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϤāĻŦā§ āĻšā§āϞāĻŽ āĻāĻĒāύāĻžāĻā§ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āύāĻž āĻāϰā§āĻ āĻāĻĒāύāĻžāϰ āĻŦāĻŋāĻŦā§āĻāύāĻžāϰ āĻāĻŋāϤā§āϤāĻŋāϤ⧠āĻāĻŋāĻā§ āĻāĻĒāĻžāĻĻāĻžāύ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧāĨ¤ āĻāĻŦāĻ āĻĒā§āϰāĻā§āϤāĻĒāĻā§āώ⧠āĻāĻāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻāĻŋ āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻĢāĻžāĻāϞ āϝāĻž "āϰā§āĻāĻŋāϰ āĻāύā§āϝ āĻāĻŋāĻā§āĻāĻžāϏāĻž āĻāϰ⧠āύāĻžāĨ¤"
āϤāĻžāĻ āĻāϰ āϝāĻžāĻ āĻĄāĻā§āϏ/āĻāύāϏā§āĻāϞā§āĻļāύ āĻŦāĻŋāĻāĻžāĻā§ āϝāĻžāύ āĻāĻŦāĻ āϏā§āĻāĻžāύ āĻĨā§āĻā§ āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻāĻžāϞāĻžāύ:
curl -s https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bashāĻāϰ āĻĒāϰā§, āĻāĻžāϰā§āĻ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ āϝā§āĻ āĻāϰā§āύ:
helm repo add stable https://kubernetes-charts.storage.googleapis.com/āĻāĻāύ āϧāĻžāϰāĻŖāĻž āĻ āύā§āϝāĻžāϝāĻŧā§ āĻ āĻŦāĻāĻžāĻ āĻžāĻŽā§ āĻāĻĒāĻžāĻĻāĻžāύ āĻāύāϏā§āĻāϞ āĻāϰāĻž āϝāĻžāĻ:
- āĻĒā§āϰāĻŦā§āĻļ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻ;
- āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ;
- āĻā§āϰāĻžāĻĢāĻžāύāĻž;
- āĻļāĻāϏāĻžāĻĒāϤā§āϰ-āĻŦā§āϝāĻŦāϏā§āĻĨāĻžāĻĒāĻ
āĻĒā§āϰāĻŦā§āĻļ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻ
āĻĒā§āϰāĻĨāĻŽ āĻāĻĒāĻžāĻĻāĻžāύ āĻšāϞ āĻĒā§āϰāĻŦā§āĻļ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻ - āĻāύāϏā§āĻāϞ āĻāϰāĻž āϏāĻšāĻ āĻāĻŦāĻ āĻŦāĻžāĻā§āϏā§āϰ āĻŦāĻžāĻāϰ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāϏā§āϤā§āϤāĨ¤ āĻāĻāĻŋ āĻāϰāϤā§, āĻļā§āϧ⧠āϝāĻžāύ āĻāĻŦāĻ āϏā§āĻāĻžāύ āĻĨā§āĻā§ āĻāύāϏā§āĻāϞ āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻāĻžāϞāĻžāύ:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/baremetal/deploy.yamlāϝāĻžāĻāĻšā§āĻ, āĻāĻ āĻŽā§āĻšā§āϰā§āϤ⧠"āϰāĻžāϏā§āĻĒāĻŦā§āϰāĻŋ" āĻāĻžāĻĒāϤ⧠āĻļā§āϰ⧠āĻāϰ⧠āĻāĻŦāĻ āĻĄāĻŋāϏā§āĻ āĻāĻāĻāĻĒāĻŋāĻāϏ⧠āĻāϞ⧠āϝāĻžāϝāĻŧāĨ¤ āĻāϏāϞ āĻŦāĻŋāώāϝāĻŧāĻāĻŋ āĻš'āϞ āĻāύāĻā§āϰā§āϏ āĻāύā§āĻā§āϰā§āϞāĻžāϰā§āϰ āϏāĻžāĻĨā§, āĻĒā§āϰāĻā§āϰ āϏāĻāĻā§āϝāĻ āϏāĻāϏā§āĻĨāĻžāύ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻšāϝāĻŧ, āĻ āύā§āĻāĻā§āϞāĻŋ API āĻ āύā§āϰā§āϧ āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āϏā§āĻ āĻ āύā§āϏāĻžāϰā§, āĻāϤā§āϝāĻžāĻĻāĻŋāϤ⧠āĻĒā§āϰāĻā§āϰ āĻĄā§āĻāĻž āϞā§āĻāĻž āĻšāϝāĻŧāĨ¤ āϏāĻžāϧāĻžāϰāĻŖāĻāĻžāĻŦā§, āĻšāϝāĻŧ āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏ 10 āĻŽā§āĻŽāϰāĻŋ āĻāĻžāϰā§āĻĄ āĻā§āĻŦ āĻāϤā§āĻĒāĻžāĻĻāύāĻļā§āϞ āύāϝāĻŧ, āĻŦāĻž āĻāĻāĻāĻŋ āĻāϏāĻĄāĻŋ āĻāĻžāϰā§āĻĄ, āύā§āϤāĻŋāĻāϤāĻāĻžāĻŦā§, āĻāĻ āϧāϰāύā§āϰ āϞā§āĻĄā§āϰ āĻāύā§āϝ āϝāĻĨā§āώā§āĻ āύāϝāĻŧāĨ¤ āϝāĻžāĻāĻšā§āĻ, āĻĒā§āϰāĻžāϝāĻŧ 5 āĻŽāĻŋāύāĻŋāĻ āĻĒāϰ⧠āϏāĻŦāĻāĻŋāĻā§ āĻļā§āϰ⧠āĻšāϝāĻŧāĨ¤
āĻāĻāĻāĻŋ āύāĻžāĻŽāϏā§āĻĨāĻžāύ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ āĻāĻŦāĻ āĻāĻāĻāĻŋ āύāĻŋāϝāĻŧāĻžāĻŽāĻ āĻāĻŦāĻ āϤāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āϏāĻŽāϏā§āϤ āĻāĻŋāĻā§ āĻāϤ⧠āĻāĻĒāϏā§āĻĨāĻŋāϤ āĻšāϝāĻŧā§āĻāĻŋāϞ:
root@pi-control:~# kubectl -n ingress-nginx get pod
NAME READY STATUS RESTARTS AGE
ingress-nginx-admission-create-2hwdx 0/1 Completed 0 31s
ingress-nginx-admission-patch-cp55c 0/1 Completed 0 31s
ingress-nginx-controller-7fd7d8df56-68qp5 1/1 Running 0 48sāĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ
āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻĻā§āĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāύ āĻāĻžāϰā§āĻ āϰā§āĻĒā§ āĻĨā§āĻā§ āĻšā§āϞāĻŽā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āϏāĻšāĻāĨ¤
āĻ āύā§āϏāύā§āϧāĻžāύ āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ, āĻāĻāĻāĻŋ āύāĻžāĻŽāϏā§āĻĨāĻžāύ āϤā§āϰāĻŋ āĻāϰā§āύ āĻāĻŦāĻ āĻāĻāĻŋ āϏā§āĻ āĻāϰā§āύ:
helm search repo stable | grep prometheus
kubectl create ns monitoring
helm install prometheus --namespace monitoring stable/prometheus --set server.ingress.enabled=True --set server.ingress.hosts={"prometheus.home.pi"}āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§, āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ 2āĻāĻŋ āĻĄāĻŋāϏā§āĻ āĻ āϰā§āĻĄāĻžāϰ āĻāϰā§: āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏā§āϰ āύāĻŋāĻā§āϰ āĻĄā§āĻāĻžāϰ āĻāύā§āϝ āĻāĻŦāĻ AlertManager-āĻāϰ āĻĄā§āĻāĻžāϰ āĻāύā§āϝāĨ¤ āϝā§āĻšā§āϤ⧠āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āĻā§āύ⧠āϏā§āĻā§āϰā§āĻ āĻā§āϞāĻžāϏ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧāύāĻŋ, āϤāĻžāĻ āĻĄāĻŋāϏā§āĻ āĻ āϰā§āĻĄāĻžāϰ āĻāϰāĻž āĻšāĻŦā§ āύāĻž āĻāĻŦāĻ āĻĒāĻĄ āĻļā§āϰ⧠āĻšāĻŦā§ āύāĻžāĨ¤ āĻŦā§āϝāĻŧāĻžāϰ āĻŽā§āĻāĻžāϞ Kubernetes āĻāύāϏā§āĻāϞā§āĻļāύā§āϰ āĻāύā§āϝ, āĻāĻŽāϰāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ Ceph rbd āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŋ, āĻāĻŋāύā§āϤ⧠āϰāĻžāϏā§āĻĒāĻŦā§āϰāĻŋ āĻĒāĻžāĻ-āĻāϰ āĻā§āώā§āϤā§āϰā§, āĻāĻāĻŋ āĻ āϤāĻŋāĻŽāĻžāϤā§āϰāĻžāϝāĻŧāĨ¤
āĻ
āϤāĻāĻŦ, āĻāϏā§āύ āĻšā§āϏā§āĻāĻĒāĻĨā§ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āϏā§āĻĨāĻžāύā§āϝāĻŧ āϏā§āĻā§āϰā§āĻ āϤā§āϰāĻŋ āĻāϰāĻŋāĨ¤ āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ-āϏāĻžāϰā§āĻāĻžāϰ āĻāĻŦāĻ āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ-āϏāϤāϰā§āĻ āĻŦā§āϝāĻŦāϏā§āĻĨāĻžāĻĒāĻā§āϰ āĻāύā§āϝ PV (āϏā§āĻĨāĻŋāϰ āĻāϞāĻŋāĻāĻŽ) āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞ⧠āĻāĻāϤā§āϰāĻŋāϤ āĻšāϝāĻŧ prometheus-pv.yaml в . PV āĻāύā§āϝ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻāĻāĻžāĻŽ āύā§āĻĄā§āϰ āĻĄāĻŋāϏā§āĻā§ āϤā§āϰāĻŋ āĻāϰā§āύ āϝāĻžāϰ āϏāĻžāĻĨā§ āĻāĻŽāϰāĻž āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏāĻā§ āĻāĻŦāĻĻā§āϧ āĻāϰāϤ⧠āĻāĻžāĻ: āĻāĻĻāĻžāĻšāϰāĻŖā§ āĻāĻāĻŋ āϞā§āĻāĻž āĻāĻā§ nodeAffinity āĻšā§āϏā§āĻāύāĻžāĻŽ āĻĻā§āĻŦāĻžāϰāĻž pi-worker āĻāĻŦāĻ āĻāĻāĻŋāϤ⧠āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧ /data/localstorage/prometheus-server и /data/localstorage/prometheus-alertmanager.
āĻŽā§āϝāĻžāύāĻŋāĻĢā§āϏā§āĻāĻāĻŋ āĻĄāĻžāĻāύāϞā§āĻĄ (āĻā§āϞā§āύ) āĻāϰā§āύ āĻāĻŦāĻ āĻāĻāĻŋ āĻā§āĻŦāĻžāϰāύā§āĻāϏ⧠āϝā§āĻā§āϤ āĻāϰā§āύ:
kubectl create -f prometheus-pv.yamlāĻāĻ āĻĒāϰā§āϝāĻžāϝāĻŧā§, āĻāĻŽāĻŋ āĻĒā§āϰāĻĨāĻŽ āĻāĻāϰāĻāĻŽ āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰā§āϰ āϏāĻŽāϏā§āϝāĻžāϰ āϏāĻŽā§āĻŽā§āĻā§āύ āĻšāĻāĨ¤ āĻā§āĻŦā§-āϏā§āĻā§āĻ-āĻŽā§āĻā§āϰāĻŋāĻā§āϏ, āϝāĻž āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ āĻāĻžāϰā§āĻā§ āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻāĻā§, āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ āĻ āϏā§āĻŦā§āĻāĻžāϰ āĻāϰā§āĻā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āϤā§āϰā§āĻāĻŋ āĻĻāĻŋāϝāĻŧā§āĻā§:
root@pi-control:~# kubectl -n monitoring logs prometheus-kube-state-metrics-c65b87574-l66d8
standard_init_linux.go:207: exec user process caused "exec format error"āĻāϏāϞ āĻŦāĻŋāώāϝāĻŧāĻāĻŋ āĻšāϞ āϝ⧠kube-state-metrics CoreOS āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻāĻāĻāĻŋ āĻāĻŋāϤā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āϝāĻž ARM-āĻāϰ āĻāύā§āϝ āϏāĻāĻāϞāĻŋāϤ āύāϝāĻŧ:
kubectl -n monitoring get deployments.apps prometheus-kube-state-metrics -o=jsonpath={.spec.template.spec.containers[].image}
quay.io/coreos/kube-state-metrics:v1.9.7āĻāĻŽāĻžāĻā§ āĻāĻāĻā§ āĻā§āĻāϞ āĻāϰāϤ⧠āĻšāϝāĻŧā§āĻāĻŋāϞ āĻāĻŦāĻ āĻā§āĻāĻā§ āĻĒā§āϝāĻŧā§āĻāĻŋ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, . āĻāĻāĻŋāϰ āϏā§āĻŦāĻŋāϧāĻž āύāĻŋāϤā§, āĻā§āĻŦā§-āϏā§āĻā§āĻ-āĻŽā§āĻā§āϰāĻŋāĻā§āϏā§āϰ āĻāύā§āϝ āĻā§āύ āĻāĻŋāϤā§āϰāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§ āϤāĻžāϰ āϏāĻžāĻĨā§ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻž āϝāĻžāĻ:
helm upgrade prometheus --namespace monitoring stable/prometheus --set server.ingress.enabled=True --set server.ingress.hosts={"prometheus.home.pi"} --set kube-state-metrics.image.repository=carlosedp/kube-state-metrics --set kube-state-metrics.image.tag=v1.9.6āϏāĻŦāĻāĻŋāĻā§ āĻāϞāĻā§ āĻāĻŋāύāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ:
root@pi-control:~# kubectl -n monitoring get po
NAME READY STATUS RESTARTS AGE
prometheus-alertmanager-df65d99d4-6d27g 2/2 Running 0 5m56s
prometheus-kube-state-metrics-5dc5fd89c6-ztmqr 1/1 Running 0 5m56s
prometheus-node-exporter-49zll 1/1 Running 0 5m51s
prometheus-node-exporter-vwl44 1/1 Running 0 4m20s
prometheus-pushgateway-c547cfc87-k28qx 1/1 Running 0 5m56s
prometheus-server-85666fd794-z9qnc 2/2 Running 0 4m52sāĻā§āϰāĻžāĻĢāĻžāύāĻž āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻŽā§āϝāĻžāύā§āĻāĻžāϰ
āĻāĻžāϰā§āĻ āĻāĻŦāĻ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄā§āϰ āĻāύā§āϝ āĻāĻŽāϰāĻž āϏā§āĻ āĻāϰāĻŋ āĻā§āϰāĻžāĻĢāĻžāύāĻž:
helm install grafana --namespace monitoring stable/grafana --set ingress.enabled=true --set ingress.hosts={"grafana.home.pi"}āĻāĻāĻāĻĒā§āĻ āĻļā§āώ⧠āĻāĻŽāϰāĻž āĻā§āĻāĻžāĻŦā§ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻĒā§āϤ⧠āĻĒāĻžāϰāĻŋ āϤāĻž āĻĻā§āĻāĻžāύ⧠āĻšāĻŦā§:
kubectl get secret --namespace monitoring grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echoāϏāĻžāϰā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻ āϰā§āĻĄāĻžāϰ āĻāϰāϤā§, āĻāύāϏā§āĻāϞ āĻāϰā§āύ āϝāĻž āύāĻŋāĻļā§āĻāĻŋāϤāĻāĻžāĻŦā§ āĻāĻāĻŦā§-āĻŦā§āϝāĻŦāϏā§āĻĨāĻžāĻĒāĻ. āĻāĻāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāϤā§, āĻ āύā§āĻā§āϰāĻš āĻāϰ⧠āĻĒāĻĄāĻŧā§āύ , āϝāĻž āĻšā§āϞāĻŽā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§āϤ āĻāĻĻā§āĻļ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§:
helm repo add jetstack https://charts.jetstack.io
helm install
cert-manager jetstack/cert-manager
--namespace cert-manager
--version v0.16.0
--set installCRDs=trueāĻŦāĻžāĻĄāĻŧāĻŋāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āϏā§āĻŦ-āϏā§āĻŦāĻžāĻā§āώāϰāĻŋāϤ āĻļāĻāϏāĻžāĻĒāϤā§āϰā§āϰ āĻāύā§āϝ, āĻāĻāĻŋ āϝāĻĨā§āώā§āĻāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻ āĻĒā§āϤ⧠āĻāĻžāύ āĻāϰ āĻāύāĻā§āϰāĻŋāĻĒā§āĻ āϝāĻžāĻ, āϤāĻžāϰāĻĒāϰ āĻāĻĒāύāĻžāĻā§ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻāϏā§āϝā§āĻāĻžāϰ⧠āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻāĻŽāĻžāĻĻā§āϰ āύāĻŋāĻŦāύā§āϧ⧠āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāĻŦā§ âÂģ.
āĻāĻŽāĻŋ āύāĻŋāĻā§āĻ āĻāϰ āĻŦāĻŋāĻāϞā§āĻĒā§ āĻŦāϏāϤāĻŋ āϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āĻāĻŋ , āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāĻā§āĻā§ āϝ⧠āϏā§āĻā§āĻāĻŋāĻ LE āϝāĻĨā§āώā§āĻ āĻšāĻŦā§ā§ˇ āĻāĻŽāϰāĻž āĻāĻĻāĻžāĻšāϰāĻŖā§ āĻ-āĻŽā§āĻāϞ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻŋ, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻŋ āĻāĻŦāĻ āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āϝā§āĻā§āϤ āĻāϰāĻŋ ():
kubectl create -f cert-manager-cluster-issuer.yamlāĻāĻāύ āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻļāĻāϏāĻžāĻĒāϤā§āϰ āĻ āϰā§āĻĄāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻā§āϰāĻžāĻĢāύāĻžāϰ āĻāύā§āϝāĨ¤ āĻāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĄā§āĻŽā§āĻāύ āĻāĻŦāĻ āĻŦāĻžāĻāϰ⧠āĻĨā§āĻā§ āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āĻ ā§āϝāĻžāĻā§āϏā§āϏā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāĻŦā§āĨ¤ āĻāĻŽāĻžāϰ āĻāĻāĻāĻŋ āĻĄā§āĻŽā§āύ āĻāĻā§, āĻāĻŦāĻ āĻāĻŽāĻŋ āϤā§āϰāĻŋ āĻāύāĻā§āϰā§āϏ-āĻāύā§āĻā§āϰā§āϞāĻžāϰ āĻĒāϰāĻŋāώā§āĻŦāĻž āĻ āύā§āϏāĻžāϰ⧠āĻšā§āĻŽ āϰāĻžāĻāĻāĻžāϰ⧠āĻĒā§āϰā§āĻ 80 āĻāĻŦāĻ 443 āĻĢāϰāĻāϝāĻŧāĻžāϰā§āĻĄ āĻāϰ⧠āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰā§āĻāĻŋ:
kubectl -n ingress-nginx get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller NodePort 10.2.206.61 <none> 80:31303/TCP,443:30498/TCP 23dāĻāĻ āĻā§āώā§āϤā§āϰ⧠āĻĒā§āϰā§āĻ 80 31303 āĻ āĻ āύā§āĻŦāĻžāĻĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻĒā§āϰā§āĻ 443 āĻĨā§āĻā§ 30498āĨ¤ (āĻŦāύā§āĻĻāϰāĻā§āϞāĻŋ āĻāϞā§āĻŽā§āϞā§āĻāĻžāĻŦā§ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧ, āϤāĻžāĻ āĻāĻĒāύāĻžāϰ āĻāϞāĻžāĻĻāĻž āĻšāĻŦā§āĨ¤)
āĻāĻāĻžāύ⧠āĻāĻāĻāĻŋ āĻļāĻāϏāĻžāĻĒāϤā§āϰā§āϰ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ ():
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
name: grafana
namespace: monitoring
spec:
dnsNames:
- grafana.home.pi
secretName: grafana-tls
issuerRef:
kind: ClusterIssuer
name: letsencrypt-stagingāĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āĻāĻāĻŋ āϝā§āĻā§āϤ āĻāϰā§āύ:
kubectl create -f cert-manager-grafana-certificate.yamlāĻāϰ āĻĒāϰā§, āĻāύāĻā§āϰā§āϏ āϰāĻŋāϏā§āϰā§āϏ āĻāĻĒāϏā§āĻĨāĻŋāϤ āĻšāĻŦā§, āϝāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāϏā§āύ āĻāύāĻā§āϰāĻŋāĻĒā§āĻ āϝāĻžāĻāĻžāĻ āĻāϰāĻŦā§:
root@pi-control:~# kubectl -n monitoring get ing
NAME CLASS HOSTS ADDRESS PORTS AGE
cm-acme-http-solver-rkf8l <none> grafana.home.pi 192.168.88.31 80 72s
grafana <none> grafana.home.pi 192.168.88.31 80 6d17h
prometheus-server <none> prometheus.home.pi 192.168.88.31 80 8d āϝāĻžāĻāĻžāĻāĻāϰāĻŖ āĻĒāĻžāϏ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻŽāϰāĻž āϏā§āĻ āϏāĻāϏā§āĻĨāĻžāύāĻāĻŋ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦ certificate āĻĒā§āϰāϏā§āϤā§āϤ, āĻāĻŦāĻ āĻāĻĒāϰā§āϰ āĻā§āĻĒāύ⧠grafana-tls - āϏāĻžāϰā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻāĻŦāĻ āĻā§āĨ¤ āĻāĻĒāύāĻŋ āĻ
āĻŦāĻŋāϞāĻŽā§āĻŦā§ āϝāĻžāĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻā§ āĻļāĻāϏāĻžāĻĒāϤā§āϰ āĻāĻžāϰāĻŋ āĻāϰā§āĻā§:
root@pi-control:~# kubectl -n monitoring get certificate
NAME READY SECRET AGE
grafana True grafana-tls 13m
root@pi-control:~# kubectl -n monitoring get secrets grafana-tls -ojsonpath="{.data['tls.crt']}" | base64 -d | openssl x509 -issuer -noout
issuer=CN = Fake LE Intermediate X1āĻā§āϰāĻžāĻĢāύāĻžāϝāĻŧ āĻĢāĻŋāϰ⧠āϝāĻžāĻāϝāĻŧāĻž āϝāĻžāĻāĨ¤ āĻā§āύāĻžāϰā§āĻ āĻāϰāĻž āĻļāĻāϏāĻžāĻĒāϤā§āϰ āĻ āύā§āϏāĻžāϰ⧠TLS-āĻāϰ āϏā§āĻāĻŋāĻāϏ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰ⧠āĻāĻŽāĻžāĻĻā§āϰ āϤāĻžāϰ āĻšā§āϞāĻŽ āϰāĻŋāϞāĻŋāĻāĻā§ āĻāĻŋāĻā§āĻāĻž āĻ āĻŋāĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
āĻāĻāĻŋ āĻāϰāϤā§, āĻāĻžāϰā§āĻāĻāĻŋ āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰā§āύ, āϏā§āĻĨāĻžāύā§āϝāĻŧ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋ āĻĨā§āĻā§ āĻāĻāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻāϰā§āύ āĻāĻŦāĻ āĻāĻĒāĻĄā§āĻ āĻāϰā§āύ:
helm pull --untar stable/grafana āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞ⧠āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻāϰāĻž āĻšāĻā§āĻā§ grafana/values.yaml TLS āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ:
tls:
- secretName: grafana-tls
hosts:
- grafana.home.pi āĻāĻāĻžāύ⧠āĻāĻĒāύāĻŋ āĻ
āĻŦāĻŋāϞāĻŽā§āĻŦā§ āĻāύāϏā§āĻāϞ āĻāϰāĻž Prometheus āĻšāĻŋāϏāĻžāĻŦā§ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ datasource:
datasources:
datasources.yaml:
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus-server:80
access: proxy
isDefault: trueāĻāĻāύ āĻāĻŽāϰāĻž āϏā§āĻĨāĻžāύā§āϝāĻŧ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋ āĻĨā§āĻā§ Grafana āĻāĻžāϰā§āĻ āĻāĻĒāĻĄā§āĻ āĻāϰāĻŋ:
helm upgrade grafana --namespace monitoring ./grafana --set ingress.enabled=true --set ingress.hosts={"grafana.home.pi"} āĻāĻŽāϰāĻž āĻāύāĻā§āϰā§āϏ āϝ⧠āĻā§āĻ grafana āĻĒā§āϰā§āĻ 443 āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ HTTPS āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻ
ā§āϝāĻžāĻā§āϏā§āϏ āĻāĻā§:
root@pi-control:~# kubectl -n monitoring get ing grafana
NAME CLASS HOSTS ADDRESS PORTS AGE
grafana <none> grafana.home.pi 192.168.88.31 80, 443 63m
root@pi-control:~# curl -kI https://grafana.home.pi
HTTP/2 302
server: nginx/1.19.1
date: Tue, 28 Jul 2020 19:01:31 GMT
content-type: text/html; charset=utf-8
cache-control: no-cache
expires: -1
location: /login
pragma: no-cache
set-cookie: redirect_to=%2F; Path=/; HttpOnly; SameSite=Lax
x-frame-options: deny
strict-transport-security: max-age=15724800; includeSubDomainsāĻāϰā§āĻŽā§ Grafana āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāϤā§, āĻāĻĒāύāĻŋ āĻĄāĻžāĻāύāϞā§āĻĄ āĻāĻŦāĻ āϝā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ . āĻāĻāĻŋ āĻĻā§āĻāϤ⧠āĻāĻāĻŋāϰ āĻŽāϤā§:

āĻāĻŽāĻŋ āύā§āĻĄ āϰāĻĒā§āϤāĻžāύāĻŋāĻāĻžāϰāĻā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄ āϝā§āĻ āĻāϰāĻžāϰ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻĻāĻŋāĻā§āĻāĻŋ: āĻāĻāĻŋ "āϰāĻžāϏā§āĻĒāĻŦā§āϰāĻŋ" (āϏāĻŋāĻĒāĻŋāĻāĻ āϞā§āĻĄ, āĻŽā§āĻŽāϰāĻŋ, āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ, āĻĄāĻŋāϏā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϤā§āϝāĻžāĻĻāĻŋ) āĻāϰ āϏāĻžāĻĨā§ āĻā§ āĻāĻāĻā§ āϤāĻž āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤāĻāĻžāĻŦā§ āĻĻā§āĻāĻžāĻŦā§āĨ¤
āĻāϰ āĻĒāϰā§, āĻāĻŽāĻŋ āĻŽāύ⧠āĻāϰāĻŋ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻā§āϰāĻšāĻŖ āĻāĻŦāĻ āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ āĻĒā§āϰāϏā§āϤā§āϤ!
āϏāĻŽāĻžāĻŦā§āĻļ āϏāĻŽā§āĻĒāϰā§āĻā§ āύā§āĻ
āĻāĻāϰāĻāĻŽ āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰā§āϰ āĻāύā§āϝ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āϤā§āϰāĻŋāϰ āĻāύā§āϝ āĻāĻŽāĻĒāĻā§āώ⧠āĻĻā§āĻāĻŋ āĻŦāĻŋāĻāϞā§āĻĒ āϰāϝāĻŧā§āĻā§āĨ¤ āĻĒā§āϰāĻĨāĻŽāϤ, āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ ARM āĻĄāĻŋāĻāĻžāĻāϏ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āϝāĻžāĻāĻšā§āĻ, āĻĻā§āĻāĻŋ āϰāĻžāϏā§āĻĒāĻŦā§āϰāĻŋ āĻĒāĻŋāϏā§āϰ āĻŦāϰā§āϤāĻŽāĻžāύ āĻĒā§āύāϰā§āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻŽāĻŋ āĻŦā§āĻāϤ⧠āĻĒā§āϰā§āĻāĻŋāϞāĻžāĻŽ āϝ⧠āϤāĻžāϰāĻž āϏāĻŽāĻžāĻŦā§āĻļā§āĻ āĻāĻŋāĻā§ āĻĨāĻžāĻāĻŦā§ āύāĻžāĨ¤ āĻ āϤāĻāĻŦ, āĻāĻŽāĻŋ āύāĻŋāĻā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āύāϤā§āύ āϰāĻžāϏā§āĻĒāĻŦā§āϰāĻŋ āĻĒāĻžāĻ 4 āĻ āϰā§āĻĄāĻžāϰ āĻāϰā§āĻāĻŋ (āĻāĻāĻŋ āĻāϰāĻ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻāĻŦāĻ āĻāϤ⧠4 āĻāĻŋāĻŦāĻŋ āĻŽā§āĻŽāϰāĻŋ āϰāϝāĻŧā§āĻā§) - āĻāĻŽāĻŋ āĻāĻāĻŋāϤ⧠āĻāĻāĻŋ āĻāĻāϤā§āϰāĻŋāϤ āĻāϰāĻžāϰ āĻĒāϰāĻŋāĻāϞā§āĻĒāύāĻž āĻāϰāĻāĻŋāĨ¤
āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻŦāĻŋāĻāϞā§āĻĒāĻāĻŋ āĻāϰāĻ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻŽā§āĻļāĻŋāύ⧠āĻāĻāĻāĻŋ āĻŽāĻžāϞā§āĻāĻŋāĻāϰā§āĻ āĻĄāĻāĻžāϰ āĻāĻŽā§āĻ āϤā§āϰāĻŋ āĻāϰāĻžāĨ¤ āĻāĻ āĻāύā§āϝ āĻāĻā§ . āϝāĻĻāĻŋ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋ āĻāĻāĻāĻŋ āϏāĻāĻāϞāĻŋāϤ āĻāĻžāώāĻžāϝāĻŧ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠ARM-āĻāϰ āĻāύā§āϝ āĻā§āϰāϏ-āϏāĻāĻāϞāύ āĻĒā§āϰāϝāĻŧā§āĻāύāĨ¤ āĻāĻŽāĻŋ āĻāĻ āĻĒāĻĨā§āϰ āĻāύā§āϝ āϏāĻŽāϏā§āϤ āϏā§āĻāĻŋāĻāϏ āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻŦ āύāĻž, āĻāĻžāϰāĻŖ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āύāĻŋāĻŦāύā§āϧ⧠āύā§āϤā§āϤā§āĻŦ āĻĻā§āĻŦā§āĨ¤ āĻāĻ āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰā§, āĻāĻĒāύāĻŋ "āϏāϰā§āĻŦāĻāύā§āύ" āĻāĻŋāϤā§āϰāĻā§āϞāĻŋ āĻ āϰā§āĻāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ: āĻāĻāĻāĻŋ ARM āĻŽā§āĻļāĻŋāύ⧠āĻāϞāĻŽāĻžāύ āĻĄāĻāĻžāϰ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰā§āϰ āϏāĻžāĻĨā§ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻāĻŋāϤā§āϰāĻāĻŋ āϞā§āĻĄ āĻāϰāĻŦā§āĨ¤
āĻāĻĒāϏāĻāĻšāĻžāϰ
āϏāĻŽā§āĻĒāĻžāĻĻāĻŋāϤ āĻĒāϰā§āĻā§āώāĻžāĻāĻŋ āĻāĻŽāĻžāϰ āϏāĻŽāϏā§āϤ āĻĒā§āϰāϤā§āϝāĻžāĻļāĻžāĻā§ āĻ āϤāĻŋāĻā§āϰāĻŽ āĻāϰā§āĻā§: [āĻ āύā§āϤāϤ] āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻŦā§āϏ āϏāĻš "āĻā§āϝāĻžāύāĻŋāϞāĻž" āĻā§āĻŦāĻžāϰāύā§āĻāϏ āĻāĻāϰāĻāĻŽ-āĻ āĻāĻžāϞ āĻŦā§āϧ āĻāϰ⧠āĻāĻŦāĻ āĻāĻāĻŋāϰ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύā§āϰ āϏāĻŽāϝāĻŧ āĻā§āĻŦāϞ āĻāϝāĻŧā§āĻāĻāĻŋ āϏā§āĻā§āώā§āĻŽāϤāĻž āĻĻā§āĻāĻž āĻĻā§āϝāĻŧāĨ¤
āϰāĻžāϏā§āĻĒāĻŦā§āϰāĻŋ āĻĒāĻžāĻ 3B+ āύāĻŋāĻā§āϰāĻžāĻ CPU-āϤ⧠āϞā§āĻĄ āϰāĻžāĻā§, āĻāĻŋāύā§āϤ⧠āϤāĻžāĻĻā§āϰ SD āĻāĻžāϰā§āĻĄāĻā§āϞāĻŋ āĻāĻāĻāĻŋ āϏā§āĻĒāώā§āĻ āĻŦāĻžāϧāĻžāĨ¤ āϏāĻšāĻāϰā§āĻŽā§āϰāĻž āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻĻāĻŋāϝāĻŧā§āĻā§āύ āϝ⧠āĻāĻŋāĻā§ āϏāĻāϏā§āĻāϰāĻŖā§ USB āĻĨā§āĻā§ āĻŦā§āĻ āĻāϰāĻž āϏāĻŽā§āĻāĻŦ, āϝā§āĻāĻžāύ⧠āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ SSD āϏāĻāϝā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ: āϤāĻžāĻšāϞ⧠āϏāĻŽā§āĻāĻŦāϤ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋ āĻāϰāĻ āĻāĻžāϞ āĻšāϝāĻŧā§ āϝāĻžāĻŦā§āĨ¤
Grafana āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻāĻžāύ⧠CPU āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āϰāϝāĻŧā§āĻā§:

āĻĒāϰā§āĻā§āώāĻž-āύāĻŋāϰā§āĻā§āώāĻž āĻāĻŦāĻ "āĻā§āώā§āĻāĻž āĻāϰāĻžāϰ" āĻāύā§āϝ, āĻāĻŽāĻžāϰ āĻŽāϤā§, "āϰāĻžāϏā§āĻĒāĻŦā§āϰāĻŋ" āĻāϰ āĻā§āĻŦāĻžāϰāύā§āĻāϏ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻāĻāĻ āĻŽāĻŋāύāĻŋāĻā§āĻŦā§āϰ āĻā§āϝāĻŧā§ āĻ
āύā§āĻ āĻāĻžāϞ⧠āĻ
āĻĒāĻžāϰā§āĻļāύā§āϰ āĻ
āύā§āĻā§āϤāĻŋ āĻĒā§āϰāĻāĻžāĻļ āĻāϰā§, āĻāĻžāϰāĻŖ āϏāĻŽāϏā§āϤ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻāĻĒāĻžāĻĻāĻžāύ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻāĻā§ āĻāĻŦāĻ "āĻĒā§āϰāĻžāĻĒā§āϤāĻŦāϝāĻŧāϏā§āĻāĻĻā§āϰ āĻŽāϤā§" āĻāĻžāĻ āĻāϰā§āĨ¤
āĻāĻŦāĻŋāώā§āϝāϤā§, āϰāĻžāϏā§āĻĒāĻŦā§āϰāĻŋ āĻĒāĻžāĻ-āϤ⧠āϏāĻŽā§āĻĒā§āϰā§āĻŖāϰā§āĻĒā§ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāĻŋāϤ āϏāĻŽāĻā§āϰ CI/CD āĻāĻā§āϰāĻā§ āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āϝā§āĻ āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āϧāĻžāϰāĻŖāĻž āϰāϝāĻŧā§āĻā§āĨ¤ AWS Gravitons-āĻ K8 āϏā§āĻ āĻāĻĒ āĻāϰāĻžāϰ āĻā§āώā§āϤā§āϰ⧠āĻā§āĻ āϤāĻžāĻĻā§āϰ āĻ āĻāĻŋāĻā§āĻāϤāĻž āĻļā§āϝāĻŧāĻžāϰ āĻāϰāϞā§āĻ āĻāĻŽāĻŋ āĻā§āĻļāĻŋ āĻšāĻŦāĨ¤
PS āĻšā§āϝāĻžāĻ, "āĻā§āĻĒāĻžāĻĻāύ" āĻāĻŽāĻžāϰ āϧāĻžāϰāĻŖāĻžāϰ āĻā§āϝāĻŧā§ āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻšāϤ⧠āĻĒāĻžāϰā§:

PPS
āĻāĻŽāĻžāĻĻā§āϰ āĻŦā§āϞāĻā§āĻ āĻĒāĻĄāĻŧā§āύ:
- ÂĢÂģ.
āĻāϤā§āϏ: www.habr.com
