DevCloud Ninjas Tech Community
1.5K subscribers
87 photos
9 videos
23 files
80 links
Download Telegram
๐Ÿšจ Top Kubernetes crash recovery commands that used 99% of the time:


1. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐—ด๐—ฒ๐˜ ๐—ฝ๐—ผ๐—ฑ๐˜€ --๐—ฎ๐—น๐—น-๐—ป๐—ฎ๐—บ๐—ฒ๐˜€๐—ฝ๐—ฎ๐—ฐ๐—ฒ๐˜€: Check the status of all pods across namespaces to identify failures.
2. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐—ฑ๐—ฒ๐˜€๐—ฐ๐—ฟ๐—ถ๐—ฏ๐—ฒ ๐—ฝ๐—ผ๐—ฑ ๐—ฝ๐—ผ๐—ฑ_๐—ป๐—ฎ๐—บ๐—ฒ: Gather detailed information about a failed pod.
3. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐—น๐—ผ๐—ด๐˜€ ๐—ฝ๐—ผ๐—ฑ_๐—ป๐—ฎ๐—บ๐—ฒ -๐—ฐ ๐—ฐ๐—ผ๐—ป๐˜๐—ฎ๐—ถ๐—ป๐—ฒ๐—ฟ_๐—ป๐—ฎ๐—บ๐—ฒ: View logs of a specific container inside a pod to troubleshoot issues.
4. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐—ด๐—ฒ๐˜ ๐—ฒ๐˜ƒ๐—ฒ๐—ป๐˜๐˜€ --๐—ฎ๐—น๐—น-๐—ป๐—ฎ๐—บ๐—ฒ๐˜€๐—ฝ๐—ฎ๐—ฐ๐—ฒ๐˜€ --๐˜€๐—ผ๐—ฟ๐˜-๐—ฏ๐˜†='.๐—บ๐—ฒ๐˜๐—ฎ๐—ฑ๐—ฎ๐˜๐—ฎ.๐—ฐ๐—ฟ๐—ฒ๐—ฎ๐˜๐—ถ๐—ผ๐—ป๐—ง๐—ถ๐—บ๐—ฒ๐˜€๐˜๐—ฎ๐—บ๐—ฝ': Review recent events for clues on crashes and errors.
5. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐—ด๐—ฒ๐˜ ๐—ป๐—ผ๐—ฑ๐—ฒ๐˜€: Verify the status of nodes in the cluster, checking for node failures.
6. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐—ฑ๐—ฟ๐—ฎ๐—ถ๐—ป ๐—ป๐—ผ๐—ฑ๐—ฒ_๐—ป๐—ฎ๐—บ๐—ฒ --๐—ถ๐—ด๐—ป๐—ผ๐—ฟ๐—ฒ-๐—ฑ๐—ฎ๐—ฒ๐—บ๐—ผ๐—ป๐˜€๐—ฒ๐˜๐˜€: Safely evacuate and cordon a node for recovery operations.
7. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐—ฐ๐—ผ๐—ฟ๐—ฑ๐—ผ๐—ป ๐—ป๐—ผ๐—ฑ๐—ฒ_๐—ป๐—ฎ๐—บ๐—ฒ: Mark a node as unschedulable to prevent new pods from being scheduled during recovery.
8. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐—ฑ๐—ฒ๐—น๐—ฒ๐˜๐—ฒ ๐—ฝ๐—ผ๐—ฑ ๐—ฝ๐—ผ๐—ฑ_๐—ป๐—ฎ๐—บ๐—ฒ --๐—ด๐—ฟ๐—ฎ๐—ฐ๐—ฒ-๐—ฝ๐—ฒ๐—ฟ๐—ถ๐—ผ๐—ฑ=0 --๐—ณ๐—ผ๐—ฟ๐—ฐ๐—ฒ: Forcefully delete a crashed pod to restart it or clear it for recovery.
9. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐—ฟ๐—ผ๐—น๐—น๐—ผ๐˜‚๐˜ ๐˜‚๐—ป๐—ฑ๐—ผ ๐—ฑ๐—ฒ๐—ฝ๐—น๐—ผ๐˜†๐—บ๐—ฒ๐—ป๐˜ ๐—ฑ๐—ฒ๐—ฝ๐—น๐—ผ๐˜†๐—บ๐—ฒ๐—ป๐˜_๐—ป๐—ฎ๐—บ๐—ฒ: Roll back a deployment in case a new rollout causes crashes.
10. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐—ฒ๐˜…๐—ฒ๐—ฐ -๐—ถ๐˜ ๐—ฝ๐—ผ๐—ฑ_๐—ป๐—ฎ๐—บ๐—ฒ -- /๐—ฏ๐—ถ๐—ป/๐˜€๐—ต: Access a container to debug and resolve application issues directly inside the pod.
11. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐—ด๐—ฒ๐˜ ๐—ฐ๐—ผ๐—บ๐—ฝ๐—ผ๐—ป๐—ฒ๐—ป๐˜๐˜€๐˜๐—ฎ๐˜๐˜‚๐˜€๐—ฒ๐˜€: Check the health of core cluster components like etcd, kube-apiserver, and more.
12. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐˜๐—ผ๐—ฝ ๐—ป๐—ผ๐—ฑ๐—ฒ๐˜€: Monitor node resource usage to detect resource exhaustion causing crashes.
13. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐˜๐—ผ๐—ฝ ๐—ฝ๐—ผ๐—ฑ๐˜€ --๐—ฎ๐—น๐—น-๐—ป๐—ฎ๐—บ๐—ฒ๐˜€๐—ฝ๐—ฎ๐—ฐ๐—ฒ๐˜€: Check pod resource usage across namespaces, identifying bottlenecks leading to crashes.
14. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐—ฑ๐—ฒ๐—น๐—ฒ๐˜๐—ฒ ๐—ป๐—ผ๐—ฑ๐—ฒ ๐—ป๐—ผ๐—ฑ๐—ฒ_๐—ป๐—ฎ๐—บ๐—ฒ: Remove a failed node from the cluster to allow recovery operations.
15. ๐—ฒ๐˜๐—ฐ๐—ฑ๐—ฐ๐˜๐—น --๐—ฒ๐—ป๐—ฑ๐—ฝ๐—ผ๐—ถ๐—ป๐˜๐˜€=๐—ต๐˜๐˜๐—ฝ๐˜€://๐—ฒ๐˜๐—ฐ๐—ฑ-๐˜€๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ:2379 ๐˜€๐—ป๐—ฎ๐—ฝ๐˜€๐—ต๐—ผ๐˜ ๐—ฟ๐—ฒ๐˜€๐˜๐—ผ๐—ฟ๐—ฒ ๐—ฏ๐—ฎ๐—ฐ๐—ธ๐˜‚๐—ฝ.๐—ฑ๐—ฏ: Restore etcd from a snapshot in case of etcd failure.
16. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐—ฎ๐—ฝ๐—ฝ๐—น๐˜† -๐—ณ ๐—ฏ๐—ฎ๐—ฐ๐—ธ๐˜‚๐—ฝ.๐˜†๐—ฎ๐—บ๐—น: Reapply configurations from a backup manifest during recovery.
17. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐˜๐—ฎ๐—ถ๐—ป๐˜ ๐—ป๐—ผ๐—ฑ๐—ฒ๐˜€ ๐—ป๐—ผ๐—ฑ๐—ฒ_๐—ป๐—ฎ๐—บ๐—ฒ ๐—ธ๐—ฒ๐˜†=๐˜ƒ๐—ฎ๐—น๐˜‚๐—ฒ:๐—ก๐—ผ๐—ฆ๐—ฐ๐—ต๐—ฒ๐—ฑ๐˜‚๐—น๐—ฒ: Prevent scheduling on a node experiencing issues during recovery.
18. ๐—ธ๐˜‚๐—ฏ๐—ฒ๐—ฐ๐˜๐—น ๐—ด๐—ฒ๐˜ ๐—ฒ๐—ป๐—ฑ๐—ฝ๐—ผ๐—ถ๐—ป๐˜๐˜€ ๐˜€๐—ฒ๐—ฟ๐˜ƒ๐—ถ๐—ฐ๐—ฒ_๐—ป๐—ฎ๐—บ๐—ฒ: Verify service endpoints during recovery to ensure services are resolving correctly.


๐Ÿ“ฑ ๐—™๐—ผ๐—น๐—น๐—ผ๐˜„ @devcloudninjas ๐Ÿ๐จ๐ซ ๐ฆ๐จ๐ซ๐ž ๐ฌ๐ฎ๐œ๐ก ๐œ๐จ๐ง๐ญ๐ž๐ง๐ญ ๐š๐ซ๐จ๐ฎ๐ง๐ ๐œ๐ฅ๐จ๐ฎ๐ & ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ!!! // ๐‰๐จ๐ข๐ง ๐Ÿ๐จ๐ซ ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ ๐ƒ๐Ž๐‚๐ฌ: @devcloudninjas
Please open Telegram to view this post
VIEW IN TELEGRAM
โšก๏ธAWS DEVOPS REAL-TIME DEPLOYMENT

Development โ†’ Pre-PROD โ†’ Production โ™พ


โ–ถ๏ธ Detailed Project Explanation with Screenshots : https://blog.devcloudninjas.com/aws-devops-real-time-deployment-dev-pre-prod-production

๐Ÿ“ฑ Project Source code: https://github.com/devcloudninjas/AWS-DevOps_Real-Time_Deployment


๐Ÿ“ฑ ๐…๐จ๐ฅ๐ฅ๐จ๐ฐ @devcloudninjas ๐Ÿ๐จ๐ซ ๐ฆ๐จ๐ซ๐ž ๐ฌ๐ฎ๐œ๐ก ๐œ๐จ๐ง๐ญ๐ž๐ง๐ญ ๐š๐ซ๐จ๐ฎ๐ง๐ ๐œ๐ฅ๐จ๐ฎ๐ & ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ!!! // ๐‰๐จ๐ข๐ง ๐Ÿ๐จ๐ซ ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ ๐ƒ๐Ž๐‚๐ฌ: @devcloudninjas
Please open Telegram to view this post
VIEW IN TELEGRAM
Master DevOps โ™พ from Beginner to Expert


โšก๏ธ Start with foundational skills like Version Control (Git), Automating Builds (CI), and Infrastructure as Code (IaC). Get hands-on with Docker, cloud basics, and deployment automation, while also covering basic monitoring and documentation.

โšก๏ธ Progress to intermediate activities by mastering CI/CD pipelines, advanced scripting, and container orchestration with Kubernetes. Dive into advanced monitoring tools like ELK and Grafana, and focus on security, performance optimization, database automation, and knowledge sharing.

โšก๏ธ Achieve advanced proficiency with enterprise CI/CD, advanced security measures, and Kubernetes optimization. Enhance your skills in advanced monitoring & analytics, cloud strategies, disaster recovery planning, and cross-team collaboration.

โšก๏ธ Reach expert status with a focus on architecture design, AI/ML automation, and regulatory compliance. Lead with continuous improvement, strategic planning, vendor management, and executive communication. Develop your expertise in mentorship, leadership, and thought leadership.


๐Ÿ“ฑ ๐…๐จ๐ฅ๐ฅ๐จ๐ฐ @devcloudninjas ๐Ÿ๐จ๐ซ ๐ฆ๐จ๐ซ๐ž ๐ฌ๐ฎ๐œ๐ก ๐œ๐จ๐ง๐ญ๐ž๐ง๐ญ ๐š๐ซ๐จ๐ฎ๐ง๐ ๐œ๐ฅ๐จ๐ฎ๐ & ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ!!! // ๐‰๐จ๐ข๐ง ๐Ÿ๐จ๐ซ ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ ๐ƒ๐Ž๐‚๐ฌ: @devcloudninjas
Please open Telegram to view this post
VIEW IN TELEGRAM
Master DevOps โ™พ from Beginner to Expert


โšก๏ธ Start with foundational skills like Version Control (Git), Automating Builds (CI), and Infrastructure as Code (IaC). Get hands-on with Docker, cloud basics, and deployment automation, while also covering basic monitoring and documentation.

โšก๏ธ Progress to intermediate activities by mastering CI/CD pipelines, advanced scripting, and container orchestration with Kubernetes. Dive into advanced monitoring tools like ELK and Grafana, and focus on security, performance optimization, database automation, and knowledge sharing.

โšก๏ธ Achieve advanced proficiency with enterprise CI/CD, advanced security measures, and Kubernetes optimization. Enhance your skills in advanced monitoring & analytics, cloud strategies, disaster recovery planning, and cross-team collaboration.

โšก๏ธ Reach expert status with a focus on architecture design, AI/ML automation, and regulatory compliance. Lead with continuous improvement, strategic planning, vendor management, and executive communication. Develop your expertise in mentorship, leadership, and thought leadership.


๐Ÿ“ฑ ๐…๐จ๐ฅ๐ฅ๐จ๐ฐ @devcloudninjas ๐Ÿ๐จ๐ซ ๐ฆ๐จ๐ซ๐ž ๐ฌ๐ฎ๐œ๐ก ๐œ๐จ๐ง๐ญ๐ž๐ง๐ญ ๐š๐ซ๐จ๐ฎ๐ง๐ ๐œ๐ฅ๐จ๐ฎ๐ & ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ!!! // ๐‰๐จ๐ข๐ง ๐Ÿ๐จ๐ซ ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ ๐ƒ๐Ž๐‚๐ฌ: @devcloudninjas
Please open Telegram to view this post
VIEW IN TELEGRAM
๐Ÿš€ New Article Alert: End-to-End AWS DevOps Project ๐Ÿš€


๐Ÿ–ฅ Read the full project here: End-to-End AWS DevOps Project: CI/CD Pipeline for ECS Fargate with ECR and RDS

We just published an in-depth AWS DevOps project guide that walks you through setting up a CI/CD pipeline for a containerized Node.js application deployed on AWS ECS Fargate. This tutorial covers everything from creating Docker images, pushing to Amazon ECR, setting up a managed database with Amazon RDS, and automating deployments using AWS CodePipeline.

๐Ÿ‘จโ€๐Ÿ’ป What you'll learn:
1. Containerizing a Node.js app with Docker ๐Ÿณ
2. Deploying to AWS ECS Fargate without worrying about servers ๐ŸŒ
3. Automating your CI/CD pipeline with AWS CodePipeline and CodeBuild ๐Ÿค–
4. Managing your database with Amazon RDS ๐Ÿ—„
5. Real-time monitoring and logging with AWS CloudWatch ๐Ÿ“Š

๐Ÿ’ก If you're looking to enhance your DevOps skills or want a practical project to showcase, this is for you! Packed with step-by-step instructions, installation commands, and diagrams to guide you through the entire process.

Don't forget to โญ๏ธ and share! Your feedback is much appreciated.


๐Ÿ“ฑ ๐—™๐—ผ๐—น๐—น๐—ผ๐˜„ @devcloudninjas ๐Ÿ๐จ๐ซ ๐ฆ๐จ๐ซ๐ž ๐ฌ๐ฎ๐œ๐ก ๐œ๐จ๐ง๐ญ๐ž๐ง๐ญ ๐š๐ซ๐จ๐ฎ๐ง๐ ๐œ๐ฅ๐จ๐ฎ๐ & ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ!!! // ๐‰๐จ๐ข๐ง ๐Ÿ๐จ๐ซ ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ ๐ƒ๐Ž๐‚๐ฌ: @devcloudninjas
Please open Telegram to view this post
VIEW IN TELEGRAM
๐Ÿ“ข Free Resources
๐Ÿ“ข Microsoft Certified Azure Solutions Architect Pathway

Connect ๐Ÿค Like ๐Ÿ‘ Share ๐ŸคŸ

โžก๏ธ Foundations
โœ”๏ธ Exam AZ-900: Microsoft Azure Fundamentals
๐Ÿ”— https://lnkd.in/g4NRXQNF

โžก๏ธ Administrator
โœ”๏ธ Exam AZ-104: Microsoft Azure Administrator
๐Ÿ”— https://lnkd.in/gfpEkQCn

โžก๏ธ Expert
โœ”๏ธ Exam AZ-305: Designing Microsoft Azure Infrastructure Solutions
๐Ÿ”— https://lnkd.in/gGUD3Jps


โœ‰๏ธ ๐—™๐—ผ๐—น๐—น๐—ผ๐˜„ @devcloudninjas ๐—ณ๐—ผ๐—ฟ ๐—บ๐—ผ๐—ฟ๐—ฒ ๐˜€๐˜‚๐—ฐ๐—ต ๐—ฐ๐—ผ๐—ป๐˜๐—ฒ๐—ป๐˜ ๐—ฎ๐—ฟ๐—ผ๐˜‚๐—ป๐—ฑ ๐—ฐ๐—น๐—ผ๐˜‚๐—ฑ & ๐——๐—ฒ๐˜ƒ๐—ข๐—ฝ๐˜€!!!
Please open Telegram to view this post
VIEW IN TELEGRAM
โ–ถ๏ธ Real-time interview questions and answers ๐Ÿ’ฌ related to Ansible:-

1. How would you ensure that a specific package is installed on multiple servers?
Answer: You can use the package module in a playbook to ensure that a specific package is installed across multiple servers.

2. How do you handle different environments (development, testing, production) with Ansible?
Answer: You can manage different environments by using inventory files and group variables. Create separate inventory files for each environment and use group variables to specify environment-specific configurations. Each hosts file would define the servers for that specific environment, and you can create a group_vars directory for each environment.

3. How would you restart a service after updating a configuration file?
Answer: You can use the notify feature in Ansible to restart a service after a configuration file is updated.

4. How can you ensure idempotency in your Ansible playbook?
Answer: Ansible modules are designed to be idempotent, meaning they can be run multiple times without changing the result beyond the initial application. For instance, if you use the file module to create a file, Ansible will check if the file already exists before trying to create it.

5. How do you handle secrets or sensitive data in Ansible?
Answer: You can handle sensitive data using Ansible Vault, which allows you to encrypt files or variables.

6. Can you explain how you would deploy an application using Ansible?
Answer: Define Inventory: Create an inventory file with the target hosts.
Create a Playbook: Write a playbook that includes tasks for pulling the application code from a repository, installing dependencies, configuring files, and starting services.

7. How would you handle task failures and retries in Ansible?
Answer: You can use the retry and when directives to handle task failures in Ansible. The retries and delay parameters can be specified for tasks that might need to be retried.

8. How would you roll back a deployment if the new version fails?
Answer: To roll back a deployment, you can maintain a previous version of the application and use a playbook that checks the health of the new version before deciding to switch back.

9. How can you manage firewall rules across multiple servers using Ansible?
Answer: You can use the firewalld or iptables modules to manage firewall rules.

10. How do you implement a continuous deployment pipeline using Ansible?
Answer: To implement a continuous deployment pipeline, you can integrate Ansible with a CI/CD tool like Jenkins, GitLab CI, or GitHub Actions.

11. How can you check if a file exists and create it if it doesn't?
Answer: You can use the stat module to check if a file exists and then use the copy or template module to create it if it doesnโ€™t.

12. How can you execute a command on remote hosts and capture its output?
Answer: You can use the command or shell module to run commands on remote hosts and register the output


๐Ÿ“ฑ ๐—™๐—ผ๐—น๐—น๐—ผ๐˜„ @devcloudninjas ๐Ÿ๐จ๐ซ ๐ฆ๐จ๐ซ๐ž ๐ฌ๐ฎ๐œ๐ก ๐œ๐จ๐ง๐ญ๐ž๐ง๐ญ ๐š๐ซ๐จ๐ฎ๐ง๐ ๐œ๐ฅ๐จ๐ฎ๐ & ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ!!! // ๐‰๐จ๐ข๐ง ๐Ÿ๐จ๐ซ ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ ๐ƒ๐Ž๐‚๐ฌ: @devcloudninjas
Please open Telegram to view this post
VIEW IN TELEGRAM
โ˜ธ Kubernetes Architecture: Key Components ๐Ÿ“ฑ

โœจ Master Node: Manages the cluster, handling the control plane components.
๐Ÿ’Ž API Server: Frontend for Kubernetes, handling all communication.
๐Ÿ’Ž Scheduler: Assigns pods to nodes based on resource availability.
๐Ÿ’Ž Controller Manager: Manages cluster state, scaling, and node health.
๐Ÿ’Ž etcd: Distributed key-value store for all cluster data.

โœจ Worker Nodes: Run application workloads.
๐Ÿ’Ž Kubelet: Ensures containers are running as defined in Pod specs.
๐Ÿ’Ž Kube-Proxy: Manages network rules, allowing communication inside/outside the cluster.
๐Ÿ’Ž Container Runtime: Runs containers (e.g., Docker, containerd).
๐Ÿ’Ž Pods: Smallest deployable unit, encapsulating containers.
๐Ÿ’Ž Services: Stable endpoint for connecting to Pods.
๐Ÿ’Ž Namespaces: Logical partitioning of resources for isolation.

This architecture ensures efficient scaling, fault tolerance, and high availability for cloud-native applications.



๐Ÿ“ฑ ๐—™๐—ผ๐—น๐—น๐—ผ๐˜„ @devcloudninjas ๐Ÿ๐จ๐ซ ๐ฆ๐จ๐ซ๐ž ๐ฌ๐ฎ๐œ๐ก ๐œ๐จ๐ง๐ญ๐ž๐ง๐ญ ๐š๐ซ๐จ๐ฎ๐ง๐ ๐œ๐ฅ๐จ๐ฎ๐ & ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ!!! // ๐‰๐จ๐ข๐ง ๐Ÿ๐จ๐ซ ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ ๐ƒ๐Ž๐‚๐ฌ: @devcloudninjas
Please open Telegram to view this post
VIEW IN TELEGRAM
๐Ÿ‘1
๐Ÿ”ฃ List of Kubernetes commands: ๐Ÿ”ฃ

โžก๏ธ ReplicaSets Management
kubectl create -f <replicaset-definition.yaml>: Create a ReplicaSet.
kubectl get replicasets: List all ReplicaSets.
kubectl describe replicaset <replicaset-name>: Describe a specific ReplicaSet.
kubectl scale replicaset <replicaset-name> โ€“replicas=<replica-count>: Scale a ReplicaSet.

โžก๏ธ Service Management
kubectl create service <service-type> <service-name> โ€“tcp=<port>: Create a service.
kubectl get services: List all services.
kubectl expose deployment <deployment-name> โ€“port=<port>: Expose a deployment as a service.
kubectl describe service <service-name>: Describe a specific service.
kubectl delete service <service-name>: Delete a service.
kubectl get endpoints <service-name>: Get information about a service.

โžก๏ธ Config Maps and Secrets
kubectl create configmap <config-map-name> โ€“from-file=<path-to-file>: Create a config map from a file.
kubectl create secret <secret-type> <secret-name> โ€“from-literal=<key>=<value>: Create a secret.
kubectl get configmaps: List all config maps.
kubectl get secrets: List all secrets.
kubectl describe configmap <config-map-name>: Describe a specific config map.
kubectl describe secret <secret-name>: Describe a specific secret.
kubectl delete secret <secret_name>: Delete a specific secret.
kubectl delete configmap <config-map-name>: Delete a specific config map.

โžก๏ธ Networking
kubectl port-forward <pod-name> <local-port>:<pod-port>: Port forward to a pod.
kubectl expose deployment <deployment-name> โ€“type=NodePort โ€“port=<port>: Expose a deployment as a NodePort service.
kubectl create ingress <ingress-name> โ€“rule=<host>/<path>=<service-name> โ€“<service-port>: Create an Ingress resource.
kubectl describe ingress <ingress-name>: Get information about an Ingress.
kubectl get ingress <ingress-name> -o jsonpath='{.spec.rules[0].host}โ€™: Retrieves the most value from the first rule of the specified Ingress resource.

โžก๏ธ Storage
kubectl create -f <persistent-volume-definition.yaml>: Create a PersistentVolume.
kubectl get pv: List all PersistentVolumes.
kubectl describe pv <pv-name>: Describe a specific PersistentVolume.
kubectl create -f <persistent-volume-claim-definition.yaml>: Create a PersistentVolumeClaim.
kubectl get pvc: List all PersistentVolumeClaims.
kubectl describe pvc <pvc-name>: Describe a specific PersistentVolumeClaim.

โžก๏ธ StatefulSets
kubectl create -f <statefulset-definition.yaml>: Create a StatefulSet.
kubectl get statefulsets: List all StatefulSets.
kubectl describe statefulset <statefulset-name>: Describe a specific StatefulSet.
kubectl scale statefulset <statefulset-name> โ€“replicas=<replica-count>: Scale a StatefulSet.

โžก๏ธ Monitoring and Troubleshooting
kubectl get events: Check cluster events.
kubectl get component statuses: Get cluster component statuses.
kubectl top nodes: Get resource utilization of nodes.
kubectl top pods: Get resource utilization of pods.
kubectl debug <pod-name> -it โ€“image=<debugging-image>: Enable container shell access debugging.


๐Ÿ˜Ž ๐—™๐—ผ๐—น๐—น๐—ผ๐˜„ @devcloudninjas ๐—ณ๐—ผ๐—ฟ ๐—บ๐—ผ๐—ฟ๐—ฒ ๐˜€๐˜‚๐—ฐ๐—ต ๐—ฐ๐—ผ๐—ป๐˜๐—ฒ๐—ป๐˜ ๐—ฎ๐—ฟ๐—ผ๐˜‚๐—ป๐—ฑ ๐—ฐ๐—น๐—ผ๐˜‚๐—ฑ & ๐——๐—ฒ๐˜ƒ๐—ข๐—ฝ๐˜€!!! // Join for DevOps DOCs: @devcloudninjas
Please open Telegram to view this post
VIEW IN TELEGRAM
โ–ถ๏ธ ๐—”๐—ป๐˜€๐—ถ๐—ฏ๐—น๐—ฒ ๐—•๐—ฒ๐˜€๐˜ ๐—ฃ๐—ฟ๐—ฎ๐—ฐ๐˜๐—ถ๐—ฐ๐—ฒ๐˜€ ๐—ณ๐—ผ๐—ฟ ๐—”๐˜‚๐˜๐—ผ๐—บ๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐—ฆ๐˜‚๐—ฐ๐—ฐ๐—ฒ๐˜€๐˜€! ๐Ÿ“ฑ

Are you ready to unlock the power of Ansible and boost your DevOps workflows? Here's a quick breakdown of the core concepts, tips, and tricks to get you on the right path to efficient automation. ๐Ÿ‘‡

โญ๏ธ ๐—–๐—ผ๐—ฟ๐—ฒ ๐—–๐—ผ๐—ป๐—ฐ๐—ฒ๐—ฝ๐˜๐˜€
๐—ฃ๐—น๐—ฎ๐˜†๐—ฏ๐—ผ๐—ผ๐—ธ๐˜€ ๐Ÿ“œ
YAML files where automation lives! Write them to describe the desired state of your infrastructure.
๐—ง๐—ถ๐—ฝ: Keep them simple and modular for readability.

๐—œ๐—ป๐˜ƒ๐—ฒ๐—ป๐˜๐—ผ๐—ฟ๐—ถ๐—ฒ๐˜€ ๐Ÿ“‚
Define your hosts and groups of servers here.
๐—ง๐—ถ๐—ฝ: Use dynamic inventory scripts for cloud platforms like AWS to stay updated.

๐— ๐—ผ๐—ฑ๐˜‚๐—น๐—ฒ๐˜€ ๐Ÿงฉ
Predefined functions that automate tasks like installing packages, copying files, etc.
๐—ง๐—ถ๐—ฝ: Make use of idempotent modules to ensure consistent results!

๐—ฅ๐—ผ๐—น๐—ฒ๐˜€ ๐Ÿ—๏ธ
Group related tasks, variables, and handlers in roles to keep things organized.
๐—ง๐—ถ๐—ฝ: Share your roles with others through Ansible Galaxy.

๐—›๐—ฎ๐—ป๐—ฑ๐—น๐—ฒ๐—ฟ๐˜€ ๐Ÿšฆ
Respond to changes and only run tasks when necessary.
๐—ง๐—ถ๐—ฝ: Use handlers to restart services or trigger additional tasks, minimizing downtime.

๐Ÿ’ก ๐—ง๐—ถ๐—ฝ๐˜€ & ๐—ง๐—ฟ๐—ถ๐—ฐ๐—ธ๐˜€
๐—”๐˜ƒ๐—ผ๐—ถ๐—ฑ ๐—›๐—ฎ๐—ฟ๐—ฑ๐—ฐ๐—ผ๐—ฑ๐—ถ๐—ป๐—ด โ›”: Use variables and parameterize your playbooks to keep them flexible.
๐—จ๐˜€๐—ฒ ๐—ง๐—ฎ๐—ด๐˜€ ๐Ÿท๏ธ: Assign tags to tasks and run specific parts of playbooks without executing everything.
๐——๐—ฟ๐˜† ๐—ฅ๐˜‚๐—ป (๐—–๐—ต๐—ฒ๐—ฐ๐—ธ ๐— ๐—ผ๐—ฑ๐—ฒ) ๐Ÿ”: Always test before execution with --check mode to ensure no surprises.
๐—ฌ๐—”๐— ๐—Ÿ ๐—™๐—ผ๐—ฟ๐—บ๐—ฎ๐˜๐˜๐—ถ๐—ป๐—ด ๐Ÿ–‹๏ธ: Stick to best YAML practices for indentation and structureโ€”Ansible is strict about it!

๐Ÿ›  Example
๐—ฃ๐—ฟ๐—ผ๐—ฏ๐—น๐—ฒ๐—บ: Configuring 100 EC2 instances with different setups manually is tedious and error-prone. ๐Ÿ˜“
๐—”๐—ฐ๐˜๐—ถ๐—ผ๐—ป: Create a dynamic inventory, use roles to define common configurations, and execute your playbook across all instances. ๐Ÿš€
๐—ฅ๐—ฒ๐˜€๐˜‚๐—น๐˜: Successfully ๐—ฐ๐—ผ๐—ป๐—ณ๐—ถ๐—ด๐˜‚๐—ฟ๐—ฒ๐—ฑ ๐—ฎ๐—น๐—น ๐Ÿญ๐Ÿฌ๐Ÿฌ ๐—ถ๐—ป๐˜€๐˜๐—ฎ๐—ป๐—ฐ๐—ฒ๐˜€ ๐—ถ๐—ป ๐—บ๐—ถ๐—ป๐˜‚๐˜๐—ฒ๐˜€ ๐˜„๐—ถ๐˜๐—ต ๐˜‡๐—ฒ๐—ฟ๐—ผ ๐—บ๐—ฎ๐—ป๐˜‚๐—ฎ๐—น ๐—ฒ๐—ฟ๐—ฟ๐—ผ๐—ฟ๐˜€. ๐ŸŽ‰

๐Ÿ”ฅ ๐—ช๐—ต๐˜† ๐—–๐—ต๐—ผ๐—ผ๐˜€๐—ฒ ๐—”๐—ป๐˜€๐—ถ๐—ฏ๐—น๐—ฒ?
๐—”๐—ด๐—ฒ๐—ป๐˜๐—น๐—ฒ๐˜€๐˜€: No need to install agents on nodes.
๐—œ๐—ฑ๐—ฒ๐—บ๐—ฝ๐—ผ๐˜๐—ฒ๐—ป๐—ฐ๐˜†: Ensures tasks are executed exactly as intended.
๐—ฆ๐—ฐ๐—ฎ๐—น๐—ฎ๐—ฏ๐—ถ๐—น๐—ถ๐˜๐˜†: Perfect for small to large infrastructures.

๐Ÿ”” Action Time! If you want to streamline your DevOps automation and master Ansible, start now!



๐Ÿ“ฑ ๐—™๐—ผ๐—น๐—น๐—ผ๐˜„ @devcloudninjas ๐Ÿ๐จ๐ซ ๐ฆ๐จ๐ซ๐ž ๐ฌ๐ฎ๐œ๐ก ๐œ๐จ๐ง๐ญ๐ž๐ง๐ญ ๐š๐ซ๐จ๐ฎ๐ง๐ ๐œ๐ฅ๐จ๐ฎ๐ & ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ!!! // ๐‰๐จ๐ข๐ง ๐Ÿ๐จ๐ซ ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ ๐ƒ๐Ž๐‚๐ฌ: @devcloudninjas
Please open Telegram to view this post
VIEW IN TELEGRAM
1711255043413.gif
2.3 MB
๐Ÿ‘พ CICD vs. CICD? You might be saying it wrong...

While CICD gets thrown around a lot, it actually refers to two separate practices that work together in the software development lifecycle: Continuous Integration (CI) and Continuous Delivery/Deployment (CD).

Here's a quick breakdown:

โžก๏ธ๐—–๐—ผ๐—ป๐˜๐—ถ๐—ป๐˜‚๐—ผ๐˜‚๐˜€ ๐—œ๐—ป๐˜๐—ฒ๐—ด๐—ฟ๐—ฎ๐˜๐—ถ๐—ผ๐—ป (๐—–๐—œ): Automates the process of merging code changes from developers into a shared mainline frequently. This means every push triggers builds, tests, and catches bugs early on.

โžก๏ธ๐—–๐—ผ๐—ป๐˜๐—ถ๐—ป๐˜‚๐—ผ๐˜‚๐˜€ ๐——๐—ฒ๐—น๐—ถ๐˜ƒ๐—ฒ๐—ฟ๐˜†/๐——๐—ฒ๐—ฝ๐—น๐—ผ๐˜†๐—บ๐—ฒ๐—ป๐˜ (๐—–๐——): Takes CI a step further. It automates the entire delivery pipeline, allowing you to release new features or bug fixes to production environments quickly and reliably. CD can include manual approval gates before deployment, while Continuous Deployment (CD) automates deployments entirely.

Here's the key difference:

โžก๏ธ๐—–๐—ผ๐—ป๐˜๐—ถ๐—ป๐˜‚๐—ผ๐˜‚๐˜€ ๐——๐—ฒ๐—น๐—ถ๐˜ƒ๐—ฒ๐—ฟ๐˜†: Gives you a "deploy button" - the code is ready to be pushed to production with a manual go-ahead.

โžก๏ธ๐—–๐—ผ๐—ป๐˜๐—ถ๐—ป๐˜‚๐—ผ๐˜‚๐˜€ ๐——๐—ฒ๐—ฝ๐—น๐—ผ๐˜†๐—บ๐—ฒ๐—ป๐˜: Takes it a step further. If all automated tests pass in CD, the code is automatically deployed to production without human intervention.


โœˆ๏ธ ๐…๐จ๐ฅ๐ฅ๐จ๐ฐ @devcloudninjas ๐Ÿ๐จ๐ซ ๐ฆ๐จ๐ซ๐ž ๐ฌ๐ฎ๐œ๐ก ๐œ๐จ๐ง๐ญ๐ž๐ง๐ญ ๐š๐ซ๐จ๐ฎ๐ง๐ ๐œ๐ฅ๐จ๐ฎ๐ & ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ!!! // ๐‰๐จ๐ข๐ง ๐Ÿ๐จ๐ซ ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ ๐ƒ๐Ž๐‚๐ฌ: @devcloudninjas
Please open Telegram to view this post
VIEW IN TELEGRAM
1708866864365.gif
706.6 KB
๐‡๐จ๐ฐ ๐ญ๐จ ๐›๐ž๐œ๐จ๐ฆ๐ž ๐š ๐œ๐ฅ๐จ๐ฎ๐ ๐ž๐ง๐ ๐ข๐ง๐ž๐ž๐ซ: ๐€ ๐ซ๐จ๐š๐๐ฆ๐š๐ฉโ—

๐Ÿ”น Skills Required: Master cloud fundamentals, networking, programming, infrastructure as code (IaC), containerization, monitoring, automation, database management, and cloud security. Strong communication and collaboration skills are essential for teamwork.

๐Ÿ“š Education & Training: While a formal degree isn't always necessary, consider a Computer Science background and pursue cloud certifications. Explore online courses to keep your skills sharp.

โญ๏ธ Career Prospects: Cloud Engineer, Cloud Architect, DevOps Engineer, Cloud Consultant - the opportunities are limitless in this dynamic field!

โš™๏ธ Tools & Technologies: Get comfortable with major cloud service providers (AWS, Azure, GCP), IaC tools (Terraform, CloudFormation), containerization (Docker, Kubernetes), CI/CD tools (Jenkins, GitLab CI/CD), and monitoring solutions.

โฌ†๏ธ Cloud Engineering is your ticket to a future-proof career. Stay curious, adapt to new tech, and be part of the cloud revolution!

Here's your step-by-step guide:

1๏ธโƒฃ Master the Basics of Cloud Computing
2๏ธโƒฃ Dive into Virtualization and Containerization
3๏ธโƒฃ Choose Your Preferred Cloud Platform
4๏ธโƒฃ Build a Strong Foundation in Networking
5๏ธโƒฃ Explore Security and Identity Management
6๏ธโƒฃ Learn Infrastructure as Code (IaC)
7๏ธโƒฃ Embrace DevOps Practices
8๏ธโƒฃ Understand Containers and Orchestration
9๏ธโƒฃ Explore Serverless Computing
๐Ÿ˜€ Focus on Cloud Security and Compliance
๐Ÿ“œ Earn Valuable Certifications


๐Ÿ˜Ž ๐—™๐—ผ๐—น๐—น๐—ผ๐˜„ @devcloudninjas ๐—ณ๐—ผ๐—ฟ ๐—บ๐—ผ๐—ฟ๐—ฒ ๐˜€๐˜‚๐—ฐ๐—ต ๐—ฐ๐—ผ๐—ป๐˜๐—ฒ๐—ป๐˜ ๐—ฎ๐—ฟ๐—ผ๐˜‚๐—ป๐—ฑ ๐—ฐ๐—น๐—ผ๐˜‚๐—ฑ & ๐——๐—ฒ๐˜ƒ๐—ข๐—ฝ๐˜€!!! // Join for DevOps DOCs: @devcloudninjas
Please open Telegram to view this post
VIEW IN TELEGRAM
๐Ÿš€ Top Docker Errors and Their Fixes for DevOps Engineers ๐Ÿ› 

Encountering Docker errors can be frustrating, but fear not! Here are some common Docker errors and their quick fixes to help you keep your containers running smoothly. ๐Ÿณ

1. Cannot Connect to the Docker Daemon

Error:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?


Fix:
- Ensure Docker service is running: sudo systemctl start docker
- Add your user to the Docker group: sudo usermod -aG docker $USER and then restart your terminal or log out and back in.


2. Image Pull Failed

Error:
Error response from daemon: pull access denied for [image], repository does not exist or may require 'docker login'


Fix:
- Verify the image name and tag are correct.
- Log in to Docker Hub if the image is private: docker login


3. Container Exits Immediately

Error:
Exited (0) or Exited (1)


Fix:
- Check the container logs: docker logs [container_id]
- Ensure the command in your Dockerfile or docker run command is correct and doesnโ€™t immediately exit.


4. Port Already in Use

Error:
Error starting userland proxy: listen tcp 0.0.0.0:[port]: bind: address already in use


Fix:
- Find the process using the port: sudo lsof -i :[port]
- Stop the process or use a different port in your Docker command.


5. No Space Left on Device

Error:
no space left on device


Fix:
- Remove unused containers, images, and volumes: docker system prune -a --volumes
- Ensure you have enough disk space on your Docker host.


6. Build Fails Due to Missing Files

Error:
COPY failed: file not found in build context or excluded by .dockerignore: stat [file]: file does not exist


Fix:
- Verify the path in your Dockerfile and ensure the file exists in the build context.
- Check your .dockerignore to ensure necessary files are not being ignored.


7. Permission Denied Errors

Error:
permission denied while trying to connect to the Docker daemon socket


Fix:
- Use sudo if you're not in the Docker group: sudo docker [command]
- Add your user to the Docker group: sudo usermod -aG docker $USER and then restart your terminal or log out and back in.


Keep these handy tips in your toolbox, and Docker errors wonโ€™t slow you down! Happy containerizing! ๐Ÿณโœจ


๐Ÿ“ฑ ๐…๐จ๐ฅ๐ฅ๐จ๐ฐ @devcloudninjas ๐Ÿ๐จ๐ซ ๐ฆ๐จ๐ซ๐ž ๐ฌ๐ฎ๐œ๐ก ๐œ๐จ๐ง๐ญ๐ž๐ง๐ญ ๐š๐ซ๐จ๐ฎ๐ง๐ ๐œ๐ฅ๐จ๐ฎ๐ & ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ!!! // ๐‰๐จ๐ข๐ง ๐Ÿ๐จ๐ซ ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ ๐ƒ๐Ž๐‚๐ฌ: @devcloudninjas
Please open Telegram to view this post
VIEW IN TELEGRAM
๐Ÿ’ฅ New DevOps Guide: 100 Common Docker Errors & Their Solutions ๐Ÿ’ฅ


๐Ÿ–ฅ Read the full article here: https://dev.to/devcloudninjas/100-common-docker-errors-solutions-4le0

Ever faced frustrating Docker issues like failed builds, daemon errors, or container networking problems? ๐Ÿณ Say no more! In my latest article, Iโ€™ve compiled 100 of the most common Docker errors along with clear, actionable solutions to get you back on track fast! ๐Ÿš€

Whether you're a beginner or an experienced DevOps engineer, this guide will help you troubleshoot everything from:

๐Ÿ”น Docker push failures with "no basic auth credentials"
๐Ÿ”น Docker daemon connection issues
๐Ÿ”น Mount path errors
๐Ÿ”น OCI runtime create failures
๐Ÿ”น And many more common problems!

โš™๏ธ If youโ€™re working with containers, this resource is a must-have in your toolkit. Bookmark it, share it with your team, and save hours of debugging!

โœจ Stay ahead in your DevOps journey with practical insights and real-world fixes!


๐Ÿ“ฑ ๐—™๐—ผ๐—น๐—น๐—ผ๐˜„ @devcloudninjas ๐Ÿ๐จ๐ซ ๐ฆ๐จ๐ซ๐ž ๐ฌ๐ฎ๐œ๐ก ๐œ๐จ๐ง๐ญ๐ž๐ง๐ญ ๐š๐ซ๐จ๐ฎ๐ง๐ ๐œ๐ฅ๐จ๐ฎ๐ & ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ!!! // ๐‰๐จ๐ข๐ง ๐Ÿ๐จ๐ซ ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ ๐ƒ๐Ž๐‚๐ฌ: @devcloudninjas
Please open Telegram to view this post
VIEW IN TELEGRAM
โšก๏ธ https://blog.devcloudninjas.com/100-linux-best-practices-by-prodevopsguy-tech


โšก๏ธ More DevOps Blogs : HERE

๐Ÿค๐Ÿค๐Ÿค๐Ÿค

Follow ๐Ÿฉ Like ๐Ÿ‘ Share ๐Ÿ‘ Comment Your thoughts ๐Ÿ’ฌ

โšก๏ธ ๐—™๐—ผ๐—น๐—น๐—ผ๐˜„ @devcloudninjas & @devcloudninjas ๐—ณ๐—ผ๐—ฟ ๐—บ๐—ผ๐—ฟ๐—ฒ ๐˜€๐˜‚๐—ฐ๐—ต ๐—ฐ๐—ผ๐—ป๐˜๐—ฒ๐—ป๐˜ ๐—ฎ๐—ฟ๐—ผ๐˜‚๐—ป๐—ฑ ๐—ฐ๐—น๐—ผ๐˜‚๐—ฑ & ๐——๐—ฒ๐˜ƒ๐—ข๐—ฝ๐˜€!!!
Please open Telegram to view this post
VIEW IN TELEGRAM
Git ๐Ÿ“ฑ Most used commands on day to day life

๐Ÿ”–๐—ด๐—ถ๐˜ ๐—ฐ๐—น๐—ผ๐—ป๐—ฒ <๐—ฟ๐—ฒ๐—ฝ๐—ผ> : To work on an existing project, you'll want to clone (copy) it to your local machine. This command does that.

๐Ÿ”–๐—ด๐—ถ๐˜ ๐—ฐ๐—ต๐—ฒ๐—ฐ๐—ธ๐—ผ๐˜‚๐˜ -b <๐—ฏ๐—ฟ๐—ฎ๐—ป๐—ฐ๐—ต๐—ป๐—ฎ๐—บ๐—ฒ> : If you want to switch to a different branch, use this command.

๐Ÿ”–๐—ด๐—ถ๐˜ ๐—ฎ๐—ฑ๐—ฑ <๐—ณ๐—ถ๐—น๐—ฒ๐—ป๐—ฎ๐—บ๐—ฒ> : After you've made some changes to your files, you'll want to stage them for a commit. This command adds a specific file to the stage.

๐Ÿ”–๐—ด๐—ถ๐˜ ๐—ฎ๐—ฑ๐—ฑ . ๐—ผ๐—ฟ ๐—ด๐—ถ๐˜ ๐—ฎ๐—ฑ๐—ฑ -๐—” : Instead of adding files one by one, you can add all your changed files to the stage with one command.

๐Ÿ”–๐—ด๐—ถ๐˜ ๐—ฐ๐—ผ๐—บ๐—บ๐—ถ๐˜ -๐—บ "๐—–๐—ผ๐—บ๐—บ๐—ถ๐˜ ๐—บ๐—ฒ๐˜€๐˜€๐—ฎ๐—ด๐—ฒ" : Now that your changes are staged, you can commit them with a descriptive message.

๐Ÿ”–๐—ด๐—ถ๐˜ ๐—ฝ๐˜‚๐˜€๐—ต ๐—ผ๐—ฟ๐—ถ๐—ด๐—ถ๐—ป <๐—ฏ๐—ฟ๐—ฎ๐—ป๐—ฐ๐—ต๐—ป๐—ฎ๐—บ๐—ฒ> : This command sends your commits to the remote repository.

Git is an extremely powerful tool with plenty more commands and options.


๐Ÿ“ฑ ๐—™๐—ผ๐—น๐—น๐—ผ๐˜„ @devcloudninjas ๐Ÿ๐จ๐ซ ๐ฆ๐จ๐ซ๐ž ๐ฌ๐ฎ๐œ๐ก ๐œ๐จ๐ง๐ญ๐ž๐ง๐ญ ๐š๐ซ๐จ๐ฎ๐ง๐ ๐œ๐ฅ๐จ๐ฎ๐ & ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ!!! // ๐‰๐จ๐ข๐ง ๐Ÿ๐จ๐ซ ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ ๐ƒ๐Ž๐‚๐ฌ: @devcloudninjas
Please open Telegram to view this post
VIEW IN TELEGRAM