etcd Kubernetes เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจจเจพเจฒ เจธเจพเจกเจพ เจ…เจจเฉเจญเจต เจธเจฟเฉฑเจงเจพ (K8s API เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚)

เจตเฉฑเจงเจฆเฉ‡ เจนเฉ‹เจ, เจ•เจฒเจพเจ‡เฉฐเจŸ เจธเจพเจจเฉ‚เฉฐ เจ•เจฒเฉฑเจธเจŸเจฐ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃ เจฒเจˆ Kubernetes เจ•เจฒเฉฑเจธเจŸเจฐ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจ เจฒเจˆ เจ•เจนเจฟ เจฐเจนเฉ‡ เจนเจจ: เจคเจพเจ‚ เจœเฉ‹ เจ‰เจน เจธเจฟเฉฑเจงเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉเจ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจœเจพเจ‚ เจธเฉ‡เจตเจพ เจจเจพเจฒ เจœเฉเฉœ เจธเจ•เจฃ, เจ•เจฒเฉฑเจธเจŸเจฐ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเจพเจฒ เจ‡เฉฑเจ• เจธเจฅเจพเจจเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฒเจˆ...

etcd Kubernetes เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจจเจพเจฒ เจธเจพเจกเจพ เจ…เจจเฉเจญเจต เจธเจฟเฉฑเจงเจพ (K8s API เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚)

เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจกเฉ€ เจธเจฅเจพเจจเจ• เจฎเจธเจผเฉ€เจจ เจคเฉ‹เจ‚ เจ•เจฟเจธเฉ‡ เจธเฉ‡เจตเจพ เจจเจพเจฒ เจœเฉเฉœเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ memcached.staging.svc.cluster.local. เจ…เจธเฉ€เจ‚ เจ•เจฒเฉฑเจธเจŸเจฐ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ‡เฉฑเจ• VPN เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เจน เจธเจฎเจฐเฉฑเจฅเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจœเจฟเจธ เจจเจพเจฒ เจ•เจฒเจพเจ‡เฉฐเจŸ เจœเฉเฉœเจฆเจพ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ•เจฒเจพเจ‡เฉฐเจŸ เจจเฉ‚เฉฐ เจชเฉŒเจก, เจธเฉ‡เจตเจพเจตเจพเจ‚ เจ…เจคเฉ‡ เจชเฉเจธเจผ เจ•เจฒเฉฑเจธเจŸเจฐ DNS เจฆเฉ‡ เจธเจฌเจจเฉˆเฉฑเจŸ เจฆเจพ เจเจฒเจพเจจ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• เจ—เจพเจนเจ• เจธเฉ‡เจตเจพ เจจเจพเจฒ เจœเฉเฉœเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ memcached.staging.svc.cluster.local, เจฌเฉ‡เจจเจคเฉ€ เจ•เจฒเฉฑเจธเจŸเจฐ DNS เจจเฉ‚เฉฐ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจœเจตเจพเจฌ เจตเจฟเฉฑเจš เจ•เจฒเฉฑเจธเจŸเจฐ เจธเฉ‡เจตเจพ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจœเจพเจ‚ เจชเฉŒเจก เจเจกเจฐเฉˆเฉฑเจธ เจคเฉ‹เจ‚ เจ‡เจธ เจธเฉ‡เจตเจพ เจฆเจพ เจชเจคเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ kubeadm เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ K8s เจ•เจฒเฉฑเจธเจŸเจฐเจพเจ‚ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเฉฑเจฅเฉ‡ เจกเจฟเจซเจพเจฒเจŸ เจธเฉ‡เจตเจพ เจธเจฌเจจเฉˆเฉฑเจŸ เจนเฉˆ 192.168.0.0/16, เจ…เจคเฉ‡ เจชเฉŒเจก เจฆเจพ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจนเฉˆ 10.244.0.0/16. เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจญ เจ•เฉเจ เจตเจงเฉ€เจ† เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจ‡เฉฑเจฅเฉ‡ เจ•เฉเจ เจจเฉเจ•เจคเฉ‡ เจนเจจ:

  • เจธเจฌเจจเฉˆเฉฑเจŸ 192.168.*.* เจ…เจ•เจธเจฐ เจ•เจฒเจพเจ‡เฉฐเจŸ เจ†เจซเจฟเจธ เจจเฉˆเจŸเจตเจฐเจ• เจตเจฟเฉฑเจš เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจตเฉ€ เจ…เจ•เจธเจฐ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจนเฉ‹เจฎ เจจเฉˆเจŸเจตเจฐเจ• เจตเจฟเฉฑเจšเฅค เจ…เจคเฉ‡ เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ เจตเจฟเจตเจพเจฆ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚: เจ˜เจฐเฉ‡เจฒเฉ‚ เจฐเจพเจŠเจŸเจฐ เจ‡เจธ เจธเจฌเจจเฉˆเฉฑเจŸ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ VPN เจ‡เจนเจจเจพเจ‚ เจธเจฌเจจเฉˆเฉฑเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฒเฉฑเจธเจŸเจฐ เจคเฉ‹เจ‚ เจ•เจฒเจพเจ‡เฉฐเจŸ เจคเฉฑเจ• เจงเฉฑเจ•เจฆเจพ เจนเฉˆเฅค
  • เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ•เจˆ เจ•เจฒเฉฑเจธเจŸเจฐ เจนเจจ (เจ‰เจคเจชเจพเจฆเจจ, เจชเฉœเจพเจ… เจ…เจคเฉ‡/เจœเจพเจ‚ เจ•เจˆ เจฆเฉ‡เจต เจ•เจฒเฉฑเจธเจŸเจฐ)เฅค เจซเจฟเจฐ, เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจ‰เจนเจจเจพเจ‚ เจธเจพเจฐเจฟเจ†เจ‚ เจ•เฉ‹เจฒ เจชเฉŒเจก เจ…เจคเฉ‡ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ•เฉ‹ เจœเจฟเจนเฉ‡ เจธเจฌเจจเฉˆเฉฑเจŸ เจนเฉ‹เจฃเจ—เฉ‡, เจœเฉ‹ เจ•เจˆ เจ•เจฒเฉฑเจธเจŸเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ•เฉ‹ เจธเจฎเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจฌเจนเฉเจค เจฎเฉเจธเจผเจ•เจฒเจพเจ‚ เจชเฉˆเจฆเจพ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค

เจ…เจธเฉ€เจ‚ เจฌเจนเฉเจค เจธเจฎเจพเจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ‡เฉฑเจ•เฉ‹ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจ…เจคเฉ‡ เจชเฉŒเจกเจพเจ‚ เจฒเจˆ เจตเฉฑเจ–-เจตเฉฑเจ– เจธเจฌเจจเฉˆเฉฑเจŸเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเจพ เจ…เจญเจฟเจ†เจธ เจ…เจชเจฃเจพเจ‡เจ† เจนเฉˆ - เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจคเจพเจ‚ เจœเฉ‹ เจธเจพเจฐเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐเจพเจ‚ เจฆเฉ‡ เจตเฉฑเจ–เฉ‹-เจตเฉฑเจ–เจฐเฉ‡ เจจเฉˆเจŸเจตเจฐเจ• เจนเฉ‹เจฃเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ“เจชเจฐเฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉˆเจ‚ เจธเจ•เฉเจฐเฉˆเจš เจคเฉ‹เจ‚ เจฐเฉ‹เจฒ เจ“เจตเจฐ เจ•เจฐเจจเจพ เจจเจนเฉ€เจ‚ เจšเจพเจนเจพเจ‚เจ—เจพ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚, เจธเจŸเฉ‡เจŸเจซเฉเฉฑเจฒ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจ†เจฆเจฟ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจเฅค

เจ…เจคเฉ‡ เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจชเฉเฉฑเจ›เจฟเจ†: เจฎเฉŒเจœเฉ‚เจฆเจพ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจธเจฌเจจเฉˆเฉฑเจŸ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฆเจฒเจฃเจพ เจนเฉˆ?

เจซเฉˆเจธเจฒเจฟเจ†เจ‚ เจฆเฉ€ เจ–เฉ‹เจœ

เจธเจญ เจคเฉ‹เจ‚ เจ†เจฎ เจ…เจญเจฟเจ†เจธ เจฎเฉเฉœ เจฌเจฃเจพเจ‰เจฃเจพ เจนเฉˆ เจธเจพเจฐเฉ‡ ClusterIP เจ•เจฟเจธเจฎ เจจเจพเจฒ เจธเฉ‡เจตเจพเจตเจพเจ‚เฅค เจ‡เฉฑเจ• เจตเจฟเจ•เจฒเจช เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡, เจธเจฒเจพเจน เจฆเฉ‡ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจน:

เจจเจฟเจฎเจจเจฒเจฟเจ–เจค เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจฎเฉฑเจธเจฟเจ† เจนเฉˆ: เจนเจฐ เจšเฉ€เจœเจผ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, /etc/resolv.conf เจตเจฟเฉฑเจš เจ‡เฉฑเจ• DNS เจจเฉ‡เจฎเจธเจฐเจตเจฐ เจตเจœเฉ‹เจ‚ เจชเฉŒเจก เจชเฉเจฐเจพเจฃเฉ‡ IP เจฆเฉ‡ เจจเจพเจฒ เจ†เจ‰เจ‚เจฆเฉ‡ เจนเจจเฅค
เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฎเฉˆเจจเฉ‚เฉฐ เจ…เจœเฉ‡ เจตเฉ€ เจนเฉฑเจฒ เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเจฟเจ†, เจฎเฉˆเจจเฉ‚เฉฐ kubeadm เจฐเฉ€เจธเฉˆเจŸ เจจเจพเจฒ เจชเฉ‚เจฐเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‚เฉฐ เจฐเฉ€เจธเฉˆเจŸ เจ•เจฐเจจเจพ เจชเจฟเจ† เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจเจพ เจชเจฟเจ†เฅค

เจชเจฐ เจ‡เจน เจนเจฐ เจ•เจฟเจธเฉ‡ เจฒเจˆ เจขเฉเจ•เจตเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเฉˆ... เจธเจพเจกเฉ‡ เจ•เฉ‡เจธ เจฒเจˆ เจ‡เฉฑเจฅเฉ‡ เจตเจงเฉ‡เจฐเฉ‡ เจตเจฟเจธเจฅเจพเจฐเจชเฉ‚เจฐเจตเจ• เจœเจพเจฃ-เจชเจ›เจพเจฃ เจนเจจ:

  • เจซเจฒเฉˆเจจเจฒ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ;
  • เจฌเฉฑเจฆเจฒเจพเจ‚ เจ…เจคเฉ‡ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ 'เจคเฉ‡ เจฆเฉ‹เจตเฉ‡เจ‚ เจ•เจฒเฉฑเจธเจŸเจฐ เจนเจจ;
  • เจฎเฉˆเจ‚ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจธเจพเจฐเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉเฉœ-เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจšเจฃเจพ เจšเจพเจนเจพเจ‚เจ—เจพ;
  • เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจธเจญ เจ•เฉเจ เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ;
  • Kubernetes เจธเฉฐเจธเจ•เจฐเจฃ 1.16.6 เจนเฉˆ (เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ…เจ—เจฒเฉ‡ เจ•เจฆเจฎ เจฆเฉ‚เจœเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจฒเจˆ เจธเจฎเจพเจจ เจนเฉ‹เจฃเจ—เฉ‡);
  • เจฎเฉเฉฑเจ– เจ•เฉฐเจฎ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃเจพ เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจ• เจธเฉ‡เจตเจพ เจธเจฌเจจเฉˆเฉฑเจŸ เจจเจพเจฒ kubeadm เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เฉฑเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจคเฉˆเจจเจพเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ 192.168.0.0/16, เจจเจพเจฒ เจฌเจฆเจฒเฉ‹ 172.24.0.0/16.

เจ…เจคเฉ‡ เจ…เจœเจฟเจนเจพ เจนเฉ€ เจนเฉ‹เจ‡เจ† เจ•เจฟ เจ…เจธเฉ€เจ‚ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจ‡เจน เจฆเฉ‡เจ–เจฃ เจตเจฟเฉฑเจš เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจธเฉ€ เจ•เจฟ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ†เจฆเจฟ เจตเจฟเฉฑเจš เจ•เฉ€ เจ…เจคเฉ‡ เจ•เจฟเจตเฉ‡เจ‚ เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ‡เจธ เจจเจพเจฒ เจ•เฉ€ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ... เจ‡เจธ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจธเฉ‹เจšเจฟเจ†: "เจ•เจฟเจ‰เจ‚ เจจเจพ เจธเจฟเจฐเจซ etcd เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ…เจชเจกเฉ‡เจŸ เจ•เจฐเฉ‹, เจชเฉเจฐเจพเจฃเฉ‡ IP เจเจกเจฐเฉˆเฉฑเจธ (เจธเจฌเจจเฉˆเฉฑเจŸ) เจจเฉ‚เฉฐ เจจเจตเฉ‡เจ‚ เจจเจพเจฒ เจฌเจฆเจฒเฉ‹? "

etcd เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจธเจพเจจเฉ‚เฉฐ เจ…เจœเจฟเจนเฉ€ เจ•เฉ‹เจˆ เจšเฉ€เจœเจผ เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเฉ€ เจœเจฟเจธ เจจเจพเจฒ เจธเจฎเฉฑเจธเจฟเจ† เจฆเจพ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจนเฉฑเจฒ เจนเฉ‹ เจ—เจฟเจ† เจนเฉ‹เจตเฉ‡เฅค (เจตเฉˆเจธเฉ‡, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ etcd เจตเจฟเฉฑเจš เจธเจฟเฉฑเจงเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจกเฉ‡เจŸเจพ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ•เจฟเจธเฉ‡ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจฒเจฟเฉฐเจ•เจพเจ‚ เจฆเฉ€ เจธเจผเจฒเจพเจ˜เจพ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค) เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ‡เฉฑเจ• เจตเจงเฉ€เจ† เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจฌเจฟเฉฐเจฆเฉ‚ เจนเฉˆ เจ†เจฆเจฟ เจธเจนเจพเจ‡เจ• OpenShift เจคเฉ‹เจ‚ (เจ‡เจธ เจฆเฉ‡ เจฒเฉ‡เจ–เจ•เจพเจ‚ เจฆเจพ เจงเฉฐเจจเจตเจพเจฆ!).

เจ‡เจน เจธเจนเฉ‚เจฒเจค เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ etcd เจจเจพเจฒ เจœเฉเฉœ เจธเจ•เจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‰เฉฑเจฅเฉ‹เจ‚ เจกเจพเจŸเจพ เจชเฉœเฉเจน เจธเจ•เจฆเฉ€ เจนเฉˆ ls, get, dump.

เจ†เจฆเจฟ เจธเจนเจพเจ‡เจ• เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹

เจ…เจ—เจฒเจพ เจตเจฟเจšเจพเจฐ เจคเจฐเจ•เจชเฉ‚เจฐเจจ เจนเฉˆ: "เจ•เฉ€ เจคเฉเจนเจพเจจเฉ‚เฉฐ etcd เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฒเจฟเจ–เจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจœเฉ‹เฉœ เจ•เฉ‡ เจ‡เจธ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจคเฉ‹เจ‚ เจฐเฉ‹เจ• เจฐเจฟเจนเจพ เจนเฉˆ?"

เจ‡เจน เจฆเฉ‹ เจจเจตเฉ‡เจ‚ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ etcdhelper เจฆเจพ เจ‡เฉฑเจ• เจธเฉ‹เจงเจฟเจ† เจธเฉฐเจธเจ•เจฐเจฃ เจฌเจฃ เจ—เจฟเจ† changeServiceCIDR ะธ changePodCIDR. เจ‰เจธ 'เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ•เฉ‹เจก เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ‡เฉฑเจฅเฉ‡.

เจจเจตเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจ•เฉ€ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ? เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ changeServiceCIDR:

  • เจ‡เฉฑเจ• เจกเฉ€เจธเฉ€เจฐเฉ€เจ…เจฒเจพเจˆเจœเจผเจฐ เจฌเจฃเจพเจ“;
  • CIDR เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฒเจˆ เจ‡เฉฑเจ• เจฐเฉˆเจ—เฉ‚เจฒเจฐ เจธเจฎเฉ€เจ•เจฐเจจ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเฉ‹;
  • เจ…เจธเฉ€เจ‚ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš ClusterIP เจ•เจฟเจธเจฎ เจฆเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เจฆเฉ‡ เจนเจพเจ‚:
    • etcd เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจ—เฉ‹ เจ†เจฌเจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจกเฉ€เจ•เฉ‹เจก เจ•เจฐเฉ‹;
    • เจฐเฉˆเจ—เฉ‚เจฒเจฐ เจธเจฎเฉ€เจ•เจฐเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ…เจธเฉ€เจ‚ เจชเจคเฉ‡ เจฆเฉ‡ เจชเจนเจฟเจฒเฉ‡ เจฆเฉ‹ เจฌเจพเจˆเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฆเฉ‡ เจนเจพเจ‚;
    • เจธเฉ‡เจตเจพ เจจเฉ‚เฉฐ เจจเจตเฉ‡เจ‚ เจธเจฌเจจเฉˆเฉฑเจŸ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• IP เจชเจคเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเฉ‹;
    • เจ‡เฉฑเจ• เจธเฉ€เจฐเฉ€เจ…เจฒเจพเจˆเจœเจผเจฐ เจฌเจฃเจพเจ“, เจ—เฉ‹ เจ†เจฌเจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจชเฉเจฐเฉ‹เจŸเฉ‹เจฌเจซ เจตเจฟเฉฑเจš เจฌเจฆเจฒเฉ‹, etcd เจตเจฟเฉฑเจš เจจเจตเจพเจ‚ เจกเฉ‡เจŸเจพ เจฒเจฟเจ–เฉ‹เฅค

เจซเฉฐเจ•เจธเจผเจจ changePodCIDR เจ…เจธเจฒ เจตเจฟเฉฑเจš เจธเจฎเจพเจจ changeServiceCIDR - เจธเจฟเจฐเจซ เจธเฉ‡เจตเจพ เจจเจฟเจฐเจงเจพเจฐเจจ เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฌเจœเจพเจ, เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจจเฉ‹เจก เจ…เจคเฉ‡ เจคเจฌเจฆเฉ€เจฒเฉ€ เจฒเจˆ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ .spec.PodCIDR เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจธเจฌเจจเฉˆเฉฑเจŸ เจฒเจˆ.

เจชเฉเจฐเฉˆเจ•เจŸเจฟเจธ

เจธเฉ‡เจตเจพ CIDR เจฌเจฆเจฒเฉ‹

เจ•เฉฐเจฎ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจœเจจเจพ เจฌเจนเฉเจค เจธเจงเจพเจฐเจจ เจนเฉˆ, เจชเจฐ เจ‡เจธ เจตเจฟเฉฑเจš เจกเจพเจŠเจจเจŸเจพเจˆเจฎ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจ•เจฟ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจธเจพเจฐเฉ‡ เจชเฉŒเจก เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค เจฎเฉเฉฑเจ– เจ•เจฆเจฎเจพเจ‚ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ…เจธเฉ€เจ‚ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจตเฉ€ เจตเจฟเจšเจพเจฐ เจธเจพเจ‚เจเฉ‡ เจ•เจฐเจพเจ‚เจ—เฉ‡ เจ•เจฟ เจธเจฟเจงเจพเจ‚เจคเจ• เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจธ เจกเจพเจŠเจจเจŸเจพเจˆเจฎ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ˜เฉฑเจŸ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจคเจฟเจ†เจฐเฉ€ เจฆเฉ‡ เจ•เจฆเจฎ:

  • เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจชเฉˆเจš เจ•เฉ€เจคเฉ‡ เจ†เจฆเจฟ เจธเจนเจพเจ‡เจ• เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจเจพ;
  • เจฌเฉˆเจ•เจ…เฉฑเจช เจ†เจฆเจฟ เจ…เจคเฉ‡ /etc/kubernetes.

เจธเจฐเจตเจฟเจธ เจธเฉ€เจ†เจˆเจกเฉ€เจ†เจฐ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฒเจˆ เจธเฉฐเจ–เฉ‡เจช เจ•เจพเจฐเจœ เจฏเฉ‹เจœเจจเจพ:

  • apiserver เจ…เจคเฉ‡ เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ-เจชเฉเจฐเจฌเฉฐเจงเจ• เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ;
  • เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจฎเฉเฉœ เจœเจพเจฐเฉ€ เจ•เจฐเจจเจพ;
  • ClusterIP เจธเฉ‡เจตเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ etcd เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฃเจพ;
  • เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจธเจพเจฐเฉ€เจ†เจ‚ เจชเฉŒเจกเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเฉ‹เฅค

เจนเฉ‡เจ เจพเจ‚ เจตเฉ‡เจฐเจตเฉ‡ เจตเจฟเฉฑเจš เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจฆเจพ เจ‡เฉฑเจ• เจชเฉ‚เจฐเจพ เจ•เฉเจฐเจฎ เจนเฉˆ.

1. เจกเจพเจŸเจพ เจกเฉฐเจช เจฒเจˆ etcd-client เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ‹:

apt install etcd-client

2. เจ†เจฆเจฟ เจธเจนเจพเจ‡เจ• เจฌเจฃเจพเจ“:

  • เจ—เฉ‹เจฒเฉฐเจ— เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹:
    GOPATH=/root/golang
    mkdir -p $GOPATH/local
    curl -sSL https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz | tar -xzvC $GOPATH/local
    echo "export GOPATH="$GOPATH"" >> ~/.bashrc
    echo 'export GOROOT="$GOPATH/local/go"' >> ~/.bashrc
    echo 'export PATH="$PATH:$GOPATH/local/go/bin"' >> ~/.bashrc
  • เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจฒเจˆ เจฌเจšเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ etcdhelper.go, เจจเจฟเจฐเจญเจฐเจคเจพ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเฉ‹, เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเฉ‹:
    wget https://raw.githubusercontent.com/flant/examples/master/2020/04-etcdhelper/etcdhelper.go
    go get go.etcd.io/etcd/clientv3 k8s.io/kubectl/pkg/scheme k8s.io/apimachinery/pkg/runtime
    go build -o etcdhelper etcdhelper.go

3. เจฌเฉˆเจ•เจ…เฉฑเจช เจ†เจฆเจฟ เจฌเจฃเจพเจ“:

backup_dir=/root/backup
mkdir ${backup_dir}
cp -rL /etc/kubernetes ${backup_dir}
ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt --key=/etc/kubernetes/pki/etcd/server.key --cert=/etc/kubernetes/pki/etcd/server.crt --endpoints https://192.168.199.100:2379 snapshot save ${backup_dir}/etcd.snapshot

4. เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เฉฐเจŸเจฐเฉ‹เจฒ เจชเจฒเฉ‡เจจ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจตเจฟเฉฑเจš เจธเจฐเจตเจฟเจธ เจธเจฌเจจเฉˆเฉฑเจŸ เจฌเจฆเจฒเฉ‹เฅค เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš /etc/kubernetes/manifests/kube-apiserver.yaml ะธ /etc/kubernetes/manifests/kube-controller-manager.yaml เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจฌเจฆเจฒเฉ‹ --service-cluster-ip-range เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจธเจฌเจจเฉˆเฉฑเจŸ เจฒเจˆ: 172.24.0.0/16 เจฆเฉ€ เจฌเจœเจพเจ 192.168.0.0/16.

5. เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ…เจธเฉ€เจ‚ เจธเฉ‡เจตเจพ เจธเจฌเจจเฉˆเฉฑเจŸ เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจฐเจนเฉ‡ เจนเจพเจ‚ เจœเจฟเจธ เจตเจฟเฉฑเจš kubeadm apiserver (เจธเจฎเฉ‡เจค) เจฒเจˆ เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจœเจพเจฐเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจœเจพเจฐเฉ€ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

  1. เจ†เจ“ เจฆเฉ‡เจ–เฉ€เจ เจ•เจฟ เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจ•เจฟเจธ เจกเฉ‹เจฎเฉ‡เจจ เจ…เจคเฉ‡ IP เจชเจคเจฟเจ†เจ‚ เจฒเจˆ เจœเจพเจฐเฉ€ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ:
    openssl x509 -noout -ext subjectAltName </etc/kubernetes/pki/apiserver.crt
    X509v3 Subject Alternative Name:
        DNS:dev-1-master, DNS:kubernetes, DNS:kubernetes.default, DNS:kubernetes.default.svc, DNS:kubernetes.default.svc.cluster.local, DNS:apiserver, IP Address:192.168.0.1, IP Address:10.0.0.163, IP Address:192.168.199.100
  2. เจ†เจ“ kubeadm เจฒเจˆ เจ‡เฉฑเจ• เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจธเฉฐเจฐเจšเจจเจพ เจคเจฟเจ†เจฐ เจ•เจฐเฉ€เจ:
    cat kubeadm-config.yaml
    apiVersion: kubeadm.k8s.io/v1beta1
    kind: ClusterConfiguration
    networking:
      podSubnet: "10.244.0.0/16"
      serviceSubnet: "172.24.0.0/16"
    apiServer:
      certSANs:
      - "192.168.199.100" # IP-ะฐะดั€ะตั ะผะฐัั‚ะตั€ ัƒะทะปะฐ
  3. เจšเจฒเฉ‹ เจชเฉเจฐเจพเจฃเฉ€ เจธเฉ€เจ†เจฐเจŸเฉ€ เจ…เจคเฉ‡ เจ•เฉเฉฐเจœเฉ€ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพ เจฆเฉ‡เจˆเจ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจจเจตเจพเจ‚ เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจœเจพเจฐเฉ€ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ:
    rm /etc/kubernetes/pki/apiserver.{key,crt}
  4. เจšเจฒเฉ‹ API เจธเจฐเจตเจฐ เจฒเจˆ เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจฆเฉเจฌเจพเจฐเจพ เจœเจพเจฐเฉ€ เจ•เจฐเฉ€เจ:
    kubeadm init phase certs apiserver --config=kubeadm-config.yaml
  5. เจ†เจ“ เจœเจพเจ‚เจš เจ•เจฐเฉ€เจ เจ•เจฟ เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจจเจตเฉ‡เจ‚ เจธเจฌเจจเฉˆเฉฑเจŸ เจฒเจˆ เจœเจพเจฐเฉ€ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€:
    openssl x509 -noout -ext subjectAltName </etc/kubernetes/pki/apiserver.crt
    X509v3 Subject Alternative Name:
        DNS:kube-2-master, DNS:kubernetes, DNS:kubernetes.default, DNS:kubernetes.default.svc, DNS:kubernetes.default.svc.cluster.local, IP Address:172.24.0.1, IP Address:10.0.0.163, IP Address:192.168.199.100
  6. API เจธเจฐเจตเจฐ เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ เจฎเฉเฉœ-เจœเจพเจฐเฉ€ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ‡เจธเจฆเฉ‡ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเฉ‹:
    docker ps | grep k8s_kube-apiserver | awk '{print $1}' | xargs docker restart
  7. เจฒเจˆ เจธเฉฐเจฐเจšเจจเจพ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจคเจฟเจ†เจฐ เจ•เจฐเฉ€เจ admin.conf:
    kubeadm alpha certs renew admin.conf
  8. เจ†เจ‰ etcd เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเฉ€เจ:
    ./etcdhelper -cacert /etc/kubernetes/pki/etcd/ca.crt -cert /etc/kubernetes/pki/etcd/server.crt -key /etc/kubernetes/pki/etcd/server.key -endpoint https://127.0.0.1:2379 change-service-cidr 172.24.0.0/16 

    เจธเจพเจตเจงเจพเจจ เจ‡เจธ เจธเจฎเฉ‡เจ‚, เจกเฉ‹เจฎเฉ‡เจจ เจฐเฉˆเจœเจผเฉ‹เจฒเจฟเจŠเจธเจผเจจ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจฌเฉฐเจฆ เจ•เจฐ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฎเฉŒเจœเฉ‚เจฆเจพ เจชเฉŒเจก เจตเจฟเฉฑเจš /etc/resolv.conf เจชเฉเจฐเจพเจฃเจพ CoreDNS เจชเจคเจพ (kube-dns) เจฐเจœเจฟเจธเจŸเจฐเจก เจนเฉˆ, เจ…เจคเฉ‡ kube-proxy iptables เจจเจฟเจฏเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจฃเฉ‡ เจธเจฌเจจเฉˆเฉฑเจŸ เจคเฉ‹เจ‚ เจจเจตเฉ‡เจ‚ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ เจฒเฉ‡เจ– เจตเจฟเจš เจกเจพเจŠเจจเจŸเจพเจˆเจฎ เจจเฉ‚เฉฐ เจ˜เฉฑเจŸ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจ•เจฐเจจ เจฆเฉ‡ เจธเฉฐเจญเจพเจตเฉ€ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฌเจพเจฐเฉ‡ เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค

  9. เจ†เจ‰ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš ConfigMap's เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเฉ€เจ kube-system:
    kubectl -n kube-system edit cm kubelet-config-1.16

    - เจ‡เฉฑเจฅเฉ‡ เจฌเจฆเจฒเฉ‹ clusterDNS kube-dns เจธเฉ‡เจตเจพ เจฆเฉ‡ เจจเจตเฉ‡เจ‚ IP เจชเจคเฉ‡ 'เจคเฉ‡: kubectl -n kube-system get svc kube-dns.

    kubectl -n kube-system edit cm kubeadm-config

    - เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจพเจ‚เจ—เฉ‡ data.ClusterConfiguration.networking.serviceSubnet เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจธเจฌเจจเฉˆเฉฑเจŸ เจฒเจˆ.

  10. เจ•เจฟเจ‰เจ‚เจ•เจฟ kube-dns เจเจกเจฐเฉˆเฉฑเจธ เจฌเจฆเจฒ เจ—เจฟเจ† เจนเฉˆ, เจธเจพเจฐเฉ‡ เจจเฉ‹เจกเจพเจ‚ 'เจคเฉ‡ kubelet เจธเฉฐเจฐเจšเจจเจพ เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจจเจพ เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉˆ:
    kubeadm upgrade node phase kubelet-config && systemctl restart kubelet
  11. เจœเฉ‹ เจ•เฉเจ เจฌเจšเจฟเจ† เจนเฉˆ เจ‰เจน เจนเฉˆ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจธเจพเจฐเฉ€เจ†เจ‚ เจชเฉŒเจกเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเจจเจพ:
    kubectl get pods --no-headers=true --all-namespaces |sed -r 's/(S+)s+(S+).*/kubectl --namespace 1 delete pod 2/e'

เจกเจพเจŠเจจเจŸเจพเจˆเจฎ เจจเฉ‚เฉฐ เจ˜เฉฑเจŸ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจ•เจฐเฉ‹

เจกเจพเจŠเจจเจŸเจพเจˆเจฎ เจจเฉ‚เฉฐ เจ˜เฉฑเจŸ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเจจเจพ เจนเฉˆ เจฌเจพเจฐเฉ‡ เจตเจฟเจšเจพเจฐ:

  1. เจ•เฉฐเจŸเจฐเฉ‹เจฒ เจชเจฒเฉ‡เจจ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ kube-dns เจธเฉ‡เจตเจพ เจฌเจฃเจพเจ“, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจจเจพเจฎ เจฆเฉ‡ เจจเจพเจฒ kube-dns-tmp เจ…เจคเฉ‡ เจจเจตเจพเจ‚ เจชเจคเจพ 172.24.0.10.
  2. เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ if etcdhelper เจตเจฟเฉฑเจš, เจœเฉ‹ เจ•เจฟ kube-dns เจธเฉ‡เจตเจพ เจจเฉ‚เฉฐ เจธเฉฐเจธเจผเฉ‹เจงเจฟเจค เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เจพเฅค
  3. เจธเจพเจฐเฉ‡ เจ•เฉเจฌเฉ‡เจฒเฉ‡เจŸเจพเจ‚ เจตเจฟเฉฑเจš เจชเจคเจพ เจฌเจฆเจฒเฉ‹ ClusterDNS เจจเจตเฉ€เจ‚ เจธเฉ‡เจตเจพ เจฒเจˆ, เจœเจฆเฉ‹เจ‚ เจ•เจฟ เจชเฉเจฐเจพเจฃเฉ€ เจธเฉ‡เจตเจพ เจจเจตเฉ€เจ‚ เจฆเฉ‡ เจจเจพเจฒ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เฉ‡เจ—เฉ€เฅค
  4. เจ‰เจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ‡เฉฐเจคเจœเจผเจพเจฐ เจ•เจฐเฉ‹ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจตเจพเจฒเฉ‡ เจชเฉŒเจก เจœเจพเจ‚ เจคเจพเจ‚ เจ•เฉเจฆเจฐเจคเฉ€ เจ•เจพเจฐเจจเจพเจ‚ เจ•เจฐเจ•เฉ‡ เจœเจพเจ‚ เจ‡เฉฑเจ• เจธเจนเจฟเจฎเจค เจธเจฎเฉ‡เจ‚ 'เจคเฉ‡ เจ†เจชเจฃเฉ‡ เจ†เจช เจฐเฉ‹เจฒ เจจเจนเฉ€เจ‚ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ‡เฅค
  5. เจธเฉ‡เจตเจพ เจฎเจฟเจŸเจพเจ“ kube-dns-tmp เจ…เจคเฉ‡ เจฌเจฆเจฒเฉ‹ serviceSubnetCIDR kube-dns เจธเฉ‡เจตเจพ เจฒเจˆเฅค

เจ‡เจน เจฏเฉ‹เจœเจจเจพ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจกเจพเจŠเจจเจŸเจพเจˆเจฎ เจจเฉ‚เฉฐ ~ เจ‡เฉฑเจ• เจฎเจฟเฉฐเจŸ เจคเฉฑเจ• เจ˜เจŸเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเฉ‡เจตเฉ‡เจ—เฉ€ - เจธเฉ‡เจตเจพ เจนเจŸเจพเจ‰เจฃ เจฆเฉ€ เจฎเจฟเจ†เจฆ เจฒเจˆ kube-dns-tmp เจ…เจคเฉ‡ เจธเฉ‡เจตเจพ เจฒเจˆ เจธเจฌเจจเฉˆเฉฑเจŸ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ kube-dns.

เจธเฉ‹เจง podNetwork

เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจ…เจธเฉ€เจ‚ เจ‡เจน เจฆเฉ‡เจ–เจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ เจนเฉˆ เจ•เจฟ เจจเจคเฉ€เจœเฉ‡ เจตเจพเจฒเฉ‡ etcdhelper เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ podNetwork เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเฉ‹เจงเจฟเจ† เจœเจพเจตเฉ‡เฅค เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจฆเจพ เจ•เฉเจฐเจฎ เจ‡เจธ เจชเฉเจฐเจ•เจพเจฐ เจนเฉˆ:

  • เจตเจฟเฉฑเจš เจธเฉฐเจฐเจšเจจเจพ เจซเจฟเจ•เจธเจฟเฉฐเจ— kube-system;
  • kube-controller-manager เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจจเจพ;
  • podCIDR เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเจพ etcd เจตเจฟเฉฑเจš เจฌเจฆเจฒเฉ‹;
  • เจธเจพเจฐเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‹เจก เจฐเฉ€เจฌเฉ‚เจŸ เจ•เจฐเฉ‹เฅค

เจนเฉเจฃ เจ‡เจนเจจเจพเจ‚ เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ:

1. เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš ConfigMaps เจจเฉ‚เฉฐ เจธเฉ‹เจงเฉ‹ kube-system:

kubectl -n kube-system edit cm kubeadm-config

- เจ เฉ€เจ• เจ•เจฐเจจเจพ data.ClusterConfiguration.networking.podSubnet เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจธเจฌเจจเฉˆเฉฑเจŸ เจฒเจˆ 10.55.0.0/16.

kubectl -n kube-system edit cm kube-proxy

- เจ เฉ€เจ• เจ•เจฐเจจเจพ data.config.conf.clusterCIDR: 10.55.0.0/16.

2. เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ-เจชเฉเจฐเจฌเฉฐเจงเจ• เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจจเฉ‚เฉฐ เจธเฉ‹เจงเฉ‹:

vim /etc/kubernetes/manifests/kube-controller-manager.yaml

- เจ เฉ€เจ• เจ•เจฐเจจเจพ --cluster-cidr=10.55.0.0/16.

3. เจฎเฉŒเจœเฉ‚เจฆเจพ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เฉ‹ .spec.podCIDR, .spec.podCIDRs, .InternalIP, .status.addresses เจธเจพเจฐเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‹เจกเจพเจ‚ เจฒเจˆ:

kubectl get no -o json | jq '[.items[] | {"name": .metadata.name, "podCIDR": .spec.podCIDR, "podCIDRs": .spec.podCIDRs, "InternalIP": (.status.addresses[] | select(.type == "InternalIP") | .address)}]'

[
  {
    "name": "kube-2-master",
    "podCIDR": "10.244.0.0/24",
    "podCIDRs": [
      "10.244.0.0/24"
    ],
    "InternalIP": "192.168.199.2"
  },
  {
    "name": "kube-2-master",
    "podCIDR": "10.244.0.0/24",
    "podCIDRs": [
      "10.244.0.0/24"
    ],
    "InternalIP": "10.0.1.239"
  },
  {
    "name": "kube-2-worker-01f438cf-579f9fd987-5l657",
    "podCIDR": "10.244.1.0/24",
    "podCIDRs": [
      "10.244.1.0/24"
    ],
    "InternalIP": "192.168.199.222"
  },
  {
    "name": "kube-2-worker-01f438cf-579f9fd987-5l657",
    "podCIDR": "10.244.1.0/24",
    "podCIDRs": [
      "10.244.1.0/24"
    ],
    "InternalIP": "10.0.4.73"
  }
]

4. เจธเจฟเฉฑเจงเฉ‡ etcd เจตเจฟเฉฑเจš เจฌเจฆเจฒเจพเจ… เจ•เจฐเจ•เฉ‡ podCIDR เจจเฉ‚เฉฐ เจฌเจฆเจฒเฉ‹:

./etcdhelper -cacert /etc/kubernetes/pki/etcd/ca.crt -cert /etc/kubernetes/pki/etcd/server.crt -key /etc/kubernetes/pki/etcd/server.key -endpoint https://127.0.0.1:2379 change-pod-cidr 10.55.0.0/16

5. เจ†เจ“ เจœเจพเจ‚เจš เจ•เจฐเฉ€เจ เจ•เจฟ เจชเฉŒเจกเจธเฉ€เจ†เจˆเจกเฉ€เจ†เจฐ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจ—เจฟเจ† เจนเฉˆ:

kubectl get no -o json | jq '[.items[] | {"name": .metadata.name, "podCIDR": .spec.podCIDR, "podCIDRs": .spec.podCIDRs, "InternalIP": (.status.addresses[] | select(.type == "InternalIP") | .address)}]'

[
  {
    "name": "kube-2-master",
    "podCIDR": "10.55.0.0/24",
    "podCIDRs": [
      "10.55.0.0/24"
    ],
    "InternalIP": "192.168.199.2"
  },
  {
    "name": "kube-2-master",
    "podCIDR": "10.55.0.0/24",
    "podCIDRs": [
      "10.55.0.0/24"
    ],
    "InternalIP": "10.0.1.239"
  },
  {
    "name": "kube-2-worker-01f438cf-579f9fd987-5l657",
    "podCIDR": "10.55.1.0/24",
    "podCIDRs": [
      "10.55.1.0/24"
    ],
    "InternalIP": "192.168.199.222"
  },
  {
    "name": "kube-2-worker-01f438cf-579f9fd987-5l657",
    "podCIDR": "10.55.1.0/24",
    "podCIDRs": [
      "10.55.1.0/24"
    ],
    "InternalIP": "10.0.4.73"
  }
]

6. เจ†เจ‰ เจ‡เฉฑเจ• เจ‡เฉฑเจ• เจ•เจฐเจ•เฉ‡ เจธเจพเจฐเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‹เจกเจธ เจจเฉ‚เฉฐ เจฐเฉ€เจฌเฉ‚เจŸ เจ•เจฐเฉ€เจเฅค

7. เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจ‡เฉฑเจ• เจจเฉ‹เจก เจ›เฉฑเจกเจฆเฉ‡ เจนเฉ‹ เจชเฉเจฐเจพเจฃเจพ เจชเฉ‹เจกเจธเฉ€เจ†เจˆเจกเฉ€เจ†เจฐ, เจซเจฟเจฐ kube-controller-manager เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจ…เจคเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจชเฉŒเจกเจพเจ‚ เจจเฉ‚เฉฐ เจจเจฟเจฏเจค เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค

เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, เจชเฉŒเจกเจธเฉ€เจ†เจˆเจกเฉ€เจ†เจฐ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ เจนเฉ‹เจฐ เจตเฉ€ เจธเจฐเจฒ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เจธ เจฒเจˆ). เจชเจฐ เจ…เจธเฉ€เจ‚ เจ‡เจน เจธเจฟเฉฑเจ–เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจธเฉ€ เจ•เจฟ etcd เจจเจพเจฒ เจธเจฟเฉฑเจงเฉ‡ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ…เจœเจฟเจนเฉ‡ เจ•เฉ‡เจธ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจœเจฆเฉ‹เจ‚ etcd เจตเจฟเฉฑเจš Kubernetes เจ†เจฌเจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ - เจ•เฉ‡เจตเจฒ เจ‡เจ•เฉ‹ เจธเฉฐเจญเจต เจฐเฉ‚เจช. (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจฌเจฟเจจเจพเจ‚ เจกเจพเจŠเจจเจŸเจพเจˆเจฎ เจฆเฉ‡ เจธเฉ‡เจตเจพ เจ–เฉ‡เจคเจฐ เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจจเจนเฉ€เจ‚ เจธเจ•เจฆเฉ‡ spec.clusterIP.)

เจจเจคเฉ€เจœเจพ

เจฒเฉ‡เจ– เจธเจฟเฉฑเจงเฉ‡ etcd เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจฌเจพเจฐเฉ‡ เจšเจฐเจšเจพ เจ•เจฐเจฆเจพ เจนเฉˆ, i.e. Kubernetes API เจจเฉ‚เฉฐ เจ›เฉฑเจก เจ•เฉ‡เฅค เจ•เจˆ เจตเจพเจฐเฉ€ เจ‡เจน เจชเจนเฉเฉฐเจš เจคเฉเจนเจพเจจเฉ‚เฉฐ "เจ›เจฒเจฆเจพเจฐ เจšเฉ€เจœเจผเจพเจ‚" เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจ…เจธเจฒ K8s เจ•เจฒเฉฑเจธเจŸเจฐเจพเจ‚ 'เจคเฉ‡ เจŸเฉˆเจ•เจธเจŸ เจตเจฟเฉฑเจš เจฆเจฟเฉฑเจคเฉ‡ เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เฉ€เจคเฉ€เฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจตเจฟเจ†เจชเจ• เจตเจฐเจคเฉ‹เจ‚ เจฒเจˆ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจคเจฟเจ†เจฐเฉ€ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจนเฉˆ PoC (เจธเฉฐเจ•เจฒเจช เจฆเจพ เจธเจฌเฉ‚เจค). เจ‡เจธ เจฒเจˆ, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐเจพเจ‚ 'เจคเฉ‡ etcdhelper เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจธเฉ‹เจงเฉ‡ เจนเฉ‹เจ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ…เจœเจฟเจนเจพ เจ†เจชเจฃเฉ‡ เจœเฉ‹เจ–เจฎ 'เจคเฉ‡ เจ•เจฐเฉ‹เฅค

PS

เจธเจพเจกเฉ‡ เจฌเจฒเฉŒเจ— 'เจคเฉ‡ เจตเฉ€ เจชเฉœเฉเจนเฉ‹:

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹