ಕುಬರ್ನೆಟ್ಸ್‌ಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಪರಿಸರವಾಗಿ ಡಾಕರ್‌ಗೆ ಬದಲಿಯಾಗಿ CRI-O: CentOS 8 ನಲ್ಲಿ ಸೆಟಪ್

ನಮಸ್ಕಾರ! ನನ್ನ ಹೆಸರು ಸೆರ್ಗೆ, ನಾನು ಸರ್ಫ್‌ನಲ್ಲಿ ಡೆವೊಪ್ಸ್. ಸರ್ಫ್‌ನಲ್ಲಿರುವ DevOps ವಿಭಾಗವು ತಜ್ಞರ ನಡುವೆ ಸಂವಹನವನ್ನು ಸ್ಥಾಪಿಸಲು ಮತ್ತು ಕೆಲಸದ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಸಂಯೋಜಿಸಲು ಮಾತ್ರವಲ್ಲದೆ ತನ್ನದೇ ಆದ ಮೂಲಸೌಕರ್ಯ ಮತ್ತು ಗ್ರಾಹಕರ ಮೂಲಸೌಕರ್ಯದಲ್ಲಿ ಪ್ರಸ್ತುತ ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಸಕ್ರಿಯವಾಗಿ ಸಂಶೋಧಿಸಲು ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಗುರಿಯನ್ನು ಹೊಂದಿದೆ.

ವಿತರಣೆಯನ್ನು ಅಧ್ಯಯನ ಮಾಡುವಾಗ ನಾವು ಎದುರಿಸಿದ ಕಂಟೇನರ್‌ಗಳಿಗೆ ತಂತ್ರಜ್ಞಾನದ ಸ್ಟಾಕ್‌ನಲ್ಲಿನ ಬದಲಾವಣೆಗಳ ಬಗ್ಗೆ ನಾನು ಕೆಳಗೆ ಸ್ವಲ್ಪ ಮಾತನಾಡುತ್ತೇನೆ ಸೆಂಟಿಒಎಸ್ ಕ್ಯುಮ್ಎಕ್ಸ್ಎಕ್ಸ್ ಮತ್ತು ಅದು ಏನು ಎಂಬುದರ ಬಗ್ಗೆ CRI-O ಮತ್ತು ತ್ವರಿತವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಪರಿಸರವನ್ನು ಹೇಗೆ ಹೊಂದಿಸುವುದು ಕುಬರ್ನೆಟ್ಸ್.

ಕುಬರ್ನೆಟ್ಸ್‌ಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಪರಿಸರವಾಗಿ ಡಾಕರ್‌ಗೆ ಬದಲಿಯಾಗಿ CRI-O: CentOS 8 ನಲ್ಲಿ ಸೆಟಪ್

CentOS 8 ನಲ್ಲಿ ಡಾಕರ್ ಅನ್ನು ಏಕೆ ಸೇರಿಸಲಾಗಿಲ್ಲ?

ಇತ್ತೀಚಿನ ಪ್ರಮುಖ ಬಿಡುಗಡೆಗಳನ್ನು ಸ್ಥಾಪಿಸಿದ ನಂತರ rhel 8 ಅಥವಾ ಸೆಂಟಿಒಎಸ್ ಕ್ಯುಮ್ಎಕ್ಸ್ಎಕ್ಸ್ ಒಬ್ಬರು ಸಹಾಯ ಮಾಡಲಾಗುವುದಿಲ್ಲ ಆದರೆ ಗಮನಿಸುವುದಿಲ್ಲ: ಈ ವಿತರಣೆಗಳು ಮತ್ತು ಅಧಿಕೃತ ರೆಪೊಸಿಟರಿಗಳು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ ಡಾಕರ್, ಇದು ಸೈದ್ಧಾಂತಿಕವಾಗಿ ಮತ್ತು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಪ್ಯಾಕೇಜುಗಳನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ ಪೋಡ್ಮನ್, ಬಿಲ್ಡಾಹ್ (ಡೀಫಾಲ್ಟ್ ಆಗಿ ವಿತರಣೆಯಲ್ಲಿ ಪ್ರಸ್ತುತ) ಮತ್ತು CRI-O. ಓಪನ್ ಕಂಟೈನರ್ ಇನಿಶಿಯೇಟಿವ್ (OCI) ಯೋಜನೆಯ ಭಾಗವಾಗಿ Red Hat ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಮಾನದಂಡಗಳ ಪ್ರಾಯೋಗಿಕ ಅನುಷ್ಠಾನದಿಂದಾಗಿ ಇದು ಸಂಭವಿಸುತ್ತದೆ.

ದಿ ಲಿನಕ್ಸ್ ಫೌಂಡೇಶನ್‌ನ ಭಾಗವಾಗಿರುವ OCI ಯ ಗುರಿಯು ಹಲವಾರು ಸಮಸ್ಯೆಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಪರಿಹರಿಸುವ ಕಂಟೇನರ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ಮತ್ತು ರನ್‌ಟೈಮ್‌ಗಳಿಗಾಗಿ ಮುಕ್ತ ಉದ್ಯಮ ಮಾನದಂಡಗಳನ್ನು ರಚಿಸುವುದು. ಮೊದಲನೆಯದಾಗಿ, ಅವರು ಲಿನಕ್ಸ್‌ನ ತತ್ವಶಾಸ್ತ್ರವನ್ನು ವಿರೋಧಿಸಲಿಲ್ಲ (ಉದಾಹರಣೆಗೆ, ಪ್ರತಿ ಪ್ರೋಗ್ರಾಂ ಒಂದು ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸಬೇಕಾದ ಭಾಗದಲ್ಲಿ, ಮತ್ತು ಡಾಕರ್ ಒಂದು ರೀತಿಯ ಆಲ್-ಇನ್-ಒನ್ ಸಂಯೋಜನೆ). ಎರಡನೆಯದಾಗಿ, ಅವರು ಸಾಫ್ಟ್‌ವೇರ್‌ನಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಎಲ್ಲಾ ನ್ಯೂನತೆಗಳನ್ನು ನಿವಾರಿಸಬಹುದು ಡಾಕರ್. ಮೂರನೆಯದಾಗಿ, ಕಂಟೈನರೈಸ್ ಮಾಡಿದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿಯೋಜಿಸಲು, ನಿರ್ವಹಿಸಲು ಮತ್ತು ಸೇವೆ ಮಾಡಲು ಪ್ರಮುಖ ವಾಣಿಜ್ಯ ವೇದಿಕೆಗಳ ವ್ಯವಹಾರ ಅಗತ್ಯತೆಗಳೊಂದಿಗೆ ಅವು ಸಂಪೂರ್ಣವಾಗಿ ಹೊಂದಿಕೊಳ್ಳುತ್ತವೆ (ಉದಾಹರಣೆಗೆ, Red Hat OpenShift).

ನ್ಯೂನತೆಗಳನ್ನು ಡಾಕರ್ ಮತ್ತು ಹೊಸ ಸಾಫ್ಟ್‌ವೇರ್‌ನ ಅನುಕೂಲಗಳನ್ನು ಈಗಾಗಲೇ ಸ್ವಲ್ಪ ವಿವರವಾಗಿ ವಿವರಿಸಲಾಗಿದೆ ಈ ಲೇಖನ, ಮತ್ತು OCI ಯೋಜನೆಯಲ್ಲಿ ನೀಡಲಾದ ಸಂಪೂರ್ಣ ಸಾಫ್ಟ್‌ವೇರ್ ಸ್ಟ್ಯಾಕ್‌ನ ವಿವರವಾದ ವಿವರಣೆ ಮತ್ತು ಅದರ ವಾಸ್ತುಶಿಲ್ಪದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಅಧಿಕೃತ ದಾಖಲಾತಿ ಮತ್ತು Red Hat ನ ಲೇಖನಗಳಲ್ಲಿ ಕಾಣಬಹುದು (ಕೆಟ್ಟದ್ದಲ್ಲ ಲೇಖನ Red Hat ಬ್ಲಾಗ್‌ನಲ್ಲಿ) ಮತ್ತು ಮೂರನೇ ವ್ಯಕ್ತಿಯಲ್ಲಿ ವಿಮರ್ಶೆಗಳು.

ಪ್ರಸ್ತಾವಿತ ಸ್ಟಾಕ್ನ ಘಟಕಗಳು ಯಾವ ಕಾರ್ಯವನ್ನು ಹೊಂದಿವೆ ಎಂಬುದನ್ನು ಗಮನಿಸುವುದು ಮುಖ್ಯವಾಗಿದೆ:

  • ಪೋಡ್ಮನ್ - ರನ್‌ಸಿ ಪ್ರಕ್ರಿಯೆಯ ಮೂಲಕ ಕಂಟೇನರ್‌ಗಳು ಮತ್ತು ಇಮೇಜ್ ಸಂಗ್ರಹಣೆಯೊಂದಿಗೆ ನೇರ ಸಂವಹನ;
  • ಬಿಲ್ಡಾಹ್ - ಜೋಡಣೆ ಮತ್ತು ನೋಂದಾವಣೆಗೆ ಚಿತ್ರಗಳನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡುವುದು;
  • CRI-O - ಕಂಟೇನರ್ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್ ಸಿಸ್ಟಮ್‌ಗಳಿಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಪರಿಸರ (ಉದಾಹರಣೆಗೆ, ಕುಬರ್ನೆಟ್ಸ್).

ಸ್ಟಾಕ್ನ ಘಟಕಗಳ ನಡುವಿನ ಪರಸ್ಪರ ಕ್ರಿಯೆಯ ಸಾಮಾನ್ಯ ಯೋಜನೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು, ಇಲ್ಲಿ ಸಂಪರ್ಕ ರೇಖಾಚಿತ್ರವನ್ನು ಒದಗಿಸುವುದು ಸೂಕ್ತವಾಗಿದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ ಕುಬರ್ನೆಟ್ಸ್ c ರನ್ಸಿ ಮತ್ತು ಕಡಿಮೆ ಮಟ್ಟದ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಬಳಸಲಾಗುತ್ತಿದೆ CRI-O:

ಕುಬರ್ನೆಟ್ಸ್‌ಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಪರಿಸರವಾಗಿ ಡಾಕರ್‌ಗೆ ಬದಲಿಯಾಗಿ CRI-O: CentOS 8 ನಲ್ಲಿ ಸೆಟಪ್

CRI-O и ಕುಬರ್ನೆಟ್ಸ್ ಅದೇ ಬಿಡುಗಡೆ ಮತ್ತು ಬೆಂಬಲ ಚಕ್ರಕ್ಕೆ ಬದ್ಧರಾಗಿರಿ (ಹೊಂದಾಣಿಕೆ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ತುಂಬಾ ಸರಳವಾಗಿದೆ: ಪ್ರಮುಖ ಆವೃತ್ತಿಗಳು ಕುಬರ್ನೆಟ್ಸ್ и CRI-O ಕಾಕತಾಳೀಯ), ಮತ್ತು ಇದು, ಡೆವಲಪರ್‌ಗಳಿಂದ ಈ ಸ್ಟಾಕ್‌ನ ಕಾರ್ಯಾಚರಣೆಯ ಸಂಪೂರ್ಣ ಮತ್ತು ಸಮಗ್ರ ಪರೀಕ್ಷೆಯ ಗಮನವನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಂಡು, ಯಾವುದೇ ಬಳಕೆಯ ಸನ್ನಿವೇಶಗಳಲ್ಲಿ ಕಾರ್ಯಾಚರಣೆಯಲ್ಲಿ ಗರಿಷ್ಠ ಸಾಧಿಸಬಹುದಾದ ಸ್ಥಿರತೆಯನ್ನು ನಿರೀಕ್ಷಿಸುವ ಹಕ್ಕನ್ನು ನಮಗೆ ನೀಡುತ್ತದೆ (ಸಾಪೇಕ್ಷ ಲಘುತೆ ಸಹ ಇಲ್ಲಿ ಪ್ರಯೋಜನಕಾರಿಯಾಗಿದೆ. CRI-O ಅದಕ್ಕೆ ಹೋಲಿಸಿದರೆ ಡಾಕರ್ ಕ್ರಿಯಾತ್ಮಕತೆಯ ಉದ್ದೇಶಪೂರ್ವಕ ಮಿತಿಯಿಂದಾಗಿ).

ಸ್ಥಾಪಿಸುವಾಗ ಕುಬರ್ನೆಟ್ಸ್ "ಸರಿಯಾದ ಮಾರ್ಗ" ಮಾರ್ಗ (ಒಸಿಐ ಪ್ರಕಾರ, ಸಹಜವಾಗಿ) ಬಳಸುವುದು CRI-O ಮೇಲೆ ಸೆಂಟಿಒಎಸ್ ಕ್ಯುಮ್ಎಕ್ಸ್ಎಕ್ಸ್ ನಾವು ಕೆಲವು ಸಣ್ಣ ತೊಂದರೆಗಳನ್ನು ಎದುರಿಸಿದ್ದೇವೆ, ಆದಾಗ್ಯೂ, ನಾವು ಯಶಸ್ವಿಯಾಗಿ ಹೊರಬಂದಿದ್ದೇವೆ. ಅನುಸ್ಥಾಪನೆ ಮತ್ತು ಸಂರಚನಾ ಸೂಚನೆಗಳನ್ನು ನಿಮ್ಮೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲು ನಾನು ಸಂತೋಷಪಡುತ್ತೇನೆ, ಇದು ಒಟ್ಟು 10 ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.

CRI-O ಫ್ರೇಮ್‌ವರ್ಕ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು CentOS 8 ನಲ್ಲಿ Kubernetes ಅನ್ನು ಹೇಗೆ ನಿಯೋಜಿಸುವುದು

ಪೂರ್ವಾಪೇಕ್ಷಿತಗಳು: ಸ್ಥಾಪಿಸಲಾದ ಕನಿಷ್ಠ ಒಂದು ಹೋಸ್ಟ್ (2 ಕೋರ್ಗಳು, 4 GB RAM, ಕನಿಷ್ಠ 15 GB ಸಂಗ್ರಹಣೆ) ಉಪಸ್ಥಿತಿ ಸೆಂಟಿಒಎಸ್ ಕ್ಯುಮ್ಎಕ್ಸ್ಎಕ್ಸ್ (“ಸರ್ವರ್” ಅನುಸ್ಥಾಪನಾ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ), ಹಾಗೆಯೇ ಸ್ಥಳೀಯ DNS ನಲ್ಲಿ ನಮೂದುಗಳು (ಕೊನೆಯ ಉಪಾಯವಾಗಿ, ನೀವು /etc/hosts ನಲ್ಲಿ ಪ್ರವೇಶವನ್ನು ಪಡೆಯಬಹುದು). ಮತ್ತು ಮರೆಯಬೇಡಿ ಸ್ವಾಪ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ.

ನಾವು ರೂಟ್ ಬಳಕೆದಾರರಂತೆ ಹೋಸ್ಟ್‌ನಲ್ಲಿ ಎಲ್ಲಾ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತೇವೆ, ಜಾಗರೂಕರಾಗಿರಿ.

  1. ಮೊದಲ ಹಂತದಲ್ಲಿ, ನಾವು OS ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತೇವೆ, CRI-O ಗಾಗಿ ಪ್ರಾಥಮಿಕ ಅವಲಂಬನೆಗಳನ್ನು ಸ್ಥಾಪಿಸುತ್ತೇವೆ ಮತ್ತು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತೇವೆ.
    • ಓಎಸ್ ಅನ್ನು ನವೀಕರಿಸೋಣ:
      dnf -y update
      

    • ಮುಂದೆ ನೀವು ಫೈರ್ವಾಲ್ ಮತ್ತು SELinux ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಇಲ್ಲಿ ಎಲ್ಲವೂ ನಮ್ಮ ಹೋಸ್ಟ್ ಅಥವಾ ಹೋಸ್ಟ್‌ಗಳು ಕೆಲಸ ಮಾಡುವ ಪರಿಸರವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. ಶಿಫಾರಸುಗಳ ಪ್ರಕಾರ ನೀವು ಫೈರ್‌ವಾಲ್ ಅನ್ನು ಹೊಂದಿಸಬಹುದು ದಸ್ತಾವೇಜನ್ನು, ಅಥವಾ, ನೀವು ವಿಶ್ವಾಸಾರ್ಹ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿದ್ದರೆ ಅಥವಾ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಫೈರ್‌ವಾಲ್ ಅನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ, ಡೀಫಾಲ್ಟ್ ವಲಯವನ್ನು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ಬದಲಾಯಿಸಿ ಅಥವಾ ಫೈರ್‌ವಾಲ್ ಅನ್ನು ಆಫ್ ಮಾಡಿ:
      firewall-cmd --set-default-zone trusted
      
      firewall-cmd --reload

      ಫೈರ್ವಾಲ್ ಅನ್ನು ಆಫ್ ಮಾಡಲು ನೀವು ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಬಳಸಬಹುದು:

      systemctl disable --now firewalld
      

      SELinux ಅನ್ನು ಆಫ್ ಮಾಡಬೇಕಾಗಿದೆ ಅಥವಾ "ಅನುಮತಿಸುವ" ಮೋಡ್‌ಗೆ ಬದಲಾಯಿಸಬೇಕಾಗಿದೆ:

      setenforce 0
      
      sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

    • ಅಗತ್ಯ ಕರ್ನಲ್ ಮಾಡ್ಯೂಲ್‌ಗಳು ಮತ್ತು ಪ್ಯಾಕೇಜುಗಳನ್ನು ಲೋಡ್ ಮಾಡಿ, ಸಿಸ್ಟಮ್ ಪ್ರಾರಂಭದಲ್ಲಿ "br_netfilter" ಮಾಡ್ಯೂಲ್‌ನ ಸ್ವಯಂಚಾಲಿತ ಲೋಡಿಂಗ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ:
      modprobe overlay
      
      modprobe br_netfilter
      
      echo "br_netfilter" >> /etc/modules-load.d/br_netfilter.conf
      
      dnf -y install iproute-tc
      

    • ಪ್ಯಾಕೆಟ್ ಫಾರ್ವರ್ಡ್ ಮಾಡುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಮತ್ತು ಟ್ರಾಫಿಕ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸರಿಪಡಿಸಲು, ನಾವು ಸೂಕ್ತವಾದ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಮಾಡುತ್ತೇವೆ:
      cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF
      net.bridge.bridge-nf-call-iptables = 1
      net.ipv4.ip_forward = 1
      net.bridge.bridge-nf-call-ip6tables = 1
      EOF
      

      ಮಾಡಿದ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಅನ್ವಯಿಸಿ:

      sysctl --system

    • ಅಗತ್ಯವಿರುವ ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿಸಿ CRI-O (ಪ್ರಮುಖ ಆವೃತ್ತಿ CRI-O, ಈಗಾಗಲೇ ಹೇಳಿದಂತೆ, ಅಗತ್ಯವಿರುವ ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿಸಿ ಕುಬರ್ನೆಟ್ಸ್), ಇತ್ತೀಚಿನ ಸ್ಥಿರ ಆವೃತ್ತಿಯಿಂದ ಕುಬರ್ನೆಟ್ಸ್ ಪ್ರಸ್ತುತ 1.18:
      export REQUIRED_VERSION=1.18
      

      ಅಗತ್ಯ ರೆಪೊಸಿಟರಿಗಳನ್ನು ಸೇರಿಸಿ:

      dnf -y install 'dnf-command(copr)'
      
      dnf -y copr enable rhcontainerbot/container-selinux
      
      curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/CentOS_8/devel:kubic:libcontainers:stable.repo
      
      curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$REQUIRED_VERSION.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$REQUIRED_VERSION/CentOS_8/devel:kubic:libcontainers:stable:cri-o:$REQUIRED_VERSION.repo

    • ಈಗ ನಾವು ಸ್ಥಾಪಿಸಬಹುದು CRI-O:
      dnf -y install cri-o
      

      ಅನುಸ್ಥಾಪನಾ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ನಾವು ಎದುರಿಸುವ ಮೊದಲ ಸೂಕ್ಷ್ಮ ವ್ಯತ್ಯಾಸಕ್ಕೆ ಗಮನ ಕೊಡಿ: ನೀವು ಸಂರಚನೆಯನ್ನು ಸಂಪಾದಿಸಬೇಕಾಗಿದೆ CRI-O ಸೇವೆಯನ್ನು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, ಅಗತ್ಯವಿರುವ ಸಾಮಾನ್ಯ ಘಟಕವು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಒಂದಕ್ಕಿಂತ ವಿಭಿನ್ನ ಸ್ಥಳವನ್ನು ಹೊಂದಿರುವುದರಿಂದ:

      sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf

      ಈಗ ನೀವು ಡೀಮನ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬಹುದು ಮತ್ತು ಪ್ರಾರಂಭಿಸಬಹುದು CRI-O:

      systemctl enable --now crio
      

      ನೀವು ಡೀಮನ್ ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸಬಹುದು:

      systemctl status crio
      

  2. ಅನುಸ್ಥಾಪನೆ ಮತ್ತು ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಕುಬರ್ನೆಟ್ಸ್.
    • ಅಗತ್ಯವಿರುವ ರೆಪೊಸಿಟರಿಯನ್ನು ಸೇರಿಸೋಣ:
      cat <<EOF > /etc/yum.repos.d/kubernetes.repo
      [kubernetes]
      name=Kubernetes
      baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
      enabled=1
      gpgcheck=1
      repo_gpgcheck=1
      gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
      exclude=kubelet kubeadm kubectl
      EOF
      

      ಈಗ ನಾವು ಸ್ಥಾಪಿಸಬಹುದು ಕುಬರ್ನೆಟ್ಸ್ (ಆವೃತ್ತಿ 1.18, ಮೇಲೆ ತಿಳಿಸಿದಂತೆ):

      dnf install -y kubelet-1.18* kubeadm-1.18* kubectl-1.18* --disableexcludes=kubernetes

    • ಎರಡನೇ ಪ್ರಮುಖ ಸೂಕ್ಷ್ಮ ವ್ಯತ್ಯಾಸ: ನಾವು ಡೀಮನ್ ಅನ್ನು ಬಳಸದ ಕಾರಣ ಡಾಕರ್, ಆದರೆ ನಾವು ಡೀಮನ್ ಅನ್ನು ಬಳಸುತ್ತೇವೆ CRI-O, ಉಡಾವಣೆ ಮತ್ತು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ಕುಬರ್ನೆಟ್ಸ್ ನೀವು ಮೊದಲು ಬಯಸಿದ ಡೈರೆಕ್ಟರಿಯನ್ನು ರಚಿಸಿದ ನಂತರ /var/lib/kubelet/config.yaml ಸಂರಚನಾ ಫೈಲ್‌ನಲ್ಲಿ ಸೂಕ್ತವಾದ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಮಾಡಬೇಕಾಗಿದೆ:
      mkdir /var/lib/kubelet
      
      cat <<EOF > /var/lib/kubelet/config.yaml
      apiVersion: kubelet.config.k8s.io/v1beta1
      kind: KubeletConfiguration
      cgroupDriver: systemd
      EOF

    • ಅನುಸ್ಥಾಪನೆಯ ಸಮಯದಲ್ಲಿ ನಾವು ಎದುರಿಸುವ ಮೂರನೇ ಪ್ರಮುಖ ಅಂಶ: ನಾವು ಬಳಸಿದ ಚಾಲಕವನ್ನು ಸೂಚಿಸಿದ್ದರೂ ಸಹ cgroup, ಮತ್ತು ವಾದಗಳ ಮೂಲಕ ಅದರ ಸಂರಚನೆಯನ್ನು ರವಾನಿಸಲಾಗಿದೆ ಕುಬ್ಲೆಟ್ ಹಳೆಯದಾಗಿದೆ (ದಸ್ತಾವೇಜನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಹೇಳಲಾಗಿದೆ), ನಾವು ಫೈಲ್‌ಗೆ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಸೇರಿಸಬೇಕಾಗಿದೆ, ಇಲ್ಲದಿದ್ದರೆ ನಮ್ಮ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುವುದಿಲ್ಲ:
      cat /dev/null > /etc/sysconfig/kubelet
      
      cat <<EOF > /etc/sysconfig/kubelet
      KUBELET_EXTRA_ARGS=--container-runtime=remote --cgroup-driver=systemd --container-runtime-endpoint='unix:///var/run/crio/crio.sock'
      EOF

    • ಈಗ ನಾವು ಡೀಮನ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬಹುದು ಕುಬ್ಲೆಟ್:
      sudo systemctl enable --now kubelet
      

      ಕಸ್ಟಮೈಸ್ ಮಾಡಲು ನಿಯಂತ್ರಣ ವಿಮಾನ ಅಥವಾ ಕೆಲಸಗಾರ ನಿಮಿಷಗಳಲ್ಲಿ ನೋಡ್ಗಳು, ನೀವು ಬಳಸಬಹುದು ಈ ಸ್ಕ್ರಿಪ್ಟ್‌ನೊಂದಿಗೆ.

  3. ನಮ್ಮ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುವ ಸಮಯ.
    • ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು, ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಿ:
      kubeadm init --pod-network-cidr=10.244.0.0/16
      

      "kubeadm join ..." ಕ್ಲಸ್ಟರ್‌ಗೆ ಸೇರಲು ಆಜ್ಞೆಯನ್ನು ಬರೆಯಲು ಮರೆಯದಿರಿ, ಇದನ್ನು ಔಟ್‌ಪುಟ್‌ನ ಕೊನೆಯಲ್ಲಿ ಅಥವಾ ಕನಿಷ್ಠ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಟೋಕನ್‌ಗಳನ್ನು ಬಳಸಲು ನಿಮ್ಮನ್ನು ಕೇಳಲಾಗುತ್ತದೆ.

    • ಪಾಡ್ ನೆಟ್‌ವರ್ಕ್‌ಗಾಗಿ ಪ್ಲಗಿನ್ (CNI) ಅನ್ನು ಸ್ಥಾಪಿಸೋಣ. ಬಳಸಲು ನಾನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ ಕ್ಯಾಲಿಕೊ. ಬಹುಶಃ ಹೆಚ್ಚು ಜನಪ್ರಿಯವಾಗಿದೆ ಫ್ಲಾನೆಲ್ ಜೊತೆ ಹೊಂದಾಣಿಕೆಯ ಸಮಸ್ಯೆಗಳನ್ನು ಹೊಂದಿದೆ nftables, ಮತ್ತು ಕ್ಯಾಲಿಕೊ - ಯೋಜನೆಯಿಂದ ಶಿಫಾರಸು ಮಾಡಲಾದ ಮತ್ತು ಸಂಪೂರ್ಣವಾಗಿ ಪರೀಕ್ಷಿಸಲಾದ ಏಕೈಕ CNI ಅನುಷ್ಠಾನ ಕುಬರ್ನೆಟ್ಸ್:
      kubectl --kubeconfig /etc/kubernetes/admin.conf apply -f https://docs.projectcalico.org/v3.15/manifests/calico.yaml 

    • ನಮ್ಮ ಕ್ಲಸ್ಟರ್‌ಗೆ ವರ್ಕರ್ ನೋಡ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಲು, ನೀವು ಅದನ್ನು 1 ಮತ್ತು 2 ಸೂಚನೆಗಳ ಪ್ರಕಾರ ಕಾನ್ಫಿಗರ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ ಅಥವಾ ಬಳಸಿ ಸ್ಕ್ರಿಪ್ಟ್, ನಂತರ ನಾವು ಹಿಂದಿನ ಹಂತದಲ್ಲಿ ಬರೆದ “kubeadm init...” ಔಟ್‌ಪುಟ್‌ನಿಂದ ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಿ:
      kubeadm join $CONTROL_PLANE_ADDRESS:6443 --token $TOKEN 
          --discovery-token-ca-cert-hash $TOKEN_HASH

    • ನಮ್ಮ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗಿದೆ ಮತ್ತು ಕೆಲಸ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಲಾಗಿದೆ ಎಂದು ಪರಿಶೀಲಿಸೋಣ:
      kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
      

    ಸಿದ್ಧವಾಗಿದೆ! ನಿಮ್ಮ K8s ಕ್ಲಸ್ಟರ್‌ನಲ್ಲಿ ನೀವು ಈಗಾಗಲೇ ಪೇಲೋಡ್‌ಗಳನ್ನು ಹೋಸ್ಟ್ ಮಾಡಬಹುದು.

ಮುಂದೆ ನಮಗೆ ಏನು ಕಾಯುತ್ತಿದೆ

ಮೇಲಿನ ಸೂಚನೆಗಳು ನಿಮಗೆ ಸ್ವಲ್ಪ ಸಮಯ ಮತ್ತು ನರಗಳನ್ನು ಉಳಿಸಲು ಸಹಾಯ ಮಾಡಿದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.
ಉದ್ಯಮದಲ್ಲಿ ಸಂಭವಿಸುವ ಪ್ರಕ್ರಿಯೆಗಳ ಫಲಿತಾಂಶವು ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಅಂತಿಮ ಬಳಕೆದಾರರು ಮತ್ತು ಇತರ ಸಾಫ್ಟ್‌ವೇರ್ ಡೆವಲಪರ್‌ಗಳು ಅನುಗುಣವಾದ ನೆಲೆಯಲ್ಲಿ ಹೇಗೆ ಸ್ವೀಕರಿಸುತ್ತಾರೆ ಎಂಬುದರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ. ಕೆಲವು ವರ್ಷಗಳಲ್ಲಿ OCI ಉಪಕ್ರಮಗಳು ಏನು ಕಾರಣವಾಗುತ್ತವೆ ಎಂಬುದು ಇನ್ನೂ ಸಂಪೂರ್ಣವಾಗಿ ಸ್ಪಷ್ಟವಾಗಿಲ್ಲ, ಆದರೆ ನಾವು ಸಂತೋಷದಿಂದ ನೋಡುತ್ತೇವೆ. ಕಾಮೆಂಟ್‌ಗಳಲ್ಲಿ ನೀವು ಇದೀಗ ನಿಮ್ಮ ಅಭಿಪ್ರಾಯವನ್ನು ಹಂಚಿಕೊಳ್ಳಬಹುದು.

ಟ್ಯೂನ್ ಮಾಡಿ!

ಈ ಲೇಖನವು ಈ ಕೆಳಗಿನ ಮೂಲಗಳಿಗೆ ಧನ್ಯವಾದಗಳು:



ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ