ಹ್ಯಾಶಿಕಾರ್ಪ್ ಕಾನ್ಸುಲ್‌ನ ಕುಬರ್ನೆಟ್ಸ್ ದೃಢೀಕರಣದ ಪರಿಚಯ

ಹ್ಯಾಶಿಕಾರ್ಪ್ ಕಾನ್ಸುಲ್‌ನ ಕುಬರ್ನೆಟ್ಸ್ ದೃಢೀಕರಣದ ಪರಿಚಯ

ಅದು ಸರಿ, ಬಿಡುಗಡೆಯ ನಂತರ ಹ್ಯಾಶಿಕಾರ್ಪ್ ಕಾನ್ಸುಲ್ 1.5.0 ಮೇ 2019 ರ ಆರಂಭದಲ್ಲಿ, ಕಾನ್ಸುಲ್‌ನಲ್ಲಿ ನೀವು ಸ್ಥಳೀಯವಾಗಿ ಕುಬರ್ನೆಟ್ಸ್‌ನಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಸೇವೆಗಳನ್ನು ಅಧಿಕೃತಗೊಳಿಸಬಹುದು.

ಈ ಟ್ಯುಟೋರಿಯಲ್ ನಲ್ಲಿ ನಾವು ಹಂತ ಹಂತವಾಗಿ ರಚಿಸುತ್ತೇವೆ ಪಿಓಸಿ (ಪರಿಕಲ್ಪನೆಯ ಪುರಾವೆ, PoC) ಈ ಹೊಸ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ನೀವು Kubernetes ಮತ್ತು Hashicorp ನ ಕಾನ್ಸುಲ್‌ನ ಮೂಲಭೂತ ಜ್ಞಾನವನ್ನು ಹೊಂದಿರುತ್ತೀರಿ ಎಂದು ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ. ನೀವು ಯಾವುದೇ ಕ್ಲೌಡ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅಥವಾ ಆನ್-ಆವರಣದ ಪರಿಸರವನ್ನು ಬಳಸಬಹುದಾದರೂ, ಈ ಟ್ಯುಟೋರಿಯಲ್ ನಲ್ಲಿ ನಾವು Google ನ ಕ್ಲೌಡ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅನ್ನು ಬಳಸುತ್ತೇವೆ.

ಅವಲೋಕನ

ನಾವು ಹೋದರೆ ಅದರ ದೃಢೀಕರಣ ವಿಧಾನದ ಕುರಿತು ಕಾನ್ಸುಲ್ ದಸ್ತಾವೇಜನ್ನು, ನಾವು ಅದರ ಉದ್ದೇಶ ಮತ್ತು ಬಳಕೆಯ ಪ್ರಕರಣದ ತ್ವರಿತ ಅವಲೋಕನವನ್ನು ಪಡೆಯುತ್ತೇವೆ, ಜೊತೆಗೆ ಕೆಲವು ತಾಂತ್ರಿಕ ವಿವರಗಳು ಮತ್ತು ತರ್ಕದ ಸಾಮಾನ್ಯ ಅವಲೋಕನವನ್ನು ಪಡೆಯುತ್ತೇವೆ. ಮುಂದುವರಿಯುವ ಮೊದಲು ಒಮ್ಮೆಯಾದರೂ ಅದನ್ನು ಓದಲು ನಾನು ಹೆಚ್ಚು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ, ಏಕೆಂದರೆ ನಾನು ಈಗ ಎಲ್ಲವನ್ನೂ ವಿವರಿಸುತ್ತೇನೆ ಮತ್ತು ಅಗಿಯುತ್ತೇನೆ.

ಹ್ಯಾಶಿಕಾರ್ಪ್ ಕಾನ್ಸುಲ್‌ನ ಕುಬರ್ನೆಟ್ಸ್ ದೃಢೀಕರಣದ ಪರಿಚಯ

ರೇಖಾಚಿತ್ರ 1: ಕಾನ್ಸುಲ್ ಅಧಿಕಾರ ವಿಧಾನದ ಅಧಿಕೃತ ಅವಲೋಕನ

ಒಳಗೆ ನೋಡೋಣ ನಿರ್ದಿಷ್ಟ ಕುಬರ್ನೆಟ್ಸ್ ಅಧಿಕಾರ ವಿಧಾನಕ್ಕಾಗಿ ದಾಖಲಾತಿ.

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

ನಾವು ನಮ್ಮ POC ಅನ್ನು ರಚಿಸುವ ಮೊದಲು, ಕಾನ್ಸುಲ್ ಅವರ ಅಧಿಕೃತ ವಿಧಾನಗಳ (ರೇಖಾಚಿತ್ರ 1) ಅವಲೋಕನಕ್ಕೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ಅದನ್ನು ಕುಬರ್ನೆಟ್ಸ್ ಸಂದರ್ಭದಲ್ಲಿ ಪರಿಷ್ಕರಿಸೋಣ.

ವಾಸ್ತುಶಿಲ್ಪ

ಈ ಟ್ಯುಟೋರಿಯಲ್ ನಲ್ಲಿ, ನಾವು ಕಾನ್ಸುಲ್ ಸರ್ವರ್ ಅನ್ನು ಪ್ರತ್ಯೇಕ ಗಣಕದಲ್ಲಿ ರಚಿಸುತ್ತೇವೆ ಅದು ಕಾನ್ಸುಲ್ ಕ್ಲೈಂಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿದ ಕುಬರ್ನೆಟ್ಸ್ ಕ್ಲಸ್ಟರ್‌ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುತ್ತದೆ. ನಾವು ನಂತರ ನಮ್ಮ ನಕಲಿ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪಾಡ್‌ನಲ್ಲಿ ರಚಿಸುತ್ತೇವೆ ಮತ್ತು ನಮ್ಮ ಕಾನ್ಸುಲ್ ಕೀ/ಮೌಲ್ಯ ಅಂಗಡಿಯಿಂದ ಓದಲು ನಮ್ಮ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾದ ಅಧಿಕಾರ ವಿಧಾನವನ್ನು ಬಳಸುತ್ತೇವೆ.

ಕೆಳಗಿನ ರೇಖಾಚಿತ್ರವು ಈ ಟ್ಯುಟೋರಿಯಲ್‌ನಲ್ಲಿ ನಾವು ರಚಿಸುತ್ತಿರುವ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ವಿವರಿಸುತ್ತದೆ, ಜೊತೆಗೆ ಅಧಿಕಾರ ವಿಧಾನದ ಹಿಂದಿನ ತರ್ಕವನ್ನು ವಿವರಿಸುತ್ತದೆ, ಅದನ್ನು ನಂತರ ವಿವರಿಸಲಾಗುವುದು.

ಹ್ಯಾಶಿಕಾರ್ಪ್ ಕಾನ್ಸುಲ್‌ನ ಕುಬರ್ನೆಟ್ಸ್ ದೃಢೀಕರಣದ ಪರಿಚಯ

ರೇಖಾಚಿತ್ರ 2: ಕುಬರ್ನೆಟ್ಸ್ ದೃಢೀಕರಣ ವಿಧಾನದ ಅವಲೋಕನ

ತ್ವರಿತ ಟಿಪ್ಪಣಿ: ಇದು ಕೆಲಸ ಮಾಡಲು ಕಾನ್ಸುಲ್ ಸರ್ವರ್ ಕುಬರ್ನೆಟ್ಸ್ ಕ್ಲಸ್ಟರ್‌ನ ಹೊರಗೆ ವಾಸಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. ಆದರೆ ಹೌದು, ಅವನು ಅದನ್ನು ಈ ರೀತಿ ಮಾಡಬಹುದು.

ಆದ್ದರಿಂದ, ಕಾನ್ಸುಲ್ ಅವಲೋಕನ ರೇಖಾಚಿತ್ರವನ್ನು (ರೇಖಾಚಿತ್ರ 1) ತೆಗೆದುಕೊಂಡು ಅದಕ್ಕೆ ಕುಬರ್ನೆಟ್ಸ್ ಅನ್ನು ಅನ್ವಯಿಸುವುದರಿಂದ, ನಾವು ಮೇಲಿನ ರೇಖಾಚಿತ್ರವನ್ನು ಪಡೆಯುತ್ತೇವೆ (ರೇಖಾಚಿತ್ರ 2), ಮತ್ತು ಇಲ್ಲಿ ತರ್ಕವು ಈ ಕೆಳಗಿನಂತಿರುತ್ತದೆ:

  1. ಪ್ರತಿ ಪಾಡ್‌ಗೆ ಒಂದು ಸೇವಾ ಖಾತೆಯನ್ನು ಲಗತ್ತಿಸಲಾಗಿದೆ, ಇದು ಕುಬರ್ನೆಟ್ಸ್‌ನಿಂದ ರಚಿಸಲ್ಪಟ್ಟ ಮತ್ತು ತಿಳಿದಿರುವ JWT ಟೋಕನ್ ಅನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಈ ಟೋಕನ್ ಅನ್ನು ಡೀಫಾಲ್ಟ್ ಆಗಿ ಪಾಡ್‌ಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ.
  2. ಪಾಡ್ ಒಳಗೆ ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅಥವಾ ಸೇವೆಯು ನಮ್ಮ ಕಾನ್ಸುಲ್ ಕ್ಲೈಂಟ್‌ಗೆ ಲಾಗಿನ್ ಆಜ್ಞೆಯನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ. ಲಾಗಿನ್ ವಿನಂತಿಯು ನಮ್ಮ ಟೋಕನ್ ಮತ್ತು ಹೆಸರನ್ನು ಸಹ ಒಳಗೊಂಡಿರುತ್ತದೆ ವಿಶೇಷವಾಗಿ ರಚಿಸಲಾಗಿದೆ ಅಧಿಕಾರ ವಿಧಾನ (ಕುಬರ್ನೆಟ್ಸ್ ಪ್ರಕಾರ). ಈ ಹಂತ #2 ಕಾನ್ಸುಲ್ ರೇಖಾಚಿತ್ರದ (ಸ್ಕೀಮ್ 1) ಹಂತ 1 ಗೆ ಅನುರೂಪವಾಗಿದೆ.
  3. ನಮ್ಮ ಕಾನ್ಸಲ್ ಕ್ಲೈಂಟ್ ನಂತರ ಈ ವಿನಂತಿಯನ್ನು ನಮ್ಮ ಕಾನ್ಸಲ್ ಸರ್ವರ್‌ಗೆ ರವಾನಿಸುತ್ತಾರೆ.
  4. ಮ್ಯಾಜಿಕ್! ಇಲ್ಲಿಯೇ ಕಾನ್ಸುಲ್ ಸರ್ವರ್ ವಿನಂತಿಯ ದೃಢೀಕರಣವನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ, ವಿನಂತಿಯ ಗುರುತಿನ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು ಯಾವುದೇ ಸಂಬಂಧಿತ ಪೂರ್ವನಿರ್ಧರಿತ ನಿಯಮಗಳೊಂದಿಗೆ ಹೋಲಿಸುತ್ತದೆ. ಇದನ್ನು ವಿವರಿಸಲು ಮತ್ತೊಂದು ರೇಖಾಚಿತ್ರವನ್ನು ಕೆಳಗೆ ನೀಡಲಾಗಿದೆ. ಈ ಹಂತವು ಕಾನ್ಸುಲ್ ಅವಲೋಕನ ರೇಖಾಚಿತ್ರದ (ರೇಖಾಚಿತ್ರ 3) 4, 5 ಮತ್ತು 1 ಹಂತಗಳಿಗೆ ಅನುರೂಪವಾಗಿದೆ.
  5. ವಿನಂತಿಸಿದವರ ಗುರುತಿನ ಬಗ್ಗೆ ನಮ್ಮ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ದೃಢೀಕರಣ ವಿಧಾನದ ನಿಯಮಗಳ ಪ್ರಕಾರ (ನಾವು ವ್ಯಾಖ್ಯಾನಿಸಿರುವ) ಅನುಮತಿಗಳೊಂದಿಗೆ ನಮ್ಮ ಕಾನ್ಸುಲ್ ಸರ್ವರ್ ಕಾನ್ಸಲ್ ಟೋಕನ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ. ನಂತರ ಅದು ಆ ಟೋಕನ್ ಅನ್ನು ಹಿಂದಕ್ಕೆ ಕಳುಹಿಸುತ್ತದೆ. ಇದು ಕಾನ್ಸುಲ್ ರೇಖಾಚಿತ್ರದ (ರೇಖಾಚಿತ್ರ 6) ಹಂತ 1 ಗೆ ಅನುರೂಪವಾಗಿದೆ.
  6. ನಮ್ಮ ಕಾನ್ಸುಲ್ ಕ್ಲೈಂಟ್ ವಿನಂತಿಸುವ ಅಪ್ಲಿಕೇಶನ್ ಅಥವಾ ಸೇವೆಗೆ ಟೋಕನ್ ಅನ್ನು ರವಾನಿಸುತ್ತದೆ.

ಟೋಕನ್‌ನ ಸವಲತ್ತುಗಳಿಂದ ನಿರ್ಧರಿಸಲ್ಪಟ್ಟಂತೆ ನಮ್ಮ ಕಾನ್ಸುಲ್ ಡೇಟಾದೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅಥವಾ ಸೇವೆಯು ಈಗ ಈ ಕಾನ್ಸಲ್ ಟೋಕನ್ ಅನ್ನು ಬಳಸಬಹುದು.

ಮ್ಯಾಜಿಕ್ ಬಹಿರಂಗವಾಗಿದೆ!

ಟೋಪಿಯಿಂದ ಹೊರಬರುವ ಮೊಲದಿಂದ ಸಂತೋಷವಾಗದ ಮತ್ತು ಅದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ತಿಳಿದುಕೊಳ್ಳಲು ಬಯಸುವವರಿಗೆ ... "ಎಷ್ಟು ಆಳವಾಗಿದೆ ಎಂದು ನಾನು ನಿಮಗೆ ತೋರಿಸುತ್ತೇನೆ. ಮೊಲದ ರಂದ್ರ».

ಮೊದಲೇ ಹೇಳಿದಂತೆ, ನಮ್ಮ "ಮ್ಯಾಜಿಕ್" ಹಂತ (ಚಿತ್ರ 2: ಹಂತ 4) ಅಲ್ಲಿ ಕಾನ್ಸಲ್ ಸರ್ವರ್ ವಿನಂತಿಯನ್ನು ದೃಢೀಕರಿಸುತ್ತದೆ, ವಿನಂತಿಯ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು ಯಾವುದೇ ಸಂಬಂಧಿತ ಪೂರ್ವನಿರ್ಧರಿತ ನಿಯಮಗಳಿಗೆ ಹೋಲಿಸುತ್ತದೆ. ಈ ಹಂತವು ಕಾನ್ಸುಲ್ ಅವಲೋಕನ ರೇಖಾಚಿತ್ರದ (ರೇಖಾಚಿತ್ರ 3) 4, 5 ಮತ್ತು 1 ಹಂತಗಳಿಗೆ ಅನುರೂಪವಾಗಿದೆ. ಕೆಳಗೆ ಒಂದು ರೇಖಾಚಿತ್ರ (ರೇಖಾಚಿತ್ರ 3), ಇದರ ಉದ್ದೇಶವು ನಿಜವಾಗಿ ಏನಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ತೋರಿಸುವುದು ಹುಡ್ ಅಡಿಯಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಕುಬರ್ನೆಟ್ಸ್ ಅಧಿಕಾರ ವಿಧಾನ.

ಹ್ಯಾಶಿಕಾರ್ಪ್ ಕಾನ್ಸುಲ್‌ನ ಕುಬರ್ನೆಟ್ಸ್ ದೃಢೀಕರಣದ ಪರಿಚಯ

ರೇಖಾಚಿತ್ರ 3: ಮ್ಯಾಜಿಕ್ ಬಹಿರಂಗವಾಗಿದೆ!

  1. ಆರಂಭಿಕ ಹಂತವಾಗಿ, ನಮ್ಮ ಕಾನ್ಸುಲ್ ಕ್ಲೈಂಟ್ ನಮ್ಮ ಕಾನ್ಸುಲ್ ಸರ್ವರ್‌ಗೆ ಲಾಗಿನ್ ವಿನಂತಿಯನ್ನು ಕುಬರ್ನೆಟ್ಸ್ ಖಾತೆ ಟೋಕನ್ ಮತ್ತು ಮೊದಲು ರಚಿಸಲಾದ ದೃಢೀಕರಣ ವಿಧಾನದ ನಿರ್ದಿಷ್ಟ ನಿದರ್ಶನದ ಹೆಸರಿನೊಂದಿಗೆ ಫಾರ್ವರ್ಡ್ ಮಾಡುತ್ತಾರೆ. ಈ ಹಂತವು ಹಿಂದಿನ ಸರ್ಕ್ಯೂಟ್ ವಿವರಣೆಯಲ್ಲಿ ಹಂತ 3 ಗೆ ಅನುರೂಪವಾಗಿದೆ.
  2. ಈಗ ಕಾನ್ಸುಲ್ ಸರ್ವರ್ (ಅಥವಾ ನಾಯಕ) ಸ್ವೀಕರಿಸಿದ ಟೋಕನ್‌ನ ದೃಢೀಕರಣವನ್ನು ಪರಿಶೀಲಿಸಬೇಕಾಗಿದೆ. ಆದ್ದರಿಂದ, ಇದು ಕುಬರ್ನೆಟ್ಸ್ ಕ್ಲಸ್ಟರ್ ಅನ್ನು (ಕಾನ್ಸುಲ್ ಕ್ಲೈಂಟ್ ಮೂಲಕ) ಸಮಾಲೋಚಿಸುತ್ತದೆ ಮತ್ತು ಸೂಕ್ತ ಅನುಮತಿಗಳೊಂದಿಗೆ, ಟೋಕನ್ ಅಸಲಿಯೇ ಮತ್ತು ಅದು ಯಾರಿಗೆ ಸೇರಿದೆ ಎಂಬುದನ್ನು ನಾವು ಕಂಡುಕೊಳ್ಳುತ್ತೇವೆ.
  3. ಮೌಲ್ಯೀಕರಿಸಿದ ವಿನಂತಿಯನ್ನು ನಂತರ ಕಾನ್ಸುಲ್ ನಾಯಕನಿಗೆ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಕಾನ್ಸುಲ್ ಸರ್ವರ್ ಲಾಗಿನ್ ವಿನಂತಿಯಿಂದ (ಮತ್ತು ಕುಬರ್ನೆಟ್ಸ್ ಪ್ರಕಾರ) ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಹೆಸರಿನೊಂದಿಗೆ ಅಧಿಕೃತ ವಿಧಾನದ ಉದಾಹರಣೆಯನ್ನು ಹುಡುಕುತ್ತದೆ.
  4. ಕಾನ್ಸಲ್ ಲೀಡರ್ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ದೃಢೀಕರಣ ವಿಧಾನದ ನಿದರ್ಶನವನ್ನು (ಕಂಡುಬಂದರೆ) ಗುರುತಿಸುತ್ತಾರೆ ಮತ್ತು ಅದಕ್ಕೆ ಲಗತ್ತಿಸಲಾದ ಬೈಂಡಿಂಗ್ ನಿಯಮಗಳ ಗುಂಪನ್ನು ಓದುತ್ತಾರೆ. ಇದು ನಂತರ ಈ ನಿಯಮಗಳನ್ನು ಓದುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಪರಿಶೀಲಿಸಿದ ಗುರುತಿನ ಗುಣಲಕ್ಷಣಗಳಿಗೆ ಹೋಲಿಸುತ್ತದೆ.
  5. TA-dah! ಹಿಂದಿನ ಸರ್ಕ್ಯೂಟ್ ವಿವರಣೆಯಲ್ಲಿ 5 ನೇ ಹಂತಕ್ಕೆ ಹೋಗೋಣ.

ನಿಯಮಿತ ವರ್ಚುವಲ್ ಗಣಕದಲ್ಲಿ ಕಾನ್ಸುಲ್-ಸರ್ವರ್ ಅನ್ನು ರನ್ ಮಾಡಿ

ಇಂದಿನಿಂದ, ಪೂರ್ಣ ವಾಕ್ಯ ವಿವರಣೆಗಳಿಲ್ಲದೆ, ಸಾಮಾನ್ಯವಾಗಿ ಬುಲೆಟ್ ಪಾಯಿಂಟ್‌ಗಳಲ್ಲಿ ಈ POC ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ನಾನು ಹೆಚ್ಚಾಗಿ ಸೂಚನೆಗಳನ್ನು ನೀಡುತ್ತೇನೆ. ಅಲ್ಲದೆ, ಮೊದಲೇ ಗಮನಿಸಿದಂತೆ, ಎಲ್ಲಾ ಮೂಲಸೌಕರ್ಯಗಳನ್ನು ರಚಿಸಲು ನಾನು GCP ಅನ್ನು ಬಳಸುತ್ತೇನೆ, ಆದರೆ ನೀವು ಬೇರೆಲ್ಲಿಯಾದರೂ ಅದೇ ಮೂಲಸೌಕರ್ಯವನ್ನು ರಚಿಸಬಹುದು.

  • ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಪ್ರಾರಂಭಿಸಿ (ಉದಾಹರಣೆಗೆ / ಸರ್ವರ್).

ಹ್ಯಾಶಿಕಾರ್ಪ್ ಕಾನ್ಸುಲ್‌ನ ಕುಬರ್ನೆಟ್ಸ್ ದೃಢೀಕರಣದ ಪರಿಚಯ

  • ಫೈರ್‌ವಾಲ್‌ಗಾಗಿ ನಿಯಮವನ್ನು ರಚಿಸಿ (AWS ನಲ್ಲಿ ಭದ್ರತಾ ಗುಂಪು):
  • ನಿಯಮ ಮತ್ತು ನೆಟ್ವರ್ಕ್ ಟ್ಯಾಗ್ ಎರಡಕ್ಕೂ ಒಂದೇ ಯಂತ್ರದ ಹೆಸರನ್ನು ನಿಯೋಜಿಸಲು ನಾನು ಇಷ್ಟಪಡುತ್ತೇನೆ, ಈ ಸಂದರ್ಭದಲ್ಲಿ "skywiz-consul-server-poc".
  • ನಿಮ್ಮ ಸ್ಥಳೀಯ ಕಂಪ್ಯೂಟರ್‌ನ IP ವಿಳಾಸವನ್ನು ಹುಡುಕಿ ಮತ್ತು ಅದನ್ನು ಮೂಲ IP ವಿಳಾಸಗಳ ಪಟ್ಟಿಗೆ ಸೇರಿಸಿ ಇದರಿಂದ ನಾವು ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ (UI) ಅನ್ನು ಪ್ರವೇಶಿಸಬಹುದು.
  • UI ಗಾಗಿ ಪೋರ್ಟ್ 8500 ತೆರೆಯಿರಿ. ರಚಿಸಿ ಕ್ಲಿಕ್ ಮಾಡಿ. ನಾವು ಈ ಫೈರ್‌ವಾಲ್ ಅನ್ನು ಶೀಘ್ರದಲ್ಲೇ ಬದಲಾಯಿಸುತ್ತೇವೆ [ಲಿಂಕ್].
  • ನಿದರ್ಶನಕ್ಕೆ ಫೈರ್‌ವಾಲ್ ನಿಯಮವನ್ನು ಸೇರಿಸಿ. ಕಾನ್ಸುಲ್ ಸರ್ವರ್‌ನಲ್ಲಿ VM ಡ್ಯಾಶ್‌ಬೋರ್ಡ್‌ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ನೆಟ್‌ವರ್ಕ್ ಟ್ಯಾಗ್‌ಗಳ ಕ್ಷೇತ್ರಕ್ಕೆ "skywiz-consul-server-poc" ಅನ್ನು ಸೇರಿಸಿ. ಉಳಿಸು ಕ್ಲಿಕ್ ಮಾಡಿ.

ಹ್ಯಾಶಿಕಾರ್ಪ್ ಕಾನ್ಸುಲ್‌ನ ಕುಬರ್ನೆಟ್ಸ್ ದೃಢೀಕರಣದ ಪರಿಚಯ

  • ವರ್ಚುವಲ್ ಗಣಕದಲ್ಲಿ ಕಾನ್ಸುಲ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ, ಇಲ್ಲಿ ಪರಿಶೀಲಿಸಿ. ನಿಮಗೆ ಕಾನ್ಸುಲ್ ಆವೃತ್ತಿ ≥ 1.5 ಅಗತ್ಯವಿದೆ ಎಂದು ನೆನಪಿಡಿ [ಲಿಂಕ್]
  • ಒಂದೇ ನೋಡ್ ಕಾನ್ಸುಲ್ ಅನ್ನು ರಚಿಸೋಣ - ಸಂರಚನೆಯು ಈ ಕೆಳಗಿನಂತಿರುತ್ತದೆ.

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

  • ಕಾನ್ಸುಲ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಮತ್ತು 3 ನೋಡ್‌ಗಳ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಹೊಂದಿಸಲು ಹೆಚ್ಚು ವಿವರವಾದ ಮಾರ್ಗದರ್ಶಿಗಾಗಿ, ನೋಡಿ ಇಲ್ಲಿ.
  • ಕೆಳಗಿನಂತೆ /etc/consul.d/agent.json ಫೈಲ್ ಅನ್ನು ರಚಿಸಿ [ಲಿಂಕ್]:

### /etc/consul.d/agent.json
{
 "acl" : {
 "enabled": true,
 "default_policy": "deny",
 "enable_token_persistence": true
 }
}

  • ನಮ್ಮ ಕಾನ್ಸುಲ್ ಸರ್ವರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ:

consul agent 
-server 
-ui 
-client 0.0.0.0 
-data-dir=/var/lib/consul 
-bootstrap-expect=1 
-config-dir=/etc/consul.d

  • ನೀವು ಔಟ್‌ಪುಟ್‌ನ ಗುಂಪನ್ನು ನೋಡಬೇಕು ಮತ್ತು "... ಅಪ್‌ಡೇಟ್ ಅನ್ನು ACL ಗಳಿಂದ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ."
  • ಕಾನ್ಸುಲ್ ಸರ್ವರ್‌ನ ಬಾಹ್ಯ IP ವಿಳಾಸವನ್ನು ಹುಡುಕಿ ಮತ್ತು ಪೋರ್ಟ್ 8500 ನಲ್ಲಿ ಈ IP ವಿಳಾಸದೊಂದಿಗೆ ಬ್ರೌಸರ್ ಅನ್ನು ತೆರೆಯಿರಿ. UI ತೆರೆಯುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
  • ಕೀ/ಮೌಲ್ಯ ಜೋಡಿಯನ್ನು ಸೇರಿಸಲು ಪ್ರಯತ್ನಿಸಿ. ತಪ್ಪೇನಿರಬೇಕು. ಏಕೆಂದರೆ ನಾವು ಕಾನ್ಸುಲ್ ಸರ್ವರ್ ಅನ್ನು ACL ನೊಂದಿಗೆ ಲೋಡ್ ಮಾಡಿದ್ದೇವೆ ಮತ್ತು ಎಲ್ಲಾ ನಿಯಮಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದೇವೆ.
  • ಕಾನ್ಸುಲ್ ಸರ್ವರ್‌ನಲ್ಲಿ ನಿಮ್ಮ ಶೆಲ್‌ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪ್ರಾರಂಭಿಸಿ ಅಥವಾ ಅದನ್ನು ಚಾಲನೆ ಮಾಡಲು ಮತ್ತು ಕೆಳಗಿನವುಗಳನ್ನು ನಮೂದಿಸಿ:

consul acl bootstrap

  • "SecretID" ಮೌಲ್ಯವನ್ನು ಹುಡುಕಿ ಮತ್ತು UI ಗೆ ಹಿಂತಿರುಗಿ. ACL ಟ್ಯಾಬ್‌ನಲ್ಲಿ, ನೀವು ಇದೀಗ ನಕಲಿಸಿದ ಟೋಕನ್‌ನ ರಹಸ್ಯ ID ಅನ್ನು ನಮೂದಿಸಿ. SecretID ಅನ್ನು ಬೇರೆಲ್ಲಿಯಾದರೂ ನಕಲಿಸಿ, ನಮಗೆ ಅದು ನಂತರ ಬೇಕಾಗುತ್ತದೆ.
  • ಈಗ ಕೀ/ಮೌಲ್ಯ ಜೋಡಿಯನ್ನು ಸೇರಿಸಿ. ಈ POC ಗಾಗಿ, ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಸೇರಿಸಿ: ಕೀ: “ಕಸ್ಟಮ್-ಎನ್‌ಎಸ್/ಟೆಸ್ಟ್_ಕೀ”, ಮೌಲ್ಯ: “ನಾನು ಕಸ್ಟಮ್-ಎನ್‌ಎಸ್ ಫೋಲ್ಡರ್‌ನಲ್ಲಿದ್ದೇನೆ!”

ಡೀಮನ್‌ಸೆಟ್‌ನಂತೆ ಕಾನ್ಸುಲ್ ಕ್ಲೈಂಟ್‌ನೊಂದಿಗೆ ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಾಗಿ ಕುಬರ್ನೆಟ್ಸ್ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ

  • K8s (ಕುಬರ್ನೆಟ್ಸ್) ಕ್ಲಸ್ಟರ್ ಅನ್ನು ರಚಿಸಿ. ವೇಗವಾದ ಪ್ರವೇಶಕ್ಕಾಗಿ ನಾವು ಸರ್ವರ್‌ನ ಅದೇ ವಲಯದಲ್ಲಿ ಅದನ್ನು ರಚಿಸುತ್ತೇವೆ ಮತ್ತು ಆಂತರಿಕ IP ವಿಳಾಸಗಳೊಂದಿಗೆ ಸುಲಭವಾಗಿ ಸಂಪರ್ಕಿಸಲು ನಾವು ಅದೇ ಸಬ್‌ನೆಟ್ ಅನ್ನು ಬಳಸಬಹುದು. ನಾವು ಇದನ್ನು "ಸ್ಕೈವಿಜ್-ಅಪ್ಲಿಕೇಶನ್-ವಿತ್-ಕನ್ಸಲ್-ಕ್ಲೈಂಟ್-ಪೋಕ್" ಎಂದು ಕರೆಯುತ್ತೇವೆ.

ಹ್ಯಾಶಿಕಾರ್ಪ್ ಕಾನ್ಸುಲ್‌ನ ಕುಬರ್ನೆಟ್ಸ್ ದೃಢೀಕರಣದ ಪರಿಚಯ

  • ಒಂದು ಕಡೆ ಟಿಪ್ಪಣಿಯಾಗಿ, ಕಾನ್ಸುಲ್ ಕನೆಕ್ಟ್‌ನೊಂದಿಗೆ POC ಕಾನ್ಸುಲ್ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಹೊಂದಿಸುವಾಗ ನಾನು ಕಂಡ ಉತ್ತಮ ಟ್ಯುಟೋರಿಯಲ್ ಇಲ್ಲಿದೆ.
  • ನಾವು ವಿಸ್ತೃತ ಮೌಲ್ಯಗಳ ಫೈಲ್‌ನೊಂದಿಗೆ ಹ್ಯಾಶಿಕಾರ್ಪ್ ಹೆಲ್ಮ್ ಚಾರ್ಟ್ ಅನ್ನು ಸಹ ಬಳಸುತ್ತೇವೆ.
  • ಹೆಲ್ಮ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ ಮತ್ತು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ. ಸಂರಚನಾ ಹಂತಗಳು:

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

  • ಅದು ಚಲಾಯಿಸಲು ಪ್ರಯತ್ನಿಸಿದಾಗ, ಅದಕ್ಕೆ ಕಾನ್ಸುಲ್ ಸರ್ವರ್‌ಗೆ ಅನುಮತಿಗಳು ಬೇಕಾಗುತ್ತವೆ, ಆದ್ದರಿಂದ ಅವುಗಳನ್ನು ಸೇರಿಸೋಣ.
  • ಕ್ಲಸ್ಟರ್ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್‌ನಲ್ಲಿರುವ "ಪಾಡ್ ವಿಳಾಸ ಶ್ರೇಣಿ" ಅನ್ನು ಗಮನಿಸಿ ಮತ್ತು ನಮ್ಮ "skywiz-consul-server-poc" ಫೈರ್‌ವಾಲ್ ನಿಯಮಕ್ಕೆ ಹಿಂತಿರುಗಿ.
  • IP ವಿಳಾಸಗಳ ಪಟ್ಟಿಗೆ ಪಾಡ್‌ಗಾಗಿ ವಿಳಾಸ ಶ್ರೇಣಿಯನ್ನು ಸೇರಿಸಿ ಮತ್ತು 8301 ಮತ್ತು 8300 ಪೋರ್ಟ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ.

ಹ್ಯಾಶಿಕಾರ್ಪ್ ಕಾನ್ಸುಲ್‌ನ ಕುಬರ್ನೆಟ್ಸ್ ದೃಢೀಕರಣದ ಪರಿಚಯ

  • ಕಾನ್ಸುಲ್ UI ಗೆ ಹೋಗಿ ಮತ್ತು ಕೆಲವು ನಿಮಿಷಗಳ ನಂತರ ನೋಡ್‌ಗಳ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ನಮ್ಮ ಕ್ಲಸ್ಟರ್ ಕಾಣಿಸಿಕೊಳ್ಳುವುದನ್ನು ನೀವು ನೋಡುತ್ತೀರಿ.

ಹ್ಯಾಶಿಕಾರ್ಪ್ ಕಾನ್ಸುಲ್‌ನ ಕುಬರ್ನೆಟ್ಸ್ ದೃಢೀಕರಣದ ಪರಿಚಯ

ಕುಬರ್ನೆಟ್ಸ್ ಜೊತೆ ಕಾನ್ಸಲ್ ಅನ್ನು ಸಂಯೋಜಿಸುವ ಮೂಲಕ ದೃಢೀಕರಣ ವಿಧಾನವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು

  • ಕಾನ್ಸುಲ್ ಸರ್ವರ್ ಶೆಲ್‌ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ನೀವು ಮೊದಲು ಉಳಿಸಿದ ಟೋಕನ್ ಅನ್ನು ರಫ್ತು ಮಾಡಿ:

export CONSUL_HTTP_TOKEN=<SecretID>

  • ದೃಢೀಕರಣ ವಿಧಾನದ ನಿದರ್ಶನವನ್ನು ರಚಿಸಲು ನಮ್ಮ ಕುಬರ್ನೆಟ್ಸ್ ಕ್ಲಸ್ಟರ್‌ನಿಂದ ನಮಗೆ ಮಾಹಿತಿಯ ಅಗತ್ಯವಿದೆ:
  • ಕುಬರ್ನೆಟ್ಸ್-ಹೋಸ್ಟ್

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:

  • ಟೋಕನ್ ಬೇಸ್64 ಎನ್ಕೋಡ್ ಆಗಿದೆ, ಆದ್ದರಿಂದ ನಿಮ್ಮ ಮೆಚ್ಚಿನ ಉಪಕರಣವನ್ನು ಬಳಸಿಕೊಂಡು ಅದನ್ನು ಡೀಕ್ರಿಪ್ಟ್ ಮಾಡಿ [ಲಿಂಕ್]
  • 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>"

  • ಮುಂದೆ ನಾವು ನಿಯಮವನ್ನು ರಚಿಸಬೇಕು ಮತ್ತು ಅದನ್ನು ಹೊಸ ಪಾತ್ರಕ್ಕೆ ಲಗತ್ತಿಸಬೇಕು. ಈ ಭಾಗಕ್ಕಾಗಿ ನೀವು ಕಾನ್ಸುಲ್ 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"'

ಕೊನೆಯದಾಗಿ ಸಂರಚನೆಗಳು

ಪ್ರವೇಶ ಹಕ್ಕುಗಳು

  • ಪ್ರವೇಶ ಹಕ್ಕುಗಳನ್ನು ರಚಿಸಿ. K8s ಸೇವಾ ಖಾತೆಯ ಟೋಕನ್‌ನ ಗುರುತನ್ನು ಪರಿಶೀಲಿಸಲು ಮತ್ತು ಗುರುತಿಸಲು ನಾವು ಕಾನ್ಸಲ್ ಅನುಮತಿಯನ್ನು ನೀಡಬೇಕಾಗಿದೆ.
  • ಫೈಲ್‌ಗೆ ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಬರೆಯಿರಿ [ಲಿಂಕ್]:

###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

ಕಾನ್ಸಲ್ ಕ್ಲೈಂಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ

  • ಗಮನಿಸಿದಂತೆ ಇಲ್ಲಿಡೇಮನ್‌ಸೆಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಹಲವಾರು ಆಯ್ಕೆಗಳಿವೆ, ಆದರೆ ನಾವು ಈ ಕೆಳಗಿನ ಸರಳ ಪರಿಹಾರಕ್ಕೆ ಹೋಗುತ್ತೇವೆ:
  • ಕೆಳಗಿನ ಫೈಲ್ ಅನ್ನು ಅನ್ವಯಿಸಿ [ಲಿಂಕ್].

### 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

  • ನಂತರ ಸಂರಚನಾ ನಕ್ಷೆಯನ್ನು ರಚಿಸಲು ಕೆಳಗಿನ ಬಿಲ್ಟ್‌ಇನ್ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿ [ಲಿಂಕ್]. ನಮ್ಮ ಸೇವೆಯ ಹೆಸರನ್ನು ನಾವು ಉಲ್ಲೇಖಿಸುತ್ತಿದ್ದೇವೆ ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ, ಅಗತ್ಯವಿದ್ದರೆ ಅದನ್ನು ಬದಲಾಯಿಸಿ.

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

ದೃಢೀಕರಣ ವಿಧಾನವನ್ನು ಪರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ

ಈಗ ಮ್ಯಾಜಿಕ್ ಕ್ರಿಯೆಯನ್ನು ನೋಡೋಣ!

  • ಅದೇ ಉನ್ನತ ಮಟ್ಟದ ಕೀಲಿಯೊಂದಿಗೆ ಹಲವಾರು ಪ್ರಮುಖ ಫೋಲ್ಡರ್‌ಗಳನ್ನು ರಚಿಸಿ (ಅಂದರೆ /sample_key) ಮತ್ತು ನಿಮ್ಮ ಆಯ್ಕೆಯ ಮೌಲ್ಯ. ಹೊಸ ಪ್ರಮುಖ ಮಾರ್ಗಗಳಿಗಾಗಿ ಸೂಕ್ತವಾದ ನೀತಿಗಳು ಮತ್ತು ಪಾತ್ರಗಳನ್ನು ರಚಿಸಿ. ನಾವು ನಂತರ ಬೈಂಡಿಂಗ್ ಮಾಡುತ್ತೇವೆ.

ಹ್ಯಾಶಿಕಾರ್ಪ್ ಕಾನ್ಸುಲ್‌ನ ಕುಬರ್ನೆಟ್ಸ್ ದೃಢೀಕರಣದ ಪರಿಚಯ

ಕಸ್ಟಮ್ ನೇಮ್‌ಸ್ಪೇಸ್ ಪರೀಕ್ಷೆ:

  • ನಮ್ಮದೇ ನೇಮ್‌ಸ್ಪೇಸ್ ಅನ್ನು ರಚಿಸೋಣ:

kubectl create namespace custom-ns

  • ನಮ್ಮ ಹೊಸ ನೇಮ್‌ಸ್ಪೇಸ್‌ನಲ್ಲಿ ಪಾಡ್ ಅನ್ನು ರಚಿಸೋಣ. ಪಾಡ್‌ಗಾಗಿ ಸಂರಚನೆಯನ್ನು ಬರೆಯಿರಿ.

###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

  • ಕಂಟೇನರ್ ಚಾಲನೆಯಲ್ಲಿರುವ ನಂತರ, ಅಲ್ಲಿಗೆ ಹೋಗಿ ಮತ್ತು ಕರ್ಲ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ.

kubectl exec poc-ubuntu-custom-ns -n custom-ns -it /bin/bash
apt-get update && apt-get install curl -y

  • ಈಗ ನಾವು ಮೊದಲು ರಚಿಸಿದ ಅಧಿಕಾರ ವಿಧಾನವನ್ನು ಬಳಸಿಕೊಂಡು ಕಾನ್ಸುಲ್‌ಗೆ ಲಾಗಿನ್ ವಿನಂತಿಯನ್ನು ಕಳುಹಿಸುತ್ತೇವೆ [ಲಿಂಕ್].
  • ನಿಮ್ಮ ಸೇವಾ ಖಾತೆಯಿಂದ ನಮೂದಿಸಿದ ಟೋಕನ್ ವೀಕ್ಷಿಸಲು:

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>”

  • ನೀವು "ಮೌಲ್ಯ" ಅನ್ನು ಬೇಸ್ 64 ಡಿಕೋಡ್ ಮಾಡಬಹುದು ಮತ್ತು ಇದು UI ನಲ್ಲಿ ಕಸ್ಟಮ್-ಎನ್‌ಎಸ್/ಟೆಸ್ಟ್_ಕೀಯಲ್ಲಿನ ಮೌಲ್ಯಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ ಎಂದು ನೋಡಬಹುದು. ಈ ಟ್ಯುಟೋರಿಯಲ್ ನಲ್ಲಿ ನೀವು ಮೇಲಿನ ಅದೇ ಮೌಲ್ಯವನ್ನು ಬಳಸಿದ್ದರೆ, ನಿಮ್ಮ ಎನ್ಕೋಡ್ ಮಾಡಲಾದ ಮೌಲ್ಯವು IkknbSBpbiB0aGUgY3VzdG9tLW5zIGZvbGRlciEi ಆಗಿರುತ್ತದೆ.

ಬಳಕೆದಾರ ಸೇವಾ ಖಾತೆ ಪರೀಕ್ಷೆ:

  • ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಕಸ್ಟಮ್ ಸೇವಾ ಖಾತೆಯನ್ನು ರಚಿಸಿ [ಲಿಂಕ್].

kubectl apply -f - <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
 name: custom-sa
EOF

  • ಪಾಡ್‌ಗಾಗಿ ಹೊಸ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ರಚಿಸಿ. ಕಾರ್ಮಿಕರನ್ನು ಉಳಿಸಲು ನಾನು ಕರ್ಲ್ ಸ್ಥಾಪನೆಯನ್ನು ಸೇರಿಸಿದ್ದೇನೆ ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ :)

###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

  • ಅವಕಾಶ ನೀಡಲಾಗಿಲ್ಲ. ಓಹ್, ಸೂಕ್ತವಾದ ಅನುಮತಿಗಳೊಂದಿಗೆ ಹೊಸ ನಿಯಮಗಳನ್ನು ಸೇರಿಸಲು ನಾವು ಮರೆತಿದ್ದೇವೆ, ಈಗ ಅದನ್ನು ಮಾಡೋಣ.

ಮೇಲಿನ ಹಿಂದಿನ ಹಂತಗಳನ್ನು ಪುನರಾವರ್ತಿಸಿ:
ಎ) "ಕಸ್ಟಮ್-ಸಾ/" ಪೂರ್ವಪ್ರತ್ಯಯಕ್ಕಾಗಿ ಒಂದೇ ರೀತಿಯ ನೀತಿಯನ್ನು ರಚಿಸಿ.
ಬಿ) ಪಾತ್ರವನ್ನು ರಚಿಸಿ, ಅದನ್ನು "ಕಸ್ಟಮ್-ಸಾ-ರೋಲ್" ಎಂದು ಕರೆಯಿರಿ
ಸಿ) ಪಾತ್ರಕ್ಕೆ ನೀತಿಯನ್ನು ಲಗತ್ತಿಸಿ.

  • ರೂಲ್-ಬೈಂಡಿಂಗ್ ಅನ್ನು ರಚಿಸಿ (ಕ್ಲೈ/ಎಪಿಐನಿಂದ ಮಾತ್ರ ಸಾಧ್ಯ). ಸೆಲೆಕ್ಟರ್ ಫ್ಲ್ಯಾಗ್‌ನ ವಿಭಿನ್ನ ಅರ್ಥವನ್ನು ಗಮನಿಸಿ.

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" ಕಂಟೈನರ್‌ನಿಂದ ಮತ್ತೆ ಲಾಗಿನ್ ಮಾಡಿ. ಯಶಸ್ಸು!
  • ಕಸ್ಟಮ್-ಸಾ/ ಕೀ ಮಾರ್ಗಕ್ಕೆ ನಮ್ಮ ಪ್ರವೇಶವನ್ನು ಪರಿಶೀಲಿಸಿ.

curl 
consul-ds-client.default.svc.cluster.local/v1/kv/custom-sa/test_key --header “X-Consul-Token: <SecretID>”

  • ಈ ಟೋಕನ್ "ಕಸ್ಟಮ್-ಎನ್ಎಸ್/" ನಲ್ಲಿ kv ಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡುವುದಿಲ್ಲ ಎಂದು ನೀವು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬಹುದು. "ಕಸ್ಟಮ್-ಎಸ್ಎ" ಅನ್ನು "ಕಸ್ಟಮ್-ಎನ್ಎಸ್" ಪೂರ್ವಪ್ರತ್ಯಯದೊಂದಿಗೆ ಬದಲಿಸಿದ ನಂತರ ಮೇಲಿನ ಆಜ್ಞೆಯನ್ನು ಪುನರಾವರ್ತಿಸಿ.
    ಅವಕಾಶ ನೀಡಲಾಗಿಲ್ಲ.

ಮೇಲ್ಪದರದ ಉದಾಹರಣೆ:

  • ಈ ಹಕ್ಕುಗಳೊಂದಿಗೆ ಟೋಕನ್‌ಗೆ ಎಲ್ಲಾ ನಿಯಮ-ಬೈಂಡಿಂಗ್ ಮ್ಯಾಪಿಂಗ್‌ಗಳನ್ನು ಸೇರಿಸಲಾಗುವುದು ಎಂಬುದು ಗಮನಿಸಬೇಕಾದ ಸಂಗತಿ.
  • ನಮ್ಮ ಕಂಟೇನರ್ "poc-ubuntu-custom-sa" ಡೀಫಾಲ್ಟ್ ನೇಮ್‌ಸ್ಪೇಸ್‌ನಲ್ಲಿದೆ - ಆದ್ದರಿಂದ ನಾವು ಅದನ್ನು ಬೇರೆ ನಿಯಮ-ಬೈಂಡಿಂಗ್‌ಗಾಗಿ ಬಳಸೋಣ.
  • ಹಿಂದಿನ ಹಂತಗಳನ್ನು ಪುನರಾವರ್ತಿಸಿ:
    a) “ಡೀಫಾಲ್ಟ್/” ಕೀ ಪೂರ್ವಪ್ರತ್ಯಯಕ್ಕಾಗಿ ಒಂದೇ ರೀತಿಯ ನೀತಿಯನ್ನು ರಚಿಸಿ.
    ಬಿ) ಒಂದು ಪಾತ್ರವನ್ನು ರಚಿಸಿ, ಅದನ್ನು "ಡೀಫಾಲ್ಟ್-ಎನ್ಎಸ್-ರೋಲ್" ಎಂದು ಹೆಸರಿಸಿ
    ಸಿ) ಪಾತ್ರಕ್ಕೆ ನೀತಿಯನ್ನು ಲಗತ್ತಿಸಿ.
  • ರೂಲ್-ಬೈಂಡಿಂಗ್ ಅನ್ನು ರಚಿಸಿ (ಕ್ಲೈ/ಎಪಿಐನಿಂದ ಮಾತ್ರ ಸಾಧ್ಯ)

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" ಕಂಟೇನರ್‌ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು "ಡೀಫಾಲ್ಟ್/" kv ಮಾರ್ಗವನ್ನು ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸಿ.
  • ಅವಕಾಶ ನೀಡಲಾಗಿಲ್ಲ.
    ACL > ಟೋಕನ್‌ಗಳ ಅಡಿಯಲ್ಲಿ UI ನಲ್ಲಿ ಪ್ರತಿ ಟೋಕನ್‌ಗೆ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ರುಜುವಾತುಗಳನ್ನು ನೀವು ವೀಕ್ಷಿಸಬಹುದು. ನೀವು ನೋಡುವಂತೆ, ನಮ್ಮ ಪ್ರಸ್ತುತ ಟೋಕನ್‌ಗೆ ಕೇವಲ ಒಂದು "ಕಸ್ಟಮ್-ಸಾ-ರೋಲ್" ಅನ್ನು ಲಗತ್ತಿಸಲಾಗಿದೆ. ನಾವು ಪ್ರಸ್ತುತ ಬಳಸುತ್ತಿರುವ ಟೋಕನ್ ಅನ್ನು ನಾವು ಲಾಗ್ ಇನ್ ಮಾಡಿದಾಗ ರಚಿಸಲಾಗಿದೆ ಮತ್ತು ಆಗ ಹೊಂದಿಕೆಯಾಗುವ ಒಂದೇ ಒಂದು ನಿಯಮ-ಬೈಂಡಿಂಗ್ ಇತ್ತು. ನಾವು ಮತ್ತೆ ಲಾಗಿನ್ ಆಗಬೇಕು ಮತ್ತು ಹೊಸ ಟೋಕನ್ ಅನ್ನು ಬಳಸಬೇಕು.
  • ನೀವು "ಕಸ್ಟಮ್-ಸಾ/" ಮತ್ತು "ಡೀಫಾಲ್ಟ್/" ಕೆವಿ ಪಥಗಳೆರಡರಿಂದಲೂ ಓದಬಹುದೆಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
    ಯಶಸ್ಸು!
    ಏಕೆಂದರೆ ನಮ್ಮ "poc-ubuntu-custom-sa" "ಕಸ್ಟಮ್-sa" ಮತ್ತು "default-ns" ನಿಯಮ ಬೈಂಡಿಂಗ್‌ಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ.

ತೀರ್ಮಾನಕ್ಕೆ

TTL ಟೋಕನ್ mgmt?

ಈ ಬರವಣಿಗೆಯ ಸಮಯದಲ್ಲಿ, ಈ ಅಧಿಕೃತ ವಿಧಾನದಿಂದ ರಚಿಸಲಾದ ಟೋಕನ್‌ಗಳಿಗೆ TTL ಅನ್ನು ನಿರ್ಧರಿಸಲು ಯಾವುದೇ ಸಂಯೋಜಿತ ಮಾರ್ಗವಿಲ್ಲ. ಕಾನ್ಸುಲ್ ಅಧಿಕಾರದ ಸುರಕ್ಷಿತ ಯಾಂತ್ರೀಕರಣವನ್ನು ಒದಗಿಸಲು ಇದು ಅದ್ಭುತ ಅವಕಾಶವಾಗಿದೆ.

TTL ನೊಂದಿಗೆ ಟೋಕನ್ ಅನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ರಚಿಸಲು ಒಂದು ಆಯ್ಕೆ ಇದೆ:

ಆಶಾದಾಯಕವಾಗಿ ಮುಂದಿನ ದಿನಗಳಲ್ಲಿ ನಾವು ಟೋಕನ್‌ಗಳನ್ನು ಹೇಗೆ ಉತ್ಪಾದಿಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ (ಪ್ರತಿ ನಿಯಮ ಅಥವಾ ಅಧಿಕಾರ ವಿಧಾನ) ಮತ್ತು TTL ಅನ್ನು ಸೇರಿಸಬಹುದು.

ಅಲ್ಲಿಯವರೆಗೆ, ನಿಮ್ಮ ಲಾಜಿಕ್‌ನಲ್ಲಿ ನೀವು ಲಾಗ್‌ಔಟ್ ಎಂಡ್‌ಪಾಯಿಂಟ್ ಅನ್ನು ಬಳಸಬೇಕೆಂದು ಸೂಚಿಸಲಾಗುತ್ತದೆ.

ನಮ್ಮ ಬ್ಲಾಗ್‌ನಲ್ಲಿ ಇತರ ಲೇಖನಗಳನ್ನು ಸಹ ಓದಿ:

ಮೂಲ: www.habr.com

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