ಲಾಭಗಳು:
- ಮೂಲ ವಸ್ತುಗಳು (ಪಾಡ್, ನಿಯೋಜನೆ, ಸೇವೆ, ಕಾನ್ಫಿಗ್ಮ್ಯಾಪ್, ರಹಸ್ಯ, ನೇಮ್ಸ್ಪೇಸ್) ಮತ್ತು ಕುಬರ್ನೆಟ್ಸ್ನ ಘೋಷಣಾತ್ಮಕ ತತ್ತ್ವಶಾಸ್ತ್ರವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಸಾಮರ್ಥ್ಯ ಮತ್ತು ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಗಾಗಿ ಘನ ಮ್ಯಾನಿಫೆಸ್ಟ್ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ
- ಮ್ಯಾನಿಫೆಸ್ಟ್ಗಳನ್ನು ಉತ್ಪಾದನೆಗೆ ಸಿದ್ಧಗೊಳಿಸುವ ಸಾಮರ್ಥ್ಯ ಮತ್ತು ಸಂಪನ್ಮೂಲ ಮಿತಿಗಳು, ಆರೋಗ್ಯ ತಪಾಸಣೆ (ಪ್ರೋಬ್ಗಳು), ಸ್ಥಿರ ಚಿತ್ರ ಟ್ಯಾಗ್ಗಳು ಮತ್ತು ಕಿರಿದಾದ RBAC ಯೊಂದಿಗೆ ಸುರಕ್ಷಿತವಾಗಿದೆ
- ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮೊದಲು ಸರಿಯಾದ ಸಂದರ್ಭವನ್ನು ಪರಿಶೀಲಿಸುವ ಸಾಮರ್ಥ್ಯ ಮತ್ತು ಡ್ರೈ-ರನ್/ಡಿಫ್ನೊಂದಿಗೆ ಡ್ರೈ-ರನ್ ಶಿಸ್ತನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ
ಒಂದು ಕಂಟೇನರ್ ಅನ್ನು ಚಲಾಯಿಸುವುದು ಸುಲಭ. ಆದರೆ ನೂರಾರು ಕಂಟೇನರ್ಗಳನ್ನು ಡಜನ್ಗಟ್ಟಲೆ ಸರ್ವರ್ಗಳಲ್ಲಿ ಹರಡುವ ವ್ಯವಸ್ಥೆಯನ್ನು ಸ್ಥಾಪಿಸುವುದು, ಅವುಗಳಲ್ಲಿ ಒಂದು ಕ್ರ್ಯಾಶ್ ಆದಾಗ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ, ಲೋಡ್ ಹೆಚ್ಚಾದಾಗ ಅದನ್ನು ಪುನರಾವರ್ತಿಸುತ್ತದೆ ಮತ್ತು ಶೂನ್ಯ ಅಲಭ್ಯತೆಯೊಂದಿಗೆ ಅದನ್ನು ನವೀಕರಿಸುವುದೇ? ಅದು ಆರ್ಕೆಸ್ಟ್ರೇಶನ್, ಮತ್ತು ಉದ್ಯಮದ ಪ್ರಮಾಣಿತ ಸಾಧನವೆಂದರೆ ಕುಬರ್ನೆಟ್ಸ್ (ಸಂಕ್ಷಿಪ್ತವಾಗಿ K8s) - ಕ್ಲಸ್ಟರ್ನಾದ್ಯಂತ ಕಂಟೇನರ್ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿಯೋಜಿಸುವ, ಮಾಪಕ ಮಾಡುವ ಮತ್ತು ನಿರ್ವಹಿಸುವ ವೇದಿಕೆಯಾಗಿದೆ. ಕುಬರ್ನೆಟ್ಸ್ ಶಕ್ತಿಯುತ ಆದರೆ ಸಂಕೀರ್ಣವಾಗಿದೆ: ಎಲ್ಲವನ್ನೂ ದೀರ್ಘ, ಇಂಡೆಂಟೇಶನ್-ಸೆನ್ಸಿಟಿವ್ YAML ಫೈಲ್ಗಳಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ - ಮ್ಯಾನಿಫೆಸ್ಟ್ಗಳು ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಇಲ್ಲಿ AI ತಾಜಾ ಗಾಳಿಯ ಉಸಿರನ್ನು ನೀಡುತ್ತದೆ; ಸರಿಯಾದ ಸಂದರ್ಭದೊಂದಿಗೆ, ಇದು ತ್ವರಿತವಾಗಿ ಈ ಮ್ಯಾನಿಫೆಸ್ಟ್ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ ಮತ್ತು ಅವುಗಳ ನಿಗೂಢ ದೋಷಗಳನ್ನು ಡಿಕೋಡ್ ಮಾಡುತ್ತದೆ.
ಆದರೆ ಕುಬರ್ನೆಟ್ಸ್ನಲ್ಲಿ, ತಪ್ಪಾದ ಮ್ಯಾನಿಫೆಸ್ಟ್ ಎಂದರೆ ಸಂಪೂರ್ಣ ಸೇವೆಯನ್ನು ನಿಲ್ಲುವಲ್ಲಿ ವಿಫಲವಾಗುವುದು, ತಪ್ಪಾಗಿ ಸ್ಕೇಲಿಂಗ್ ಮಾಡುವುದು ಅಥವಾ ದುರ್ಬಲತೆಯನ್ನು ಬಿಡುವುದು. AI ಉತ್ಪಾದಿಸುವ ಪ್ರತಿಯೊಂದು ಮ್ಯಾನಿಫೆಸ್ಟ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಮತ್ತು ಪರಿಶೀಲಿಸುವುದು ನಿಮ್ಮ ಜವಾಬ್ದಾರಿಯಾಗಿದೆ - ವಿಶೇಷವಾಗಿ kubectl ಅನ್ವಯಿಸುವ ಮೊದಲು.
ಕುಬರ್ನೆಟ್ಸ್ ಪ್ರಮುಖ ವಸ್ತುಗಳು
ಕುಬರ್ನೆಟ್ಸ್ ಅನ್ನು ಆಡಿಟ್ ಮಾಡಲು, ನೀವು ಮುಖ್ಯ ಪರಿಕಲ್ಪನೆಗಳನ್ನು ತಿಳಿದಿರಬೇಕು:
- ಪಾಡ್: ಅತ್ಯಂತ ಚಿಕ್ಕ ಕಾರ್ಯ ಘಟಕ; ಇದು ಒಂದು ಅಥವಾ ಹಲವಾರು ಪಾತ್ರೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಸಾಮಾನ್ಯವಾಗಿ, ಪಾಡ್ ಅನ್ನು ನೇರವಾಗಿ ಬಳಸಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ಅದನ್ನು ನಿರ್ವಹಿಸುವ ಮೂಲ ವಸ್ತುಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
- ನಿಯೋಜನೆ: ಅಪ್ಲಿಕೇಶನ್ನ ಎಷ್ಟು ಪ್ರತಿಗಳು ರನ್ ಆಗುತ್ತವೆ, ಅದು ಯಾವ ಚಿತ್ರವನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಹೇಗೆ ನವೀಕರಿಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ವಿವರಿಸುತ್ತದೆ. ಪಾಡ್ ಕ್ರ್ಯಾಶ್ ಆಗಿದ್ದರೆ ಅದು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅದನ್ನು ಮರುಸೃಷ್ಟಿಸುತ್ತದೆ.
- ಸೇವೆ: ಸ್ಥಿರ ನೆಟ್ವರ್ಕ್ ವಿಳಾಸ ಮತ್ತು ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ಅನ್ನು ಪಾಡ್ಗಳಿಗೆ ಒದಗಿಸುತ್ತದೆ; ಪಾಡ್ಗಳು ಬಂದು ಹೋದರೂ, ಪ್ರವೇಶ ವಿಳಾಸವು ಬದಲಾಗುವುದಿಲ್ಲ.
- ಕಾನ್ಫಿಗ್ಮ್ಯಾಪ್ ಮತ್ತು ರಹಸ್ಯ: ಕಾನ್ಫಿಗರೇಶನ್ ಮೌಲ್ಯಗಳು ಮತ್ತು ರಹಸ್ಯ ಮಾಹಿತಿಯನ್ನು ಪಾಡ್ಗಳಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿ ಇಡುತ್ತದೆ. ಕಾನ್ಫಿಗ್ಮ್ಯಾಪ್ ಸ್ಪಷ್ಟ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗಾಗಿ, ರಹಸ್ಯವು ಸೂಕ್ಷ್ಮ ಮೌಲ್ಯಗಳಿಗಾಗಿ.
- ನೇಮ್ಸ್ಪೇಸ್: ಸಂಪನ್ಮೂಲಗಳನ್ನು ತಾರ್ಕಿಕವಾಗಿ ವಿಭಜಿಸುವ ಮತ್ತು ಪ್ರತ್ಯೇಕಿಸುವ ಪ್ರದೇಶ (ಉದಾ. dev, prod).
- ಪ್ರವೇಶ: ಕ್ಲಸ್ಟರ್ನಲ್ಲಿನ ಸೇವೆಗಳಿಗೆ ಹೊರಗಿನ ಪ್ರಪಂಚದಿಂದ HTTP ದಟ್ಟಣೆಯನ್ನು ನಿರ್ದೇಶಿಸುವ ನಿಯಮ ಸೆಟ್.
ಹೆಲ್ಮ್ ಕುಬರ್ನೆಟ್ಸ್ನ "ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್" ಆಗಿದೆ: ಇದು ಮರುಕಳಿಸುವ ಮ್ಯಾನಿಫೆಸ್ಟ್ಗಳನ್ನು (ಚಾರ್ಟ್ಗಳು) ಟೆಂಪ್ಲೇಟ್ ಮಾಡಲು ಮತ್ತು ಒಂದೇ ಆಜ್ಞೆಯೊಂದಿಗೆ ವಿಭಿನ್ನ ಪರಿಸರದಲ್ಲಿ ವಿಭಿನ್ನ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಅವುಗಳನ್ನು ಸ್ಥಾಪಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. AI ಕಚ್ಚಾ ಮ್ಯಾನಿಫೆಸ್ಟ್ ಮತ್ತು ಹೆಲ್ಮ್ ಚಾರ್ಟ್ ಎರಡನ್ನೂ ಉತ್ಪಾದಿಸುತ್ತದೆ.
ಏಕೆ ಅನೇಕ ವಸ್ತುಗಳು ಇವೆ? ಕುಬರ್ನೆಟ್ಸ್ನ ಮುಖ್ಯ ತತ್ವವು ಘೋಷಣಾತ್ಮಕವಾಗಿದೆ: ನೀವು "ಸಿಸ್ಟಮ್ ಅಂತಿಮವಾಗಿ ಹೇಗೆ ಕಾಣಬೇಕೆಂದು ನೀವು ಬಯಸುತ್ತೀರಿ" (ಉದಾ. "ಯಾವಾಗಲೂ ಈ ಅಪ್ಲಿಕೇಶನ್ನ 3 ಪ್ರತಿಗಳು ಚಾಲನೆಯಲ್ಲಿವೆ") ಎಂದು ನೀವು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತೀರಿ, ಆದರೆ ಕುಬರ್ನೆಟ್ಸ್ ನಿರಂತರವಾಗಿ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯನ್ನು ಬಯಸಿದ ಸ್ಥಿತಿಗೆ ಹತ್ತಿರಕ್ಕೆ ಸರಿಸುತ್ತಾನೆ. ಒಂದು ಪಾಡ್ ಸತ್ತರೆ, ಅದು ಹೊಸದನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ; ಒಂದು ನೋಡ್ ಕೆಳಗೆ ಹೋದರೆ, ಅದು ಕೆಲಸದ ಹೊರೆಯನ್ನು ಮತ್ತೊಂದು ನೋಡ್ಗೆ ಸರಿಸುತ್ತದೆ. ಅದಕ್ಕಾಗಿಯೇ ಮ್ಯಾನಿಫೆಸ್ಟ್ಗಳು "ಮಾಡು" ಆಜ್ಞೆಗಳಲ್ಲ, ಆದರೆ "ಇದು ಹೀಗಿರಲಿ" ಪಾಕವಿಧಾನಗಳಾಗಿವೆ. AI ಉತ್ಪಾದಿಸುವ ಮ್ಯಾನಿಫೆಸ್ಟ್ಗಳನ್ನು ಓದುವಾಗ ಈ ವ್ಯತ್ಯಾಸವನ್ನು ಗ್ರಹಿಸುವುದು ನಿರ್ಣಾಯಕವಾಗಿದೆ: ಪ್ರತಿ ಡೊಮೇನ್ ಸಿಸ್ಟಮ್ನ ಅಪೇಕ್ಷಿತ ಸ್ಥಿತಿಯ ಭಾಗವನ್ನು ವಿವರಿಸುತ್ತದೆ. ತಪ್ಪಾದ ಡೊಮೇನ್ ಎಂದರೆ ಕುಬರ್ನೆಟ್ಸ್ ತಪ್ಪು ಗುರಿಯತ್ತ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದಾರೆ - ಮತ್ತು ಆ ಗುರಿಯನ್ನು ಮೌನವಾಗಿ, ನಿರಂತರವಾಗಿ ಜಾರಿಗೊಳಿಸಲಾಗಿದೆ.
ಸಲಹೆ: Kubernetes ನಲ್ಲಿ, ಅತ್ಯಂತ ಪ್ರಮುಖವಾದ ಸುರಕ್ಷಿತ ಪರೀಕ್ಷಾ ಸಾಧನವೆಂದರೆ kubectl apply --dry-run=server -f file.yaml: ಇದು ಸರ್ವರ್ ಸ್ವೀಕರಿಸುತ್ತದೆಯೇ ಮತ್ತು ಮ್ಯಾನಿಫೆಸ್ಟ್ ಅನ್ನು ನಿಜವಾಗಿ ಅನ್ವಯಿಸದೆ ಏನು ಮಾಡಬೇಕು ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ. ಪ್ರೊಡ್ಗೆ ಮ್ಯಾನಿಫೆಸ್ಟ್ ಅನ್ನು ಅನ್ವಯಿಸುವ ಮೊದಲು ಡ್ರೈ-ರನ್ ಮತ್ತು kubectl ಡಿಫ್ ಅನ್ನು ರನ್ ಮಾಡಲು ಮರೆಯದಿರಿ.
ಹಂತ ಹಂತವಾಗಿ: AI ಜೊತೆಗೆ ಮ್ಯಾನಿಫೆಸ್ಟ್ಗಳನ್ನು ರಚಿಸುವುದು
- ಅಪ್ಲಿಕೇಶನ್ ಮತ್ತು ಅಗತ್ಯವನ್ನು ವಿವರಿಸಿ. ಚಿತ್ರದ ಹೆಸರು, ಪೋರ್ಟ್, ಎಷ್ಟು ಪ್ರತಿಕೃತಿಗಳು, ಸಂಪನ್ಮೂಲ ಮಿತಿಗಳು (ಸಿಪಿಯು/ಮೆಮೊರಿ).
- ವಿನಂತಿ ನಿಯೋಜನೆ + ಸೇವೆ. ಸಾಮಾನ್ಯವಾಗಿ ಎರಡೂ ಒಟ್ಟಿಗೆ ಅಗತ್ಯವಿದೆ.
- ಪ್ರತ್ಯೇಕ ಸಂರಚನೆ ಮತ್ತು ರಹಸ್ಯ. ಕಾನ್ಫಿಗ್ಮ್ಯಾಪ್ಗೆ ಸೆಟ್ಟಿಂಗ್ಗಳು, ಸೀಕ್ರೆಟ್ಗೆ ಸೂಕ್ಷ್ಮ ಮೌಲ್ಯಗಳು.
- ಆರೋಗ್ಯ ತಪಾಸಣೆಗಳನ್ನು ಸೇರಿಸಿ. livenessProbe (ಇದು ಲೈವ್ ಆಗಿದೆಯೇ) ಮತ್ತು ರೆಡಿನೆಸ್ಪ್ರೋಬ್ (ಇದು ಸಂಚಾರಕ್ಕೆ ಸಿದ್ಧವಾಗಿದೆಯೇ) ನಿರ್ಣಾಯಕವಾಗಿದೆ.
- ಸಂಪನ್ಮೂಲ ಮಿತಿಯನ್ನು ಹೊಂದಿಸಿ. ವಿನಂತಿಗಳು/ಮಿತಿಗಳಿಲ್ಲದೆ ಪಾಡ್ ಸಂಪೂರ್ಣ ನೋಡ್ ಅನ್ನು ಸೇವಿಸಬಹುದು.
- `--ಡ್ರೈ-ರನ್` ಮತ್ತು `ಡಿಫ್` ನೊಂದಿಗೆ ಪರಿಶೀಲಿಸಿ, ನಂತರ ಅನ್ವಯಿಸಿ. ಟೆಸ್ಟ್ ನೇಮ್ಸ್ಪೇಸ್ನಲ್ಲಿ ಮೊದಲನೆಯದು.
ಭದ್ರತೆ: ಕುಬರ್ನೆಟ್ಸ್-ನಿರ್ದಿಷ್ಟ ಅಪಾಯಗಳು
- ರಹಸ್ಯವು ನಿಜವಾಗಿಯೂ ರಹಸ್ಯವಲ್ಲ - ಇದು ಕೇವಲ ಬೇಸ್64. ಕುಬರ್ನೆಟ್ಸ್ ಸೀಕ್ರೆಟ್ ಆಬ್ಜೆಕ್ಟ್ ಬೇಸ್64 ಮೌಲ್ಯಗಳನ್ನು ಎನ್ಕೋಡ್ ಮಾಡುತ್ತದೆ; ಇದು ಎನ್ಕ್ರಿಪ್ಶನ್ ಅಲ್ಲ, ಇದನ್ನು ಸುಲಭವಾಗಿ ಡೀಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗುತ್ತದೆ. ನಿಜವಾದ ಗೌಪ್ಯತೆಗಾಗಿ, etcd ಎನ್ಕ್ರಿಪ್ಶನ್ ಮತ್ತು ಬಾಹ್ಯ ವಾಲ್ಟ್ (ವಾಲ್ಟ್, ಕ್ಲೌಡ್ ಸೀಕ್ರೆಟ್ ಮ್ಯಾನೇಜರ್) ಅಗತ್ಯವಿದೆ. ಎಂದಿಗೂ ರಹಸ್ಯ ಮ್ಯಾನಿಫೆಸ್ಟ್ಗಳನ್ನು ನೇರವಾಗಿ Git ಗೆ ಒಪ್ಪಿಸಬೇಡಿ (ಇದಕ್ಕೆ ಸೀಲ್ಡ್ ಸೀಕ್ರೆಟ್ಸ್/ಬಾಹ್ಯ ರಹಸ್ಯಗಳಂತಹ ಪರಿಹಾರಗಳಿವೆ).
- ಸಂಪನ್ಮೂಲ ಮಿತಿಯನ್ನು ಹೊಂದಿಸಿ. ಮಿತಿಗಳಿಲ್ಲದ ಪಾಡ್ ಮೆಮೊರಿ ಸೋರಿಕೆಯೊಂದಿಗೆ ಸಂಪೂರ್ಣ ನೋಡ್ ಅನ್ನು ಕ್ರ್ಯಾಶ್ ಮಾಡಬಹುದು.
- ಕನಿಷ್ಠ ಅಧಿಕಾರ (RBAC). ಪಾತ್ರ-ಆಧಾರಿತ ಪ್ರವೇಶ ನಿಯಂತ್ರಣದೊಂದಿಗೆ, ಪ್ರತಿ ಸೇವೆ/ಬಳಕೆದಾರರು ಅದಕ್ಕೆ ಅಗತ್ಯವಿರುವ ಅನುಮತಿಗಳನ್ನು ಮಾತ್ರ ಹೊಂದಿರುತ್ತಾರೆ. AI ಕೆಲವೊಮ್ಮೆ ದೊಡ್ಡ ಕ್ಲಸ್ಟರ್-ನಿರ್ವಹಣೆಯನ್ನು ನೀಡುತ್ತದೆ; ಇದನ್ನು ಸಂಕುಚಿತಗೊಳಿಸಿ.
- `ಇತ್ತೀಚಿನ` ಇಮೇಜ್ ಟ್ಯಾಗ್ ಅನ್ನು ಬಳಸಬೇಡಿ. ಯಾವ ಆವೃತ್ತಿಯು ಚಾಲನೆಯಲ್ಲಿದೆ ಎಂದು ನಿಮಗೆ ತಿಳಿದಿಲ್ಲ ಮತ್ತು ನೀವು ಅದನ್ನು ಹಿಂತಿರುಗಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
ಎಚ್ಚರಿಕೆ: kubectl ಅಳಿಸುವಿಕೆ ಅಥವಾ ತಪ್ಪಾದ ಅಪ್ಲಿಕೇಶನ್ ಲೈವ್ ನಿಯೋಜನೆಯನ್ನು ನಾಶಪಡಿಸಬಹುದು. ಆಜ್ಞೆಗಳನ್ನು ಚಲಾಯಿಸುವ ಮೊದಲು ನೀವು ಯಾವ ನೇಮ್ಸ್ಪೇಸ್ನಲ್ಲಿರುವಿರಿ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸಲು ಮರೆಯದಿರಿ (kubectl config current-context); ಆಕಸ್ಮಿಕ ಕೆಲಸವು ಉತ್ಪಾದನಾ ಸಂದರ್ಭದಲ್ಲಿ ಸಾಮಾನ್ಯ ವಿಪತ್ತು.
ರಾ ಮ್ಯಾನಿಫೆಸ್ಟ್ ವಿರುದ್ಧ ಹೆಲ್ಮ್ ಟೇಬಲ್
ಮಾನದಂಡ
ಕಚ್ಚಾ YAML ಮ್ಯಾನಿಫೆಸ್ಟ್
ಹೆಲ್ಮ್ ಚಾರ್ಟ್
ಅನುಸ್ಥಾಪನೆ
kubectl ಅನ್ವಯಿಸು -f
ಚುಕ್ಕಾಣಿಯನ್ನು ಸ್ಥಾಪಿಸಿ
ಮಲ್ಟಿಮೀಡಿಯಾ (dev/prod)
ಕಾಪಿ-ಪೇಸ್ಟ್, ದೋಷ ಪೀಡಿತ
ಏಕ ಚಾರ್ಟ್, ವಿಭಿನ್ನ ಮೌಲ್ಯಗಳು. yaml
ಆವೃತ್ತಿ/ರೋಲ್ಬ್ಯಾಕ್
ಕೈಯಿಂದ
ಹೆಲ್ಮ್ ರೋಲ್ಬ್ಯಾಕ್ನೊಂದಿಗೆ ಸುಲಭ
ಕಲಿಕೆಯ ರೇಖೆ
ಕಡಿಮೆ
ಮಧ್ಯಮ
ಯಾವಾಗ
ಸಣ್ಣ, ಏಕ ಪರಿಸರ
ಬಹು-ಮಾಧ್ಯಮ, ಪುನರಾವರ್ತಿತ ಸೇವೆ
ಮೂರು ಸಣ್ಣ ಪ್ರಕರಣಗಳು
ಪ್ರಕರಣ 1 - ಕ್ರ್ಯಾಶ್ ಸೇವೆಯ ರಹಸ್ಯ. ಒಂದು ಪಾಡ್ ನಿರಂತರವಾಗಿ ರೀಬೂಟ್ ಆಗುತ್ತಿದೆ (CrashLoopBackOff). ತಂಡವು ಲಾಗ್ಗಳು ಮತ್ತು ಮ್ಯಾನಿಫೆಸ್ಟ್ ಅನ್ನು AI ಗೆ ನೀಡಿತು; ಪಾಡ್ ಅನ್ನು ಎಂದಿಗೂ "ಸಿದ್ಧ" ಎಂದು ಪರಿಗಣಿಸಲಾಗಿಲ್ಲ ಎಂದು AI ತೋರಿಸಿದೆ ಏಕೆಂದರೆ ರೆಡಿನೆಸ್ಪ್ರೋಬ್ ತಪ್ಪಾದ ಪೋರ್ಟ್ ಅನ್ನು ನೋಡುತ್ತಿದೆ. ಅವರು ಬಂದರನ್ನು ಸರಿಪಡಿಸಿದರು, ಸೇವೆಯು 10 ನಿಮಿಷಗಳಲ್ಲಿ ಸ್ಥಿರವಾಯಿತು. ಈ ಸಂಬಂಧವನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಸ್ಥಾಪಿಸಲು ಗಂಟೆಗಳು ತೆಗೆದುಕೊಳ್ಳಬಹುದು.
ಪ್ರಕರಣ 2 - ಮಿತಿಗಳನ್ನು ಹೊಂದಿಸದಿರುವುದು ಗಂಟು ಮುರಿಯಿತು. ನಿಯೋಜನೆಯಲ್ಲಿ ಯಾವುದೇ ಮಿತಿಗಳಿರಲಿಲ್ಲ; ಮೆಮೊರಿ ಸೋರಿಕೆಯು ಪಾಡ್ ಅನ್ನು ಉಬ್ಬಿತು ಮತ್ತು ಸಂಪೂರ್ಣ ನೋಡ್ ಅನ್ನು ಕ್ರ್ಯಾಶ್ ಮಾಡಿತು, ನೆರೆಹೊರೆಯ ಸೇವೆಗಳನ್ನು ಸಹ ಕಡಿಮೆಗೊಳಿಸಿತು. ಘಟನೆಯ ನಂತರ, ಅವರು AI ಅನ್ನು "ಸಮಂಜಸವಾದ CPU/ಮೆಮೊರಿ ವಿನಂತಿಗಳನ್ನು ಮತ್ತು ಎಲ್ಲಾ ನಿಯೋಜನೆಗಳಿಗೆ ಮಿತಿಗಳನ್ನು ಸೇರಿಸಿ" ಎಂದು ಹೇಳುವಂತೆ ಮಾಡಿದರು ಮತ್ತು ಅದನ್ನು ಪ್ರಮಾಣಿತಗೊಳಿಸಿದರು. ಒಂದು ಕಾಣೆಯಾದ ಲೈನ್ ಅಲಭ್ಯತೆಯ ಗಂಟೆಗಳ ವೆಚ್ಚ.
ಪ್ರಕರಣ 3 - ದೊಡ್ಡ RBAC ಸೆರೆಹಿಡಿಯಲಾಗಿದೆ. ತನಿಖೆಯ ಸಮಯದಲ್ಲಿ, AI ನಿಂದ ರಚಿಸಲಾದ ಸೇವಾ ಖಾತೆ ಮ್ಯಾನಿಫೆಸ್ಟ್ ಅನ್ನು ಕ್ಲಸ್ಟರ್-ನಿರ್ವಾಹಕ ಪಾತ್ರಕ್ಕೆ ಜೋಡಿಸಲಾಗಿದೆ ಎಂದು ಕಂಡುಬಂದಿದೆ - ಅಂದರೆ ಸೇವೆಯು ಸಂಪೂರ್ಣ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ತಂಡವು ತಮ್ಮ ನೇಮ್ಸ್ಪೇಸ್ನಲ್ಲಿ ಪಾಡ್ಗಳನ್ನು ಮಾತ್ರ ಓದುವ ಅನುಮತಿಯನ್ನು ಕಿರಿದಾಗಿಸಿದೆ. ಕನಿಷ್ಠ ಸವಲತ್ತು ತತ್ವವು ಭದ್ರತಾ ದುರ್ಬಲತೆಯನ್ನು ಮುಚ್ಚಿದೆ.
ನಾಲ್ಕು ನಕಲಿಸಬಹುದಾದ ಟೆಂಪ್ಲೇಟ್ಗಳು
1) ನಿಯೋಜನೆ + ಸೇವೆ ಉತ್ಪಾದನೆ:
ಕುಬರ್ನೆಟ್ಸ್ಗಾಗಿ ನಿಯೋಜನೆ ಮತ್ತು ಸೇವಾ ಮ್ಯಾನಿಫೆಸ್ಟ್ ಅನ್ನು ಬರೆಯಿರಿ. ಅಪ್ಲಿಕೇಶನ್: [AD], ಚಿತ್ರ: [ಚಿತ್ರ: ಸ್ಥಿರ-ಆವೃತ್ತಿ], ಪೋರ್ಟ್: [X], ಪ್ರತಿಕೃತಿ: [N]. ನಿಯಮಗಳು:- ಸಿಪಿಯು/ಮೆಮೊರಿ ವಿನಂತಿಗಳು ಮತ್ತು ಮಿತಿಗಳನ್ನು ಸೇರಿಸಿ.- ಲೈವ್ನೆಸ್ಪ್ರೋಬ್ ಮತ್ತು ರೆಡಿನೆಸ್ಪ್ರೋಬ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ.- ಕಾನ್ಫಿಗ್ಮ್ಯಾಪ್ನಿಂದ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಓದಿ, ಸೀಕ್ರೆಟ್ ಆಬ್ಜೆಕ್ಟ್ನಿಂದ ರಹಸ್ಯ; ಮ್ಯಾನಿಫೆಸ್ಟ್ನಲ್ಲಿ ಮೌಲ್ಯಗಳನ್ನು ಎಂಬೆಡ್ ಮಾಡಬೇಡಿ, ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ಗಳನ್ನು ಬಳಸಿ. - ಇಮೇಜ್ ಟ್ಯಾಗ್ ": ಇತ್ತೀಚಿನ" ಅನ್ನು ಬಳಸಬೇಡಿ. ವಿವರಣೆಯೊಂದಿಗೆ ನೀಡಿ.
2) ಮ್ಯಾನಿಫೆಸ್ಟ್ ದೋಷ ಪರಿಹಾರ:
ಪ್ರಸ್ತುತ ಪಾಡ್ [CrashLoopBackOff / ಬಾಕಿ / ImagePullBackOff] ಸ್ಥಿತಿಯಲ್ಲಿದೆ. ಕೆಳಗಿನ ಮ್ಯಾನಿಫೆಸ್ಟ್ ಮತ್ತು 'kubectl description' ಔಟ್ಪುಟ್ ಪ್ರಕಾರ, ಸಂಭವನೀಯ ಮೂಲ ಕಾರಣಗಳನ್ನು ಸಂಭವನೀಯತೆಯ ಕ್ರಮದಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಿ ಮತ್ತು ಪ್ರತಿಯೊಂದಕ್ಕೂ verify ಆಜ್ಞೆಯನ್ನು ನೀಡಿ. ಮ್ಯಾನಿಫೆಸ್ಟ್: [YAML] ವಿವರಿಸಿ: [ಔಟ್ಪುಟ್]
3) ಭದ್ರತೆ/ಸಮಗ್ರತೆಯ ಪರಿಶೀಲನೆ:
ಈ ಕುಬರ್ನೆಟ್ಸ್ ಮ್ಯಾನಿಫೆಸ್ಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ: ಸಂಪನ್ಮೂಲ ಮಿತಿಯು ಕಾಣೆಯಾಗಿದೆಯೇ, ಅದು ತಪ್ಪಿಹೋಗಿದೆಯೇ, ಒಂದು : ಇತ್ತೀಚಿನ ಟ್ಯಾಗ್ ಇದೆಯೇ, ಮಿತಿಮೀರಿದ RBAC/ಅನುಮತಿ ಇದೆಯೇ, ಮ್ಯಾನಿಫೆಸ್ಟ್ನಲ್ಲಿ ರಹಸ್ಯವನ್ನು ಹುದುಗಿಸಲಾಗಿದೆಯೇ? ಪ್ರಾಮುಖ್ಯತೆಯ ಕ್ರಮದಲ್ಲಿ ಮತ್ತು ತಿದ್ದುಪಡಿಯೊಂದಿಗೆ ಸಂಶೋಧನೆಗಳನ್ನು ಬರೆಯಿರಿ. ಮ್ಯಾನಿಫೆಸ್ಟ್: [YAML]
4) ಹೆಲ್ಮ್ ಚಾರ್ಟ್ಗೆ ಪರಿವರ್ತನೆ:
ಕೆಳಗಿನ ಕಚ್ಚಾ ಮ್ಯಾನಿಫೆಸ್ಟ್ಗಳನ್ನು ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಹೆಲ್ಮ್ ಚಾರ್ಟ್ಗೆ ಪರಿವರ್ತಿಸಿ: ಯಾವ ಮೌಲ್ಯಗಳು values.yaml ಗೆ ಹೋಗಬೇಕು (ಚಿತ್ರ, ಪ್ರತಿಕೃತಿ, ಮೂಲ, ಪರಿಸರ)? ಚಾರ್ಟ್ ರಚನೆ ಮತ್ತು ಮಾದರಿ ಮೌಲ್ಯಗಳನ್ನು ತೋರಿಸಿ.yaml. ಮ್ಯಾನಿಫೆಸ್ಟ್ಗಳು: [YAML]
ದುರ್ಬಲ ಪ್ರಾಂಪ್ಟ್ / ಬಲವಾದ ಪ್ರಾಂಪ್ಟ್
ದುರ್ಬಲ: "ನನ್ನ ಅರ್ಜಿಗಾಗಿ ಕುಬರ್ನೆಟ್ಸ್ YAML ಬರೆಯಿರಿ."
ಫಲಿತಾಂಶ: ಯಾವುದೇ ತನಿಖೆ, ಮಿತಿಯಿಲ್ಲದ ನಿಯೋಜನೆ : ಇತ್ತೀಚಿನ ಟ್ಯಾಗ್, ರಹಸ್ಯ ಬಯಲನ್ನು ಎಂಬೆಡಿಂಗ್; ಉತ್ಪನ್ನದಲ್ಲಿ ಅಸುರಕ್ಷಿತ ಮತ್ತು ದುರ್ಬಲವಾಗಿರುತ್ತದೆ.
ಪ್ರಬಲ: "Kubernetes ನಿಯೋಜನೆ + ಸೇವೆಯನ್ನು ಬರೆಯಿರಿ. ಇಮೇಜ್ myapp: 1.4.2, 3 ಪ್ರತಿಕೃತಿಗಳು, 8080 ಪೋರ್ಟ್ಗಳು. CPU 100m-500m, ಮೆಮೊರಿ 128Mi-512Mi ವಿನಂತಿಗಳು/ಮಿತಿಗಳನ್ನು ಸೇರಿಸಿ. /healthz ಗೆ ಲೈವ್ನೆಸ್ ಪ್ರೋಬ್ ಅನ್ನು ಹಾಕಿ, emcreed ವಸ್ತುವಿನಿಂದ ಸಿದ್ಧತೆಗಾಗಿ ತನಿಖೆ ಮಾಡಿ. ಮ್ಯಾನಿಫೆಸ್ಟ್ನಲ್ಲಿ ವಿವರಣೆಯೊಂದಿಗೆ ನೀಡಿ."
ವ್ಯತ್ಯಾಸ: ಎರಡನೇ ಪ್ರಾಂಪ್ಟ್ ಆವೃತ್ತಿಯು ಪ್ರಮಾಣ, ಸಂಪನ್ಮೂಲ ಮಿತಿಗಳು, ಆರೋಗ್ಯ ತಪಾಸಣೆ ಮತ್ತು ರಹಸ್ಯ ನಿಯಮವನ್ನು ನೀಡುತ್ತದೆ; ಉತ್ಪಾದನೆಯು ಉತ್ಪಾದನೆಗೆ ಹತ್ತಿರದಲ್ಲಿದೆ ಮತ್ತು ಸುರಕ್ಷಿತವಾಗಿದೆ.
ಸಾಮಾನ್ಯ ತಪ್ಪುಗಳು
- ಸಂಪನ್ಮೂಲ ಮಿತಿಗಳನ್ನು ಹೊಂದಿಸುತ್ತಿಲ್ಲ. ಒಂದು ಪಾಡ್ ಸಂಪೂರ್ಣ ನೋಡ್ ಅನ್ನು ಸೇವಿಸಬಹುದು.
- ಆರೋಗ್ಯ ತಪಾಸಣೆ (ತನಿಖೆ) ಸೇರಿಸುತ್ತಿಲ್ಲ. ಕುಬರ್ನೆಟ್ಗಳು ಕ್ರ್ಯಾಶ್ ಆಗಿರುವ/ಸಿದ್ಧವಾಗಿಲ್ಲದ ಪಾಡ್ ಅನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಸಾಧ್ಯವಿಲ್ಲ.
- `: ಇತ್ತೀಚಿನ` ಟ್ಯಾಗ್. ಯಾವ ಆವೃತ್ತಿಯು ಚಾಲನೆಯಲ್ಲಿದೆ ಎಂಬುದು ಅಸ್ಪಷ್ಟವಾಗುತ್ತದೆ, ಅದನ್ನು ಹಿಂತಿರುಗಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
- ರಹಸ್ಯವನ್ನು ನೇರವಾಗಿ Git ಗೆ ಒಪ್ಪಿಸುವುದು. Base64 ಎನ್ಕ್ರಿಪ್ಶನ್ ಅಲ್ಲ; ಪ್ರತಿಯೊಬ್ಬರೂ ಅದನ್ನು ಪರಿಹರಿಸುತ್ತಾರೆ.
- ತಪ್ಪಾದ ಸಂದರ್ಭ/ಹೆಮ್ಸ್ಪೇಸ್ನಲ್ಲಿ ಆಜ್ಞೆಗಳನ್ನು ಚಲಾಯಿಸಲಾಗುತ್ತಿದೆ. ಉತ್ಪನ್ನದಲ್ಲಿ ಕ್ರ್ಯಾಶ್ ಮಾಡುವ ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ಮಾರ್ಗ.
- `--ಡ್ರೈ-ರನ್`/`diff` ಅನ್ನು ಬಿಟ್ಟುಬಿಡುವುದು. ಅನುಷ್ಠಾನಕ್ಕೆ ಮೊದಲು ಏನಾಗುತ್ತದೆ ಎಂದು ನೋಡುತ್ತಿಲ್ಲ.
ಸಾರಾಂಶದಲ್ಲಿ
ಕುಬರ್ನೆಟ್ಸ್ ಶಕ್ತಿಯುತ ಆದರೆ ಸಂಕೀರ್ಣವಾದ ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಆಗಿದ್ದು ಅದು ಕ್ಲಸ್ಟರ್ನಾದ್ಯಂತ ಕಂಟೇನರ್ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿಯೋಜಿಸುತ್ತದೆ, ಮಾಪಕಗಳು ಮತ್ತು ಆಪ್ಟಿಮೈಸ್ ಮಾಡುತ್ತದೆ; ಎಲ್ಲವನ್ನೂ ಮ್ಯಾನಿಫೆಸ್ಟ್ YAML ಗಳಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ, ಇದು ಹೆಲ್ಮ್ ಟೆಂಪ್ಲೇಟ್ ಮಾಡುತ್ತದೆ. AI ತ್ವರಿತವಾಗಿ ನಿಯೋಜನೆ/ಸೇವಾ ಮ್ಯಾನಿಫೆಸ್ಟ್ಗಳು ಮತ್ತು ಹೆಲ್ಮ್ ಚಾರ್ಟ್ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ, ನಿಗೂಢ ದೋಷಗಳನ್ನು ಪರಿಹರಿಸುತ್ತದೆ - ಆದರೆ ನೀವು ಸಂಪನ್ಮೂಲ ಮಿತಿ, ಆರೋಗ್ಯ ತಪಾಸಣೆ, ಬದಲಾಗದ ಇಮೇಜ್ ಟ್ಯಾಗ್, ಕಿರಿದಾದ RBAC ಮತ್ತು ರಹಸ್ಯ ಭದ್ರತಾ ನಿಯಮಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಕೇಳಬೇಕು. --ಡ್ರೈ-ರನ್, ಡಿಫ್ ಮತ್ತು ಸರಿಯಾದ ಸಂದರ್ಭ ಪರಿಶೀಲನೆಯು ಪ್ರಾಡ್ ಕ್ರ್ಯಾಶ್ಗಳನ್ನು ತಡೆಯುವ ಅಭ್ಯಾಸಗಳಾಗಿವೆ.
ಅಪ್ಲಿಕೇಶನ್ ಕಾರ್ಯ
"ನಿಯೋಜನೆ + ಸೇವೆ ಉತ್ಪಾದನೆ" ಟೆಂಪ್ಲೇಟ್ನೊಂದಿಗೆ ಮಾದರಿ ಅಪ್ಲಿಕೇಶನ್ಗಾಗಿ AI ಮ್ಯಾನಿಫೆಸ್ಟ್ ಅನ್ನು ರಚಿಸುವಂತೆ ಮಾಡಿ. ನಂತರ: (1) "ಭದ್ರತೆ/ಸ್ವಚ್ಛತೆ ತಪಾಸಣೆ" ಟೆಂಪ್ಲೇಟ್ನೊಂದಿಗೆ ಸಂಪನ್ಮೂಲ ಮಿತಿ, ತನಿಖೆ, : ಇತ್ತೀಚಿನ, ಮತ್ತು ರಹಸ್ಯಕ್ಕಾಗಿ ಅದನ್ನು ಪರೀಕ್ಷಿಸಿ; (2) kubectl apply --dry-run=ಸರ್ವರ್ ಅನ್ನು ಪರೀಕ್ಷಾ ಕ್ಲಸ್ಟರ್/ಮಿನಿಕ್ಯೂಬ್ನಲ್ಲಿ ಸಾಧ್ಯವಾದರೆ ರನ್ ಮಾಡಿ ಮತ್ತು ಔಟ್ಪುಟ್ ಅನ್ನು ಓದಿ; (3) ನೀವು ಕಾಣೆಯಾಗಿರುವ ಎರಡು ಅತ್ಯಂತ ನಿರ್ಣಾಯಕ ಸುರಕ್ಷತೆ/ದೃಢತೆಯ ವಸ್ತುಗಳನ್ನು ಗಮನಿಸಿ.
ಪರಿಶೀಲನಾಪಟ್ಟಿ
- [ ] ನಾನು ಚಿತ್ರದ ಆವೃತ್ತಿ, ಪ್ರತಿಕೃತಿಗಳ ಸಂಖ್ಯೆ, ಪೋರ್ಟ್ ಮತ್ತು ಸಂಪನ್ಮೂಲ ಮಿತಿಗಳನ್ನು ನನ್ನ ವಿನಂತಿಗೆ ಸೇರಿಸಿದ್ದೇನೆ.
- [ ] ನಾನು ಮ್ಯಾನಿಫೆಸ್ಟ್ಗೆ ಜೀವಂತಿಕೆ ಮತ್ತು ಸನ್ನದ್ಧತೆಯ ತನಿಖೆಯನ್ನು ಸೇರಿಸಿದ್ದೇನೆ.
- [ ] ಚಿತ್ರದ ಟ್ಯಾಗ್ ಸ್ಥಿರವಾಗಿದೆ; ನಾನು ಬಳಸಲಿಲ್ಲ: ಇತ್ತೀಚಿನ.
- [ ] ರಹಸ್ಯವು ಮ್ಯಾನಿಫೆಸ್ಟ್ನಲ್ಲಿ ಹುದುಗಿಲ್ಲ; ನಾನು ರಹಸ್ಯ ವಸ್ತು/ಬಾಹ್ಯ ವಾಲ್ಟ್ ಅನ್ನು ಬಳಸಿದ್ದೇನೆ.
- [ ] ನಾನು RBAC/ಅನುಮತಿಗಳನ್ನು ಕನಿಷ್ಠ ಅನುಮತಿಗಳಿಗೆ ಸಂಕುಚಿತಗೊಳಿಸಿದ್ದೇನೆ.
- [ ] ಅನ್ವಯಿಸುವ ಮೊದಲು, ನಾನು ಸರಿಯಾದ ಸಂದರ್ಭದಲ್ಲಿ ಮತ್ತು --ಡ್ರೈ-ರನ್/ಡಿಫ್ ಔಟ್ಪುಟ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಿದ್ದೇನೆ.