From b0cf699d745cef5a0c5965e21f71181ed90c755b Mon Sep 17 00:00:00 2001 From: root Date: Tue, 24 Jun 2025 20:47:06 +0330 Subject: [PATCH] update kuber to working --- .../Kubernetes/1-Information.md | 3 +- .../Kubernetes/3-Commands.md | 172 +----------------- .../Kubernetes/4-BasicSetup.md | 13 ++ .../Kubernetes/components/1-NameSpace.md | 72 ++++++++ .../Kubernetes/components/2-Pod.md | 95 ++++++++++ .../Kubernetes/components/3-Replicaset.md | 0 .../Kubernetes/label.md | 9 + .../Kubernetes/log-debug.md | 27 +++ .../Kubernetes/node-manage.md | 44 +++++ README.md | 2 +- 10 files changed, 265 insertions(+), 172 deletions(-) create mode 100644 Containerization & Orchestration/Kubernetes/4-BasicSetup.md create mode 100644 Containerization & Orchestration/Kubernetes/components/1-NameSpace.md create mode 100644 Containerization & Orchestration/Kubernetes/components/2-Pod.md create mode 100644 Containerization & Orchestration/Kubernetes/components/3-Replicaset.md create mode 100644 Containerization & Orchestration/Kubernetes/label.md create mode 100644 Containerization & Orchestration/Kubernetes/log-debug.md create mode 100644 Containerization & Orchestration/Kubernetes/node-manage.md diff --git a/Containerization & Orchestration/Kubernetes/1-Information.md b/Containerization & Orchestration/Kubernetes/1-Information.md index f2b5cc9..5d6c9c0 100755 --- a/Containerization & Orchestration/Kubernetes/1-Information.md +++ b/Containerization & Orchestration/Kubernetes/1-Information.md @@ -79,4 +79,5 @@ The **Control Plane** is the core management component of a Kubernetes cluster. - **Worker (none)** These nodes run application workloads and do not participate in control decisions. ---- + +image pull policy in kubernetes: diff --git a/Containerization & Orchestration/Kubernetes/3-Commands.md b/Containerization & Orchestration/Kubernetes/3-Commands.md index c28e7cf..a0f3ca5 100755 --- a/Containerization & Orchestration/Kubernetes/3-Commands.md +++ b/Containerization & Orchestration/Kubernetes/3-Commands.md @@ -2,34 +2,6 @@ This guide provides a concise reference for common `kubectl` commands used to manage Kubernetes clusters. Whether youโ€™re managing nodes, namespaces, pods, deployments, or autoscaling, the examples below will help you perform everyday tasks with confidence. ---- - -## Table of Contents - -- [Kubernetes Command Reference](#kubernetes-command-reference) - - [Table of Contents](#table-of-contents) - - [General Commands](#general-commands) - - [Node Management](#node-management) - - [Listing Nodes](#listing-nodes) - - [Labeling Nodes](#labeling-nodes) - - [Node Maintenance (Cordon/Drain)](#node-maintenance-cordondrain) - - [Namespace Management](#namespace-management) - - [Pod Management](#pod-management) - - [Listing Pods](#listing-pods) - - [Running a Pod](#running-a-pod) - - [Deleting a Pod](#deleting-a-pod) - - [API Resources \& Documentation](#api-resources--documentation) - - [Logs \& Pod Information](#logs--pod-information) - - [Applying YAML Files](#applying-yaml-files) - - [Viewing Cluster Resources](#viewing-cluster-resources) - - [ReplicaSet \& Deployment Management](#replicaset--deployment-management) - - [Scaling and Rollouts](#scaling-and-rollouts) - - [Autoscaling](#autoscaling) - - [Port Forwarding](#port-forwarding) - - [Additional Information](#additional-information) - ---- - ## General Commands - **List API Resources** @@ -40,136 +12,6 @@ This guide provides a concise reference for common `kubectl` commands used to ma ``` --- - -## Node Management - -### Listing Nodes - -- **Show All Nodes** - - ```bash - kubectl get nodes - ``` - -### Labeling Nodes - -- **Set a Custom Label on a Node** - - ```bash - kubectl label node kubernetes.io/= - ``` - - > **Note:** Replace ``, ``, and `` with your desired values. - -### Node Maintenance (Cordon/Drain) - -- **Cordon a Node** - Prevent new pods from being scheduled on the node. - - ```bash - kubectl cordon - ``` - -- **Uncordon a Node** - Mark the node as schedulable again. - - ```bash - kubectl uncordon - ``` - -- **Drain a Node** - Evict all pods from the node (excluding those managed by DaemonSets). - - ```bash - kubectl drain --ignore-daemonsets --delete-local-data - ``` - - > **Warning:** Draining a node will evict running pods. Ensure that you plan this action to avoid service disruption. - ---- - -## Namespace Management - -- **List All Namespaces** - - ```bash - kubectl get namespaces - # Or the shorthand: - kubectl get ns - ``` - -- **Create a New Namespace** - - ```bash - kubectl create namespace - ``` - ---- - -## Pod Management - -### Listing Pods - -- **List Pods in the Default Namespace** - - ```bash - kubectl get pods - ``` - -- **List Pods with Detailed Information (Wide Output)** - - ```bash - kubectl get pods -o wide - ``` - -- **List Pods in a Specific Namespace** - - ```bash - kubectl get pods -o wide -n - ``` - -### Running a Pod - -> **Note:** The `kubectl run` command is best suited for running single pods. For more complex deployments, consider using YAML manifests. - -- **Basic Example:** - - ```bash - kubectl run --image= --port= -n - ``` - -- **Advanced Example with Multiple Options:** - - ```bash - kubectl run mypod --image=nginx --port=80 -n mynamespace \ - --env="ENV_VAR_NAME=VALUE" --command -- nginx -g "daemon off;" \ - --restart=Always --dry-run=client \ - --labels="app=myapp,env=prod" \ - --limits=cpu=100m,memory=256Mi --requests=cpu=50m,memory=128Mi - ``` - - **Common Options Explained:** - - - `--image`: Container image to use. - - `--port`: Port exposed by the container. - - `-n` or `--namespace`: Namespace in which to run the pod. - - `--env`: Set environment variables. - - `--command`: Treat the following arguments as the command to run. - - `--restart`: Pod restart policy (`Always`, `OnFailure`, or `Never`). - - `--labels`: Assign labels to the pod. - - `--dry-run`: Validate the command without creating the pod. - - `--limits` and `--requests`: Define resource limits and requests for the container. - -### Deleting a Pod - -- **Delete a Pod in a Specific Namespace** - - ```bash - kubectl delete pod -n - ``` - ---- - ## API Resources & Documentation - **Get Detailed Documentation for an API Resource** @@ -184,21 +26,10 @@ This guide provides a concise reference for common `kubectl` commands used to ma kubectl explain pod ``` ---- - -## Logs & Pod Information - -- **Stream Logs for a Running Pod** - ```bash - kubectl logs -f -n + kubectl explain pod.metadata ``` -- **Get Detailed Information About a Pod** - - ```bash - kubectl describe pod -n - ``` --- @@ -296,3 +127,4 @@ kubectl port-forward -n svc/ : +``` + +exapmles: +```bash +kubectl completion zsh > "${fpath[1]}/_kubectl" +``` +```bash +kubectl completion bash > ~/.kube/completion.bash.inc +``` + diff --git a/Containerization & Orchestration/Kubernetes/components/1-NameSpace.md b/Containerization & Orchestration/Kubernetes/components/1-NameSpace.md new file mode 100644 index 0000000..8985578 --- /dev/null +++ b/Containerization & Orchestration/Kubernetes/components/1-NameSpace.md @@ -0,0 +1,72 @@ +# Kubernetes Namespaces Guide + +Kubernetes **namespaces** allow you to organize and isolate resources within your cluster. + +--- + +## ๐Ÿงพ Listing Namespaces + +To list all namespaces: + +```bash +kubectl get namespaces +``` + +or the shorthand: + +```bash +kubectl get ns +``` + +--- + +## ๐Ÿ› ๏ธ Creating a Namespace + +Create a new namespace: + +```bash +kubectl create namespace +``` + +or: + +```bash +kubectl create ns +``` + +--- + +## ๐Ÿ—‘๏ธ Deleting a Namespace + +Delete a namespace: + +```bash +kubectl delete ns +``` + +--- + +## โš ๏ธ Best Practices & Notes + +* **Namespaces are isolated**, but they **can still communicate** with each other by default. +* It is **not recommended to create namespaces that start with `kube-`**, as those are typically reserved for system components. + +--- + +## ๐Ÿ“„ Creating a Namespace with a Manifest + +You can define a namespace using a YAML manifest: + +```yaml +apiVersion: v1 +kind: Namespace +metadata: + name: namespace-test +``` + +Apply it using: + +```bash +kubectl apply -f namespace.yaml +``` + diff --git a/Containerization & Orchestration/Kubernetes/components/2-Pod.md b/Containerization & Orchestration/Kubernetes/components/2-Pod.md new file mode 100644 index 0000000..6b77500 --- /dev/null +++ b/Containerization & Orchestration/Kubernetes/components/2-Pod.md @@ -0,0 +1,95 @@ + +## Pod Management + +### Listing Pods + +- **List Pods in the Default Namespace** + + ```bash + kubectl get pods + ``` + +- **List Pods with Detailed Information (Wide Output)** + + ```bash + kubectl get pods -o wide + ``` + +- **List Pods in a Specific Namespace** + + ```bash + kubectl get pods -o wide -n + ``` + +### Running a Pod + +> **Note:** The `kubectl run` command is best suited for running single pods. For more complex deployments, consider using YAML manifests. + + +```bash +kubectl run --image= +``` + +```bash +kubectl run --image= -n +``` + + +```bash +kubectl delete pod -n +``` + + +```bash +kubectl delete pod -n --force +``` + + +```bash +kubectl delete pod -n --force --grace-period 0 +``` + +```bash +kubectl edit pod -n +``` +Pod Can not been edit (not editable) + + +```bash +kubectl exec -it -n -- +``` + +```yaml +apiVersion: v1 +kind: Pod +metadata: + namespace: dev + name: pod-1 + labels: + label1: test + label2: test2 + app.kubernetes.io/label3: test3 + app.kubernetes.io/label4: test4 +spec: + containers: + - name: nginx-server + image: nginx + + - name: nginx-exporter + image: nginx-exporter + + - name: ubuntu-c0 + image: ubuntu + command: ["/bin/bash","-c","while true; do echo hello-world; sleep 5; done"] + resources: + limits: + memory: "256Mi" + cpu: "250m" + requests: + memory: "128Mi" + cpu: "125m" + nodeSelector: + hostname: k3s + app.kubernetes.io/disk: ssd +``` + diff --git a/Containerization & Orchestration/Kubernetes/components/3-Replicaset.md b/Containerization & Orchestration/Kubernetes/components/3-Replicaset.md new file mode 100644 index 0000000..e69de29 diff --git a/Containerization & Orchestration/Kubernetes/label.md b/Containerization & Orchestration/Kubernetes/label.md new file mode 100644 index 0000000..4d87e2c --- /dev/null +++ b/Containerization & Orchestration/Kubernetes/label.md @@ -0,0 +1,9 @@ +- **Set a Custom Label on a Node** + + ```bash + kubectl label node kubernetes.io/= + ``` + + > **Note:** Replace ``, ``, and `` with your desired values. + + diff --git a/Containerization & Orchestration/Kubernetes/log-debug.md b/Containerization & Orchestration/Kubernetes/log-debug.md new file mode 100644 index 0000000..da807ba --- /dev/null +++ b/Containerization & Orchestration/Kubernetes/log-debug.md @@ -0,0 +1,27 @@ + +- **Stream Logs for a Running Pod** + + ```bash + kubectl logs -f -n + ``` + + + + ```bash + kubectl logs -f -n -c + ``` + + + +- **Get Detailed Information About a Pod** + + ```bash + kubectl describe pod -n + ``` + + +in log swith the pod need to be up + +but in describe dont need to pod be up + +describe work on all components \ No newline at end of file diff --git a/Containerization & Orchestration/Kubernetes/node-manage.md b/Containerization & Orchestration/Kubernetes/node-manage.md new file mode 100644 index 0000000..2472b09 --- /dev/null +++ b/Containerization & Orchestration/Kubernetes/node-manage.md @@ -0,0 +1,44 @@ + +## Node Management + +### Listing Nodes + +- **Show All Nodes** + + ```bash + kubectl get nodes + ``` + + + ```bash + kubectl get nodes --show-lables + ``` + +### Node Maintenance (Cordon/Drain) + +- **Cordon a Node** + Prevent new pods from being scheduled on the node. + + ```bash + kubectl cordon + ``` + +- **Uncordon a Node** + Mark the node as schedulable again. + + ```bash + kubectl uncordon + ``` + +- **Drain a Node** + Evict all pods from the node (excluding those managed by DaemonSets). + + ```bash + kubectl drain --ignore-daemonsets --delete-local-data + ``` + + > **Warning:** Draining a node will evict running pods. Ensure that you plan this action to avoid service disruption. + + +--- + diff --git a/README.md b/README.md index b07ff94..55bced6 100755 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ A curated collection of scripts, configuration files, and guides for managing an ### ๐Ÿณ Containerization & Orchestration - [Docker](./Containerization%20&%20Orchestration/Docker) -- [Kubernetes](./Containerization%20&%20Orchestration/Kubernetes) +- [Kubernetes(On Working)](./Containerization%20&%20Orchestration/Kubernetes) ### ๐Ÿ—„๏ธ Databases - [Postgresql](./Databases/Postgresql)