-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Add cka content #84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Add cka content #84
Conversation
Added an introduction to Kubernetes, explaining its significance in DevOps, microservices, and career advancement.
Added comprehensive documentation on cluster lifecycle management, including upgrade strategies, etcd backup and restore procedures, node maintenance, certificate management, and troubleshooting tips.
This module provides comprehensive coverage of Kubernetes cluster architecture, installation, and configuration, including control plane components, worker node components, and high availability configurations.
Add comprehensive documentation on Pod Security Standards, Admission Control, and troubleshooting common errors in Kubernetes.
Added comprehensive documentation on Role-Based Access Control (RBAC) in Kubernetes, covering core components, ServiceAccount usage, Role and RoleBinding examples, ClusterRole and ClusterRoleBinding, troubleshooting permissions, and common configuration errors.
|
Warning Rate limit exceeded@pooja-bhavani has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 22 minutes and 2 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds six new Kubernetes documentation files covering fundamentals, cluster lifecycle and ops, pod security, RBAC, CoreDNS, and CRDs/operators with practical commands, examples, troubleshooting, and exam-oriented tips. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (7)
Introduction-to-kubernetes.md (1)
50-51: Fix heading style inconsistency.Line 50 uses setext-style heading (
---underline), while the rest of the document uses atx-style headings (#). For consistency with markdownlint and the other files in this PR, convert to atx format.-In this course you'll work on real-world Kubernetes activities such as cluster lifecycle management, security/RBAC, and networking. ---- +## In this course you'll work on real-world Kubernetes activities such as cluster lifecycle management, security/RBAC, and networking.Modules/module1/02-pod-security.md (2)
1-10: Fix heading level increment and structure.Line 3 jumps from h1 directly to h3 (skipping h2), violating heading hierarchy. The "Overview" section should be h2.
-# Pod Security Standards and Admission Control +# Pod Security Standards and Admission Control -## Overview +## OverviewAdditionally, several inline emphasis blocks (e.g., lines 57, 69, 94, 107, 250) are used as pseudo-headings but should be converted to proper h4 headings for consistency with markdown best practices.
26-283: Add language identifiers to fenced code blocks.Multiple fenced code blocks lack language specifications (bash, yaml, etc.). This improves syntax highlighting and readability. Examples at lines 26, 32, 39, 58, 70, 85, 96, 109, 154, 203, 250.
🔎 Proposed fix for code block languages
-Example: +Example 1 – HostPath blocked by restricted policy -Error: +**Error:** -``` +```yaml Error from server (Forbidden): error when creating "pod.yaml": pods "nginx" is forbidden: violates PodSecurity "restricted:latest": hostPath volumes are not allowed -``` +``` -Problem Pod: +**Problem Pod:** -```yaml +```yamlAnd similarly for bash blocks:
-**Debugging Steps:** +**Debugging Steps:** -```bash +```bash # Check namespace Pod Security labels kubectl get namespace <namespace> -o yaml | grep pod-security -``` +```lifecycle-management.md (1)
92-92: Add language identifiers to two fenced code blocks.Lines 92 and 240 use plain fenced code blocks without language specifications. Add
bashor appropriate language identifier for consistency.Line 92:
**Expected Output:** -``` +```text [upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.34.1". Enjoy! [upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so. -``` +```Line 240:
**Output:** -``` +```text +----------+----------+------------+------------+ | HASH | REVISION | TOTAL KEYS | TOTAL SIZE | +----------+----------+------------+------------+ -``` +```Also applies to: 240-240
Modules/module1/01-cluster-lifecycle.md (3)
187-198: Fix heading increment issues in Cluster Lifecycle Management section.Lines 187 and 223 have improper heading level increments:
- Line 187: "### Check Cluster Components" should be h2 (##) after the h2 "Cluster Lifecycle Management"
- Line 223: "#### Weave Net" should be h3 (###) to properly nest under "Install a CNI"
-### Check Cluster Components +## Check Cluster Components -#### Weave Net +### Weave NetAdditionally, several inline emphasis blocks (lines 155, 162, 170, 181, 216, 239) like "kubectl v1.34" and "kind" are used as pseudo-headings. For consistency, convert these to proper h3 or h4 headings.
38-245: Add language identifiers to fenced code blocks.Multiple code blocks lack language specifications (bash, yaml, etc.). Examples at lines 38, 107, 124, 156, 163, 171, 175, 182, 211, 217, 224, 228, 245. Add appropriate language labels (e.g.,
bashfor shell commands,yamlfor YAML examples).🔎 Example fixes
Example: API Request -``` +```bash kubectl create deployment nginx --image=nginx # 1. kubectl sends HTTP POST to kube-apiserver -``` +``` -``` +```bash curl -LO "https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubectl" -``` +``` -``` +```text Client Pod → Service IP → kube-proxy rules → Backend Pod -``` +```
200-200: Add missing period after "etc." abbreviation.Line 200: "NICs, etc" should be "NICs, etc." (with period) per LanguageTool grammar rules.
-- Provides **Dynamic Resource Allocation** for GPUs, TPUs, NICs, etc +- Provides **Dynamic Resource Allocation** for GPUs, TPUs, NICs, etc.
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
Introduction-to-kubernetes.mdModules/module1/01-cluster-lifecycle.mdModules/module1/02-pod-security.mdModules/module1/03-rbac.mdlifecycle-management.md
🧰 Additional context used
🪛 LanguageTool
Modules/module1/01-cluster-lifecycle.md
[style] ~200-~200: In American English, abbreviations like “etc.” require a period.
Context: ...urce Allocation** for GPUs, TPUs, NICs, etc - Delayed Job Pod Replacement - Th...
(ETC_PERIOD)
Introduction-to-kubernetes.md
[style] ~16-~16: Consider an alternative for the overused word “exactly”.
Context: ...nning? This seamless orchestration is exactly what K8s provides: emphasize resilience...
(EXACTLY_PRECISELY)
[style] ~23-~23: To elevate your writing, try using an alternative expression here.
Context: ...WS, Azure, GCP, on-prem). Here's why it matters for your DevOps career: - It works on ...
(MATTERS_RELEVANT)
🪛 markdownlint-cli2 (0.18.1)
Modules/module1/01-cluster-lifecycle.md
38-38: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
107-107: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
124-124: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
155-155: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
156-156: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
162-162: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
163-163: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
170-170: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
171-171: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
175-175: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
181-181: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
182-182: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
187-187: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
211-211: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
216-216: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
217-217: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
223-223: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4
(MD001, heading-increment)
224-224: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
228-228: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
239-239: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
245-245: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
Modules/module1/02-pod-security.md
3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
26-26: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
32-32: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
39-39: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
57-57: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
58-58: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
69-69: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
70-70: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
85-85: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
94-94: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
96-96: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
107-107: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
109-109: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
154-154: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
203-203: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
250-250: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
lifecycle-management.md
92-92: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
240-240: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
Introduction-to-kubernetes.md
50-50: Heading style
Expected: atx; Actual: setext
(MD003, heading-style)
🔇 Additional comments (1)
Modules/module1/03-rbac.md (1)
1-362: LGTM - Well-structured RBAC documentation.This file is well-organized with clear sections, practical examples, and good use of visual markers (✅/❌) to distinguish correct vs. incorrect configurations. The troubleshooting section provides valuable debugging workflows and permission verification commands. The content aligns well with CKA exam requirements and complements the other files in this PR.
No major issues detected. The examples are contextual and demonstrate common RBAC misconfigurations effectively.
Added comprehensive documentation on CoreDNS configuration, troubleshooting, and best practices for Kubernetes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
Modules/module2/04-core-dns.md
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
Modules/module2/04-core-dns.md
18-18: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
274-274: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
🔇 Additional comments (1)
Modules/module2/04-core-dns.md (1)
1-330: Comprehensive and technically accurate CoreDNS documentation.The document provides clear, well-organized coverage of CoreDNS fundamentals, practical configuration patterns, detailed troubleshooting workflows with real-world examples, and actionable best practices. The DNS naming conventions, resolution flow, and configuration examples are all technically correct. Troubleshooting sections effectively guide users through diagnosis and remediation steps. This is a strong addition to the CKA training material.
|
|
||
| ### DNS Naming Convention | ||
|
|
||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add language specifier to fenced code block.
The code block at line 18 is missing a language identifier. This helps with syntax highlighting and markdown linting compliance.
🔎 Proposed fix
-```
+```text
<service-name>.<namespace>.svc.cluster.local
-```
+```🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
18-18: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
In Modules/module2/04-core-dns.md around line 18, the fenced code block is
missing a language specifier; update the opening fence to include an appropriate
language tag (e.g., "text" or "bash") so markdown renderers and linters apply
correct syntax highlighting and pass lint rules—replace the opening "```" with
"```text" (or another suitable language) and keep the closing "```" unchanged.
|
|
||
| ### Example 1: DNS Resolution Fails (nslookup fails) | ||
|
|
||
| **ERRor**: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix typo: "ERRor" should be "Error".
🔎 Proposed fix
-**ERRor**:
+**Error**:📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| **ERRor**: | |
| **Error**: |
🤖 Prompt for AI Agents
In Modules/module2/04-core-dns.md around line 121, there's a typo: the word
"ERRor" should be corrected to "Error"; update the text to use the standard
capitalization "Error" so the heading/label reads correctly.
| **A. Corefile syntax error** | ||
| ```bash | ||
| # Check logs for syntax errors | ||
| kubectl logs -n kube-system <coredns-pod> | grep -i error | ||
|
|
||
| # Fix Corefile | ||
| kubectl edit configmap coredns -n kube-system | ||
|
|
||
| # Restart CoreDNS | ||
| kubectl rollout restart deployment coredns -n kube-system | ||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use proper heading syntax for subheadings instead of emphasis.
Lines 274, 285, and 302 use bold emphasis (**) to format subheadings within the troubleshooting section (e.g., "A. Corefile syntax error"). These should be markdown headings (###) to maintain consistent document structure and comply with markdown standards.
🔎 Proposed fix
**Common Causes and Solutions**:
-**A. Corefile syntax error**
+### A. Corefile syntax errorApply the same pattern to lines 285 (B. Loop detection) and 302 (C. Resource limits).
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| **A. Corefile syntax error** | |
| ```bash | |
| # Check logs for syntax errors | |
| kubectl logs -n kube-system <coredns-pod> | grep -i error | |
| # Fix Corefile | |
| kubectl edit configmap coredns -n kube-system | |
| # Restart CoreDNS | |
| kubectl rollout restart deployment coredns -n kube-system | |
| ``` | |
| **Common Causes and Solutions**: | |
| ### A. Corefile syntax error |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
274-274: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
🤖 Prompt for AI Agents
Modules/module2/04-core-dns.md around lines 274 to 284: the subheading "A.
Corefile syntax error" is formatted using bold emphasis instead of a markdown
heading; replace the bold line with a proper markdown subheading (e.g., "### A.
Corefile syntax error") and ensure the same change is applied to the similar
subheadings at lines 285 ("B. Loop detection") and 302 ("C. Resource limits"),
keeping heading level consistent and updating any surrounding spacing so the
headings render correctly.
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove excessive trailing blank lines.
The file ends with 11 blank lines (335–346), which should be reduced to at most one trailing newline.
🔎 Proposed fix
7. **Log monitoring**: Monitor CoreDNS logs for errors and warnings
---
-
-
-
-
-
-
-
-
-
-📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| 7. **Log monitoring**: Monitor CoreDNS logs for errors and warnings | |
| --- | |
🤖 Prompt for AI Agents
In Modules/module2/04-core-dns.md around lines 335 to 346, remove the excessive
trailing blank lines at the end of the file so there is at most a single
trailing newline; edit the file to trim all but one final newline character and
save the file.
Add comprehensive Kubernetes CKA training content from the CKA repository
This PR includes:
Content from CKA repository (feature/CKA branch) with all original formatting preserved.
Excluding: kubernetes-challenge directory as per requirements.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.