🔖 Role Description:-
This is a full-time hybrid role for a DevOps Intern located in Mumbai, with flexibility for some remote work. The DevOps Intern will be responsible for software development, continuous integration, integration, Kubernetes, AWS Cloud and Linux. They will work with the development team to design, build and maintain the infrastructure and tools needed for testing and deployment. The role also involves monitoring the systems, diagnosing the issues, and resolving them.
🔖 Qualifications:-
1. Knowledge of software development, continuous integration, and integration
2. Knowledge of Kubernetes, AWS cloud, and Linux
3. Experience with automation tools and cloud infrastructure is a plus
4. Knowledge of monitoring systems and diagnosing issues
5. Good analytical and problem-solving skills
6. Bachelor's degree in Computer Science, Engineering, or related field
ninad.shetye@sigmoidfrogs.com
Please open Telegram to view this post
VIEW IN TELEGRAM
www.prodevopsguy.site
🕵️♂️A Step-by-Step Guide to Installing Prometheus and Grafana 🔍
This article will guide you step by step on how to install prometheus and Grafana
Please open Telegram to view this post
VIEW IN TELEGRAM
If you want to write a 𝗰𝗹𝗲𝗮𝗿 𝗮𝗻𝗱 𝗰𝗼𝗻𝗰𝗶𝘀𝗲 𝗰𝗼𝗻𝗳𝗶𝗴𝘂𝗿𝗮𝘁𝗶𝗼𝗻 𝗳𝗼𝗿 𝘆𝗼𝘂𝗿 𝗧𝗲𝗿𝗿𝗮𝗳𝗼𝗿𝗺 𝗰𝗼𝗱𝗲 you need to know to 𝗳𝗹𝗮𝘁𝘁𝗲𝗻 function and 𝗳𝗼𝗿 expression.
➡️ What does 𝗳𝗹𝗮𝘁𝘁𝗲𝗻 do?
𝗳𝗹𝗮𝘁𝘁𝗲𝗻 takes a list and replaces any list elements with a flattened sequence of the list contents.
➡️ What does 𝗳𝗼𝗿 expression do?
A for expression creates a complex type value by transforming another complex type value. Each element in the input value can correspond to either one or zero values in the result, and an arbitrary expression can be used to transform each input element into an output element.
➡️ How can we combine them?
We can write nested configuration and flatten it when it is needed.
Imagine that you want to create several storage accounts with a few containers inside. This is a perfect example. Just take a look at the attached code.
✔️ 𝐅𝐨𝐥𝐥𝐨𝐰 @prodevopsguy 𝐟𝐨𝐫 𝐦𝐨𝐫𝐞 𝐬𝐮𝐜𝐡 𝐜𝐨𝐧𝐭𝐞𝐧𝐭 𝐚𝐫𝐨𝐮𝐧𝐝 𝐜𝐥𝐨𝐮𝐝 & 𝐃𝐞𝐯𝐎𝐩𝐬!!! // 𝐉𝐨𝐢𝐧 𝐟𝐨𝐫 𝐃𝐞𝐯𝐎𝐩𝐬 𝐃𝐎𝐂𝐬: @devopsdocs
𝗳𝗹𝗮𝘁𝘁𝗲𝗻 takes a list and replaces any list elements with a flattened sequence of the list contents.
A for expression creates a complex type value by transforming another complex type value. Each element in the input value can correspond to either one or zero values in the result, and an arbitrary expression can be used to transform each input element into an output element.
We can write nested configuration and flatten it when it is needed.
Imagine that you want to create several storage accounts with a few containers inside. This is a perfect example. Just take a look at the attached code.
Please open Telegram to view this post
VIEW IN TELEGRAM
- 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Check that you are in the correct directory with a Git repository, or initialize a new repository using
𝐠𝐢𝐭 𝐢𝐧𝐢𝐭.- 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Use
𝐠𝐢𝐭 𝐩𝐮𝐥𝐥 to update your local branch with the remote branch or 𝐠𝐢𝐭 𝐩𝐮𝐬𝐡 to push your changes to the remote branch.- 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Resolve conflicts manually in the conflicting files, then use 𝐠𝐢𝐭 𝐚𝐝𝐝 to stage the changes, and commit them.
- 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Use 𝐠𝐢𝐭 𝐩𝐮𝐥𝐥 to get the latest changes from the remote branch and then commit your changes.
- 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Ensure your SSH key is added to your SSH agent and associated with your Git account.
- 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Update the remote's URL using 𝐠𝐢𝐭 𝐫𝐞𝐦𝐨𝐭𝐞 𝐬𝐞𝐭-𝐮𝐫𝐥 𝐨𝐫𝐢𝐠𝐢𝐧 <𝐧𝐞𝐰_𝐮𝐫𝐥>.
- 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Check the spelling and case of the file name and ensure it's part of the repository.
- 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Provide a commit message using 𝐠𝐢𝐭 𝐜𝐨𝐦𝐦𝐢𝐭 -𝐦 "Your message here".
- 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Configure line endings using .𝐠𝐢𝐭𝐚𝐭𝐭𝐫𝐢𝐛𝐮𝐭𝐞𝐬 or global Git configuration.
- 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧: Stash your local changes with 𝐠𝐢𝐭 𝐬𝐭𝐚𝐬𝐡, then perform the merge, and finally apply your changes back with 𝐠𝐢𝐭 𝐬𝐭𝐚𝐬𝐡 𝐚𝐩𝐩𝐥𝐲.
Remember that these are just brief solutions. The specific actions needed may vary based on the context of the error and the state of your Git repository.
Please open Telegram to view this post
VIEW IN TELEGRAM
1713258785878.gif
2.6 MB
Each stage has metrics that are vital for the success of the DevOps.
Plan
Code
Build
Test
Release & Deploy
Operate
Monitor
Please open Telegram to view this post
VIEW IN TELEGRAM
𝐼𝑓 𝑦𝑜𝑢 ℎ𝑎𝑣𝑒 𝑎 𝑒𝑥𝑝𝑒𝑟𝑖𝑒𝑛𝑐𝑒 𝑖𝑛 𝑑𝑜𝑐𝑘𝑒𝑟𝑖𝑧𝑖𝑛𝑔 𝑦𝑜𝑢𝑟 𝑝𝑟𝑜𝑗𝑒𝑐𝑡𝑠, 𝑝𝑟𝑜𝑏𝑎𝑏𝑙𝑦 𝑦𝑜𝑢 ℎ𝑒𝑎𝑟 𝑎𝑏𝑜𝑢𝑡 𝑚𝑢𝑙𝑡𝑖-𝑠𝑡𝑎𝑔𝑒 𝑖𝑛 𝑑𝑜𝑐𝑘𝑒𝑟𝑖𝑧𝑒 𝑡ℎ𝑒 𝑎𝑝𝑝𝑙𝑖𝑐𝑎𝑡𝑖𝑜𝑛.
𝑡𝑜 𝑚𝑎𝑘𝑒 𝑠𝑡𝑜𝑟𝑦 𝑠ℎ𝑜𝑟𝑡, 𝑦𝑜𝑢 𝑐𝑎𝑛 𝑐𝑜𝑛𝑣𝑒𝑟𝑡 𝑎 𝑑𝑜𝑐𝑘𝑒𝑟 𝑓𝑖𝑙𝑒 𝑡𝑜 𝑎 𝑚𝑢𝑙𝑡𝑖-𝑠𝑡𝑎𝑔𝑒 𝑜𝑛𝑒 𝑤𝑖𝑡ℎ 𝑖𝑛𝑐𝑙𝑢𝑑𝑖𝑛𝑔 "𝐹𝑅𝑂𝑀 ..." 𝑠𝑡𝑎𝑡𝑒𝑚𝑒𝑛𝑡𝑠 𝑡𝑜 𝑦𝑜𝑢𝑟 𝑓𝑖𝑙𝑒.
𝑏𝑦 𝑎𝑑𝑑𝑖𝑛𝑔 𝑡ℎ𝑖𝑠, 𝑒𝑎𝑐ℎ "𝐹𝑅𝑂𝑀" 𝑠𝑡𝑎𝑡𝑒𝑚𝑒𝑛𝑡 𝑏𝑒𝑔𝑖𝑛𝑠 𝑎 𝑛𝑒𝑤 𝑠𝑡𝑎𝑔𝑒 𝑜𝑓 𝑡ℎ𝑒 𝑏𝑢𝑖𝑙𝑑.
𝑦𝑜𝑢 𝑐𝑎𝑛 𝑐𝑜𝑝𝑦 𝑤ℎ𝑎𝑡 𝑦𝑜𝑢 𝑛𝑒𝑒𝑑 𝑓𝑟𝑜𝑚 𝑜𝑛𝑒 𝑠𝑡𝑎𝑔𝑒 𝑡𝑜 𝑎𝑛𝑜𝑡ℎ𝑒𝑟 𝑎𝑛𝑑 𝑙𝑒𝑎𝑣𝑒 𝑒𝑣𝑒𝑟𝑦𝑡ℎ𝑖𝑛𝑔 𝑡ℎ𝑎𝑡 𝑦𝑜𝑢 𝑑𝑜𝑛'𝑡 𝑛𝑒𝑒𝑑 𝑖𝑛 𝑡ℎ𝑒 𝑓𝑖𝑛𝑎𝑙 𝑖𝑚𝑎𝑔𝑒.
- 𝐎𝐩𝐭𝐢𝐦𝐢𝐳𝐞𝐝 𝐈𝐦𝐚𝐠𝐞 𝐒𝐢𝐳𝐞
- 𝐒𝐢𝐦𝐩𝐥𝐢𝐟𝐢𝐞𝐝 𝐁𝐮𝐢𝐥𝐝 𝐏𝐫𝐨𝐜𝐞𝐬𝐬
- 𝐏𝐚𝐫𝐚𝐥𝐥𝐞𝐥 𝐁𝐮𝐢𝐥𝐝 𝐒𝐭𝐞𝐩𝐬
- 𝐔𝐬𝐞 𝐨𝐟 𝐄𝐱𝐭𝐞𝐫𝐧𝐚𝐥 𝐈𝐦𝐚𝐠𝐞𝐬
𝑓𝑜𝑟 𝑚𝑜𝑟𝑒 𝑖𝑛𝑓𝑜, 𝑦𝑜𝑢 𝑐𝑎𝑛 𝑐ℎ𝑒𝑐𝑘 𝑡ℎ𝑖𝑠 𝑙𝑖𝑛𝑘:
Please open Telegram to view this post
VIEW IN TELEGRAM
- Design and implement cloud solutions in Azure and AWS environments.
- Create and manage virtual machines (VMs) across Azure and AWS platforms.
- Lead the migration process from on-premises environments to the cloud, ensuring minimal downtime and maximum efficiency.
- Perform cloud-to-cloud migrations, seamlessly transferring workloads and data between Azure and AWS.
- Develop automation scripts and templates to streamline migration processes and enhance operational efficiency.
Please open Telegram to view this post
VIEW IN TELEGRAM
DevOps engineers are IT professionals who play a crucial role in modern software development. They work like bridge builders, connecting the worlds of development and operations to create a smooth and efficient software delivery process. Here's a glimpse into what they do:
Please open Telegram to view this post
VIEW IN TELEGRAM
𝐓𝐚𝐤𝐞 𝐛𝐚𝐜𝐤 𝐜𝐨𝐧𝐭𝐫𝐨𝐥 𝐰𝐢𝐭𝐡 🌐 𝐆𝐢𝐭𝐎𝐩𝐬: 𝐘𝐨𝐮𝐫 𝐢𝐧𝐟𝐫𝐚𝐬𝐭𝐫𝐮𝐜𝐭𝐮𝐫𝐞, 𝐬𝐢𝐦𝐩𝐥𝐢𝐟𝐢𝐞𝐝 🚀
What is GitOps? It's a revolutionary approach that treats your infrastructure as code, using Git as the single source of truth.✨
🔣 Why GitOps?
⏩ Simplified management: Declarative configuration in Git means no more ad-hoc changes or manual interventions.
⏩ Reduced errors: Automated deployments eliminate human error and ensure consistency.
⏩ Increased visibility: Track changes and rollbacks easily with Git's history and branching.
⏩ Improved collaboration: Everyone works from the same source of truth, fostering transparency and ownership
😎 𝗙𝗼𝗹𝗹𝗼𝘄 @prodevopsguy 𝗳𝗼𝗿 𝗺𝗼𝗿𝗲 𝘀𝘂𝗰𝗵 𝗰𝗼𝗻𝘁𝗲𝗻𝘁 𝗮𝗿𝗼𝘂𝗻𝗱 𝗰𝗹𝗼𝘂𝗱 & 𝗗𝗲𝘃𝗢𝗽𝘀!!! // Join for DevOps DOCs: @devopsdocs
What is GitOps? It's a revolutionary approach that treats your infrastructure as code, using Git as the single source of truth.
Please open Telegram to view this post
VIEW IN TELEGRAM
www.prodevopsguy.site
A Complete Guide to Azure DevOps Pipelines with YAML Templates
Streamline Your CI/CD Workflows with Azure DevOps
In today’s software development landscape, efficient CI/CD processes are essential for delivering high-quality applications at a rapid pace. Azure DevOps provides a comprehensive set of tools and services to facilitate the entire development lifecycle, including powerful CI/CD capabilities. In this guide, we will explore Azure DevOps pipelines using YAML templates, providing step-by-step explanations and practical examples. Let’s dive in!
𝑓𝑜𝑟 𝑚𝑜𝑟𝑒 𝑖𝑛𝑓𝑜, 𝑦𝑜𝑢 𝑐𝑎𝑛 𝑐ℎ𝑒𝑐𝑘 𝑡ℎ𝑖𝑠 𝑙𝑖𝑛𝑘:
https://prodevopsguy.site/complete-guide-to-azure-devops-pipelines-with-yaml-templates
Please open Telegram to view this post
VIEW IN TELEGRAM
𝐊𝐮𝐛𝐞𝐫𝐧𝐞𝐭𝐞𝐬 𝐒𝐞𝐜𝐫𝐞𝐭𝐬 are where Kubernetes stores secret objects such as 𝐩𝐚𝐬𝐬𝐰𝐨𝐫𝐝𝐬, 𝐎𝐀𝐮𝐭𝐡 𝐭𝐨𝐤𝐞𝐧𝐬, 𝐬𝐞𝐧𝐬𝐢𝐭𝐢𝐯𝐞 𝐝𝐚𝐭𝐚, 𝐚𝐧𝐝 𝐒𝐒𝐇 𝐤𝐞𝐲𝐬. The name 𝐬𝐞𝐜𝐫𝐞𝐭 is a bit misleading, as it is not a secret. It is just base-64 encoded and stored in etcd.
GitOps processes for your Kubernetes application works great for most resources, but it has some limitations when it comes to managing and storing secrets. Storing your secret data with Kubernetes Secrets on Git is uncontrolled for access and is a security risk.
➡️ 𝗟𝗶𝗺𝗶𝘁𝗮𝘁𝗶𝗼𝗻𝘀 𝗼𝗳 𝗞𝘂𝗯𝗲𝗿𝗻𝗲𝘁𝗲𝘀 𝗦𝗲𝗰𝗿𝗲𝘁𝘀 :-
𝙚𝙩𝙘𝙙 𝙞𝙨 𝙣𝙤𝙩 𝙨𝙚𝙘𝙪𝙧𝙚 - etcd is where Kubernetes secrets are stored. Though etcd is a distributed key/value store with great performance, it lacks key features when it comes to handling sensitive data such as audit log, key rotation, and encryption of key.
➡️ 𝙎𝙚𝙘𝙧𝙚𝙩𝙨 𝙖𝙨 𝙥𝙡𝙖𝙞𝙣 𝙩𝙚𝙭𝙩 -When a pod needs to access the secrets, it is provided by Kubernetes as environment variables or mounting them as files containing plain-text secrets. These secrets become accessible to everyone with access to the pod.
➡️ 𝙍𝘽𝘼𝘾 𝙛𝙪𝙣𝙘𝙩𝙞𝙤𝙣𝙖𝙡𝙞𝙩𝙮 -Kubernetes’ RBAC functionality provides only get and set permissions for secrets. And while you get a secret, you only get its decrypted value. A more secure zero-trust setup would allow a developer to set a secret and then only retrieve the encrypted value for consumption.
➡️ 𝙏𝙝𝙚 𝙡𝙖𝙘𝙠 𝙤𝙛 𝙨𝙚𝙘𝙪𝙧𝙚 𝙚𝙣𝙘𝙧𝙮𝙥𝙩𝙞𝙤𝙣 -Since Kubernetes secrets are base-64 encoded, it is possible for anyone to decode it once they get their hands on the secrets.
➡️ 𝗕𝗲𝘀𝘁 𝗽𝗿𝗮𝗰𝘁𝗶𝗰𝗲𝘀 𝗳𝗼𝗿 𝗞𝘂𝗯𝗲𝗿𝗻𝗲𝘁𝗲𝘀 𝘀𝗲𝗰𝗿𝗲𝘁 𝗺𝗮𝗻𝗮𝗴𝗲𝗺𝗲𝗻𝘁:-
1.𝙀𝙣𝙨𝙪𝙧𝙚 𝙚𝙣𝙘𝙧𝙮𝙥𝙩𝙞𝙤𝙣 𝙖𝙩 𝙧𝙚𝙨𝙩 - Storing unencrypted secrets in etcd could lead to compromise and allow access to your systems.
2. 𝙇𝙞𝙢𝙞𝙩 𝙖𝙘𝙘𝙚𝙨𝙨 𝙩𝙤 𝙆𝙪𝙗𝙚𝙧𝙣𝙚𝙩𝙚𝙨 𝙘𝙡𝙪𝙨𝙩𝙚𝙧𝙨 - This can be controlled using Kubernetes RBAC controls and RBAC controls from your cloud provider. Since, in methods like sealed secrets, anyone with access to the cluster to see the decrypted secrets.
3. 𝙍𝙚𝙨𝙩𝙧𝙞𝙘𝙩 𝙎𝙚𝙘𝙧𝙚𝙩 𝙖𝙘𝙘𝙚𝙨𝙨 𝙩𝙤 𝙨𝙥𝙚𝙘𝙞𝙛𝙞𝙘 𝙘𝙤𝙣𝙩𝙖𝙞𝙣𝙚𝙧𝙨- While running multiple containers in a pod, define your volume mount or environment variable configuration in such a way that only the container that needs the secret has access to it.
4.𝙈𝙖𝙣𝙖𝙜𝙚 𝙝𝙤𝙬 𝙮𝙤𝙪𝙧 𝙖𝙥𝙥𝙡𝙞𝙘𝙖𝙩𝙞𝙤𝙣𝙨 𝙝𝙖𝙣𝙙𝙡𝙚 𝙨𝙚𝙘𝙧𝙚𝙩𝙨- Once your applications read the secrets, they have access to its confidential information. Ensure they do not share it with any untrusted parties or display it on logs.
5.𝙋𝙧𝙚𝙛𝙚𝙧 𝙖 𝙘𝙚𝙣𝙩𝙧𝙖𝙡 𝙨𝙚𝙘𝙧𝙚𝙩 𝙨𝙩𝙤𝙧𝙚- Having your Kubernetes secrets stored in a centralized place along with your other tool and database secrets would allow for easier management. This helps reduce secret sprawl and allows for better access control and audit trails.
✔️ 𝐅𝐨𝐥𝐥𝐨𝐰 @prodevopsguy 𝐟𝐨𝐫 𝐦𝐨𝐫𝐞 𝐬𝐮𝐜𝐡 𝐜𝐨𝐧𝐭𝐞𝐧𝐭 𝐚𝐫𝐨𝐮𝐧𝐝 𝐜𝐥𝐨𝐮𝐝 & 𝐃𝐞𝐯𝐎𝐩𝐬!!! // 𝐉𝐨𝐢𝐧 𝐟𝐨𝐫 𝐃𝐞𝐯𝐎𝐩𝐬 𝐃𝐎𝐂𝐬: @devopsdocs
GitOps processes for your Kubernetes application works great for most resources, but it has some limitations when it comes to managing and storing secrets. Storing your secret data with Kubernetes Secrets on Git is uncontrolled for access and is a security risk.
𝙚𝙩𝙘𝙙 𝙞𝙨 𝙣𝙤𝙩 𝙨𝙚𝙘𝙪𝙧𝙚 - etcd is where Kubernetes secrets are stored. Though etcd is a distributed key/value store with great performance, it lacks key features when it comes to handling sensitive data such as audit log, key rotation, and encryption of key.
1.𝙀𝙣𝙨𝙪𝙧𝙚 𝙚𝙣𝙘𝙧𝙮𝙥𝙩𝙞𝙤𝙣 𝙖𝙩 𝙧𝙚𝙨𝙩 - Storing unencrypted secrets in etcd could lead to compromise and allow access to your systems.
2. 𝙇𝙞𝙢𝙞𝙩 𝙖𝙘𝙘𝙚𝙨𝙨 𝙩𝙤 𝙆𝙪𝙗𝙚𝙧𝙣𝙚𝙩𝙚𝙨 𝙘𝙡𝙪𝙨𝙩𝙚𝙧𝙨 - This can be controlled using Kubernetes RBAC controls and RBAC controls from your cloud provider. Since, in methods like sealed secrets, anyone with access to the cluster to see the decrypted secrets.
3. 𝙍𝙚𝙨𝙩𝙧𝙞𝙘𝙩 𝙎𝙚𝙘𝙧𝙚𝙩 𝙖𝙘𝙘𝙚𝙨𝙨 𝙩𝙤 𝙨𝙥𝙚𝙘𝙞𝙛𝙞𝙘 𝙘𝙤𝙣𝙩𝙖𝙞𝙣𝙚𝙧𝙨- While running multiple containers in a pod, define your volume mount or environment variable configuration in such a way that only the container that needs the secret has access to it.
4.𝙈𝙖𝙣𝙖𝙜𝙚 𝙝𝙤𝙬 𝙮𝙤𝙪𝙧 𝙖𝙥𝙥𝙡𝙞𝙘𝙖𝙩𝙞𝙤𝙣𝙨 𝙝𝙖𝙣𝙙𝙡𝙚 𝙨𝙚𝙘𝙧𝙚𝙩𝙨- Once your applications read the secrets, they have access to its confidential information. Ensure they do not share it with any untrusted parties or display it on logs.
5.𝙋𝙧𝙚𝙛𝙚𝙧 𝙖 𝙘𝙚𝙣𝙩𝙧𝙖𝙡 𝙨𝙚𝙘𝙧𝙚𝙩 𝙨𝙩𝙤𝙧𝙚- Having your Kubernetes secrets stored in a centralized place along with your other tool and database secrets would allow for easier management. This helps reduce secret sprawl and allows for better access control and audit trails.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
In the realm of software development, efficient and reliable continuous integration and deployment (CI/CD) processes
𝑓𝑜𝑟 𝑚𝑜𝑟𝑒 𝑖𝑛𝑓𝑜, 𝑦𝑜𝑢 𝑐𝑎𝑛 𝑐ℎ𝑒𝑐𝑘 𝑡ℎ𝑖𝑠 𝑙𝑖𝑛𝑘:
https://prodevopsguy.site/complete-guide-to-creating-gitlab-pipelines-with-yaml-templates
Please open Telegram to view this post
VIEW IN TELEGRAM
www.prodevopsguy.site
Troubleshooting in Kubernetes by ProDevOpsGuy - 25 Examples With Commands
Kubernetes Troubleshooting by ProDevOpsGuy - 25 Examples With Commands
Kubernetes troubleshooting involves the process of identifying, diagnosing, and resolving issues within Kubernetes clusters, nodes, pods, or containers. It encompasses effective ongoing management of faults and proactive measures to prevent issues in Kubernetes components.
𝑓𝑜𝑟 𝑚𝑜𝑟𝑒 𝑖𝑛𝑓𝑜, 𝑦𝑜𝑢 𝑐𝑎𝑛 𝑐ℎ𝑒𝑐𝑘 𝑡ℎ𝑖𝑠 𝑙𝑖𝑛𝑘:
https://prodevopsguy.site/Troubleshooting-in-Kubernetes-by-ProDevOpsGuy
Please open Telegram to view this post
VIEW IN TELEGRAM