Kubernetes Scenario Based Interview | Kubernetes Interview Questions and Answers for Experienced

Поділитися
Вставка
  • Опубліковано 6 гру 2023
  • Kubernetes Scenario Based Interview | Kubernetes Scenario Interview Questions | Kubernetes Interview Questions and Answers for Experienced | 039
    Hey folks,
    Welcome back to another video in the series of DevOps Interviews. This is the 39th video in this series. This is a complete 30-minute-long technical video purely on #kubernetes #devops #devopsinterview etc. Pick a pen and paper, and note down the questions we have covered in this video.
    LogicOps Lab - / @logicopslab
    LogicOps Lab - Hindi - / @logicopslabhindi
    GitHub - bit.ly/3lsUjdE
    Twitter - ​ / logicopslab
    Instagram - bit.ly/3tJ9Jyf
    Facebook - bit.ly/3ziMoVq
    Like | Share | Subscribe | Follow
    kubernetes interview questions and answers for experienced,kubernetes interview questions,kubernetes interview questions and answers,kubernetes,devops kubernetes,devops kubernetes interview questions,kubernetes scenario based questions,kubernetes scenario interview questions,kubernetes troubleshooting scenarios,kubernetes scenario based interview questions,devops kubernetes project,kubernetes questions and answers,kubernetes questions,kubernetes interview
    NOTICE/DISCLAIMER - We take permission/consent from the Candidate/Agency/Organisation before posting these interviews. Without consent/permission, we DO/WILL NOT publish any content in public.

КОМЕНТАРІ • 85

  • @nasirenevoylune3113
    @nasirenevoylune3113 6 місяців тому +44

    List of questions from the interview:
    Can you walk me through the CI/CD pipeline you use in your current project, specifically related to Kubernetes?
    How do you perform rolling updates for your application in Kubernetes without causing downtime?
    When you create a new version of your Docker image, what steps do you follow?
    Have you ever worked with horizontal pod autoscaling (HPA) in Kubernetes? If so, how do you set it up?
    Explain the purpose of persistent storage in Kubernetes and why it's needed.
    Describe a scenario where you would use Persistent Volumes (PVs) and Persistent Volume Claims (PVCs) in Kubernetes.
    Have you ever used multiple containers within a single pod in Kubernetes? Provide an example.
    How do you manage secrets in your Kubernetes project, and what role does Kubernetes Secret play?
    Can you explain a scenario where you would use a service mesh in Kubernetes, especially in terms of authentication and authorization?
    Why are Pod Security Policies important in Kubernetes, and how would you implement them to enhance security?
    Do you work with resource limits and resource quotas in your Kubernetes setup? If yes, how do you set them up?
    How would you implement horizontal pod scaling based on custom metrics specific to your application's performance indicators?
    Explain a scenario where pod priority and preemption in Kubernetes would be useful, and have you ever implemented this?
    Can you differentiate between Kubernetes Jobs and Cron Jobs, and when would you use each?
    In what situations would you use StatefulSets in Kubernetes, and what benefits do they offer over Deployments?
    How can you change the number of replicas for a ReplicaSet in Kubernetes, and what should you check for if the replicas are not scaling as expected?

  • @mahi_mad
    @mahi_mad Місяць тому +2

    Am i the only one who feels like this guy is more like reading the answers than answering?

  • @siddarthd9774
    @siddarthd9774 2 місяці тому +1

    This is called perfect interview and it will be useful for the currently working devops engineers to understand the kubernetes in broad manner....

    • @LogicOpsLab
      @LogicOpsLab  2 місяці тому

      Made my day! Appreciate it.

  • @buddytintin
    @buddytintin 6 місяців тому

    Amazingly executed. Thanks to the efforts you put in.

    • @LogicOpsLab
      @LogicOpsLab  6 місяців тому

      Appreciate your support.

  • @sumeght1878
    @sumeght1878 2 місяці тому

    As a dev I am impressed by how smoothly each consequent questions is realted to the preceeding one. Helps one to link the dots and understand everything. Great work

    • @LogicOpsLab
      @LogicOpsLab  2 місяці тому

      This is really supporting. Means a lot, mate.

  • @JitendraYadav-lh2yh
    @JitendraYadav-lh2yh 5 місяців тому

    thanks for sharing question great work

  • @jalandharbehera99
    @jalandharbehera99 4 місяці тому

    Wow bro, really its too much informative videos ❤

  • @sravanipaladugu8539
    @sravanipaladugu8539 2 місяці тому

    Very useful video, thanks for doing this 😊

  • @Cloudnp9458
    @Cloudnp9458 Місяць тому +1

    24:25. When you preferred statedulsets over deployment.
    Ans. In case of database deployment. Like mysql application.
    Statefulsets are used for deploying stateful application like database and distribution system and all.
    Pods in statefulsets have stable network identity , i.e they have a permanent name and can be accessed using persistence dns names.
    Also when you scale the statefulsets , process is more controlled and seqiential.
    Statefulsets can automatically manage the pvc for each pod, providing persistent storage.
    While deployment is for stateless like webserver, mainly suited for horizontal scaling application , where microservices replicas are interchangeable. Given random names

    • @anmolhanchate8767
      @anmolhanchate8767 21 день тому

      he has spoked exactly chatgpt words I searched forbthe same..😂😂😂

  • @user-md6lp8hj6c
    @user-md6lp8hj6c 5 місяців тому

    Thank you for sharing.

  • @udaykumar8177
    @udaykumar8177 5 місяців тому

    Thank you for such a informative video

    • @LogicOpsLab
      @LogicOpsLab  5 місяців тому

      Glad you liked it 🙏🏻

    • @udaykumar8177
      @udaykumar8177 5 місяців тому

      For the last bonus question the answer provided by the candidate is right ? or something else is there ?@@LogicOpsLab

  • @sindhuravemuri2498
    @sindhuravemuri2498 3 місяці тому

    really helpful!

  • @venkateshwaran6895
    @venkateshwaran6895 6 місяців тому

    Great Questions! Good job dude!

  • @RohitDeployer
    @RohitDeployer 6 місяців тому

    It was really good one dude we request you to share more videos on this person really he is verry confident and potential person :)

    • @LogicOpsLab
      @LogicOpsLab  6 місяців тому +1

      Thanks for the support, Rohit. Folks like these are not easily reachable. It's an old interview, after 3-4 months of mail chains he gave me permission to post this interview.

    • @RohitDeployer
      @RohitDeployer 6 місяців тому

      Ohh but it's really great 👍 👌

  • @user-sc2gl7sk6t
    @user-sc2gl7sk6t 2 місяці тому

    Hi Mike,
    Myself dinesh from London
    It's an amazing video who is eagerly looking for DevOps culture interviews this video will be quite enough for K8s concept. Almost You guys covered up on major topics in K8s. The all the questions was crazy and answers had short and crispy. Please do your work for long to be frank I'm telling its very useful for me. Keep rocking !.....If possible can you do AWS & Azure related scenario based it will be really helpful for everyone thanks mate !.....all the best for your future.!.....

    • @LogicOpsLab
      @LogicOpsLab  2 місяці тому

      Thanks a lot for such kind words.

  • @Cloudnp9458
    @Cloudnp9458 Місяць тому

    Limits and resource quota set up using crds.
    Whenever there is situation of fair resource allocation and preventing resource exhaustion, we use these resource quota and limits.
    We define resource quota by checking cpu,ram and other resources . Once this is done we attach resource quota to certain namespace, whatever we have.

  • @AmitVerma-lo6rk
    @AmitVerma-lo6rk Місяць тому

    Nice interview 👍🏻

  • @dvssmallikarjun98
    @dvssmallikarjun98 6 місяців тому +3

    if you don't mind, can you add sections for each question in the future videos so it will be easy for the audience to navigate through each question asked. Thanks!

  • @sudheersahu7646
    @sudheersahu7646 6 місяців тому +1

    i am also preparing for an interview so these is good question

    • @LogicOpsLab
      @LogicOpsLab  6 місяців тому +1

      Thanks a lot, mate! Best Wishes!

  • @solvingtechmaze
    @solvingtechmaze 6 місяців тому

    One of the best kubernetes scenario based interview so far.

    • @LogicOpsLab
      @LogicOpsLab  6 місяців тому

      Thank you for all the support

  • @Knockout_Extreme
    @Knockout_Extreme 6 місяців тому

    Good interview

    • @LogicOpsLab
      @LogicOpsLab  6 місяців тому +1

      Appreciate the feedback.

    • @Knockout_Extreme
      @Knockout_Extreme 6 місяців тому

      @@LogicOpsLab i have interview on Monday, could you please help me with some document with scenario based questions for terraform, kubernetes, git, docker, Linux?

    • @LogicOpsLab
      @LogicOpsLab  6 місяців тому +1

      I'd suggest a mere document won't help. Just go through all the relevant video and learn. You will forget easily, while listening them like a podcast will help you better.

  • @shoban4104
    @shoban4104 4 місяці тому

    I am working in infra support monitoring. I dnt hv knowledege to give ans i am attnding interviewa these days asking mostly these type questions it helps me alot

  • @VivekMishra-wp5zh
    @VivekMishra-wp5zh 2 місяці тому

    Answer to the bonus question would be when we have applied hpa to an app with minimum replicas 3 and then if we try to scale it down to 2 it won't scale down

  • @RohitDeployer
    @RohitDeployer 6 місяців тому

    If possible pls rollout CICD QNAs woth this guy it would be verry great

    • @LogicOpsLab
      @LogicOpsLab  6 місяців тому

      Will try my best, mate. Cheers.

  • @mohammedilyas3033
    @mohammedilyas3033 6 місяців тому

    @bouns question: at run time using $kubectl scale --replicas=2 deployment.yaml ( as run time take more priority then declarative manifesto). I believe once u hit this command kube-scheduler take ur request and gives to replication controller and controller read imperatives as two replicas. So we would have two pods when u check kubectl get pods

    • @LogicOpsLab
      @LogicOpsLab  6 місяців тому +1

      Good answer. Now, what happens if even after this command things don't work as expected? What would be your thought process?

    • @mohammedilyas3033
      @mohammedilyas3033 6 місяців тому

      @@LogicOpsLab not sure ,if we do any modifications on pod metadata does it work ? But my assumption is replicaset functionality is to maintain the desired state of pods if we request two via run time it must be two pods running on cluster. Pls share correct approach to dis scenario.

    • @rohanekar
      @rohanekar 6 місяців тому

      I am also waiting for the ans

    • @udaykumar8177
      @udaykumar8177 5 місяців тому

      Waiting for the ans @@LogicOpsLab

    • @LogicOpsLab
      @LogicOpsLab  5 місяців тому

      ​ @mohammedilyas3033 @@rohanekar
      You go to the kube-system, there you check the kube-controller, see if everything is correct or not. Fix it, restart everything, it will work.

  • @ankitvarshney5989
    @ankitvarshney5989 5 місяців тому

    how we do canary deployment in argocd?

    • @LogicOpsLab
      @LogicOpsLab  5 місяців тому

      To perform canary deployments in Argo CD, you can follow these general steps:
      1. Ensure that Argo CD is properly installed and configured in your Kubernetes cluster.
      2. Define your application manifests in a Git repository. These manifests will include multiple versions of your application for canary deployment.
      3. Create Argo CD Application custom resources for each version of your application. Specify the desired replicas, service names, and any other relevant settings.
      4: Use annotations in your Kubernetes manifests to define canary deployment strategies. Argo CD supports annotations like `argocd.argoproj.io/rollouts`, where you can specify canary deployment settings.
      This is just a generic thing, this can be modified accordingly.
      5. Trigger the sync process in Argo CD to apply the changes and start the canary deployment.
      Here's a simplified example of how you might use annotations for canary deployment:
      ```yaml
      apiVersion: apps/v1
      kind: Deployment
      metadata:
      name: my-app
      annotations:
      argocd.argoproj.io/rollouts: '{"blueGreen":{"activeService":"my-app-active","previewService":"my-app-preview"}}'
      spec:
      replicas: 5
      template:
      metadata:
      labels:
      app: my-app
      spec:
      containers:
      - name: my-app
      image: myregistry/my-app:1.0
      ```
      In this example, the `argocd.argoproj.io/rollouts` annotation specifies a blue-green deployment strategy with active and preview services.
      Refer to the Argo CD documentation for the latest and detailed information.

    • @ankitvarshney5989
      @ankitvarshney5989 5 місяців тому

      @@LogicOpsLab Thanks bro

  • @akkyintish2519
    @akkyintish2519 6 місяців тому

    All questions are goods but one question u ask on k8s no sense between k8s jobs and cron jobs

  • @user-xl8pl8mv6z
    @user-xl8pl8mv6z 3 місяці тому

    how many years of experience he have on kubernetes ?

  • @Mr.X_001
    @Mr.X_001 3 місяці тому

    What is the experience of that guys giving interview?

    • @LogicOpsLab
      @LogicOpsLab  3 місяці тому

      I always discuss the total experience in IT and relative experience in DevOps and Cloud in the first 30 seconds of the video. Looks like people are skipping the intro 😕

  • @pavankumarchinthapalli9298
    @pavankumarchinthapalli9298 4 місяці тому

    hi

  • @user-wj5kx7uz7q
    @user-wj5kx7uz7q 9 днів тому

    QUESTIONS WITH ANSWERS--(WITH DISCUSSION)
    CI/CD Pipeline and Kubernetes 🌟
    The CI/CD pipeline uses Jenkins with a Git Flow branching strategy. Developers create their own feature branches, which are then merged into the development branch. When a release is ready, a new release branch is created from the development branch, which is then merged into the master branch.
    Git Flow Branching Strategy
    Branch Description
    Feature Developer-created branches for new features
    Development Main branch for development
    Release Branch created for releases
    Master Production-ready code
    Jenkins Stages
    SC Checkout
    Compile
    Build
    Test
    Code Coverage
    Code Quality Analysis
    Security Scan
    Vulnerability Scan
    Delivery
    Deployment
    Java-Based Web Application 📊
    The application is written in Java and uses Kubernetes.
    Experience with Kubernetes
    The candidate has experience with Kubernetes.
    Rolling Updates 🔄
    To perform a rolling update, follow these steps:
    Create a deployment YAML file, specifying the desired state of the application.
    Mention the API version, kind, and metadata in the YAML file.
    Define the replicas, selectors, and template in the YAML file.
    Specify the container image, port, and other details in the YAML file.
    Apply the YAML file using kubectl apply.
    Specify the rolling update strategy in the YAML file.
    Creating a New Version of the Docker Image
    To create a new version of the Docker image:
    Create a Dockerfile.
    Build an image from the Dockerfile.
    Use the new image for the pods.
    Horizontal Pod Autoscaling (HPA) ⚖
    Benefits of HPA
    "HPA is a resource that automatically scales the number of pods in a deployment, replica set, or stateful set based on metrics."
    Setting up HPA
    Enable the metric server in the cluster.
    Create a horizontal pod autoscaler YAML file, specifying the scale target reference, metrics, and other details.
    Apply the YAML file using kubectl apply.
    Monitor the HPA using kubectl get hpa and kubectl describe hpa.
    Custom Metrics
    Use custom metrics to enable HPA.
    Enable the metrics server in the cluster.
    Define custom metrics using Prometheus or other tools.
    Persistent Storage 📁
    Purpose of Persistent Storage
    "Persistent storage refers to the ability to store and retain data beyond the lifetime of a single container. It allows data to be saved and accessed even if pods are rescheduled or terminated, or if pods move to different nodes within the cluster."
    Setting up Persistent Storage
    Create a storage class, specifying the type of storage.
    Create a persistent volume claim (PVC), requesting storage resources based on the storage class.
    Mount the PVC in the application.
    Deploy the application.
    PV and PVC
    Term Description
    PV Persistent Volume, a piece of storage in the cluster provisioned by the administrator
    PVC Persistent Volume Claim, a request for storage resources by the user or application
    Multicontainer Pods 🚀
    Experience with Multicontainer Pods
    The candidate has experience with multicontainer pods, including sidecar containers.
    Using Multicontainer Pods
    Use sidecar containers for logging or monitoring.
    Deploy a pod with multiple containers, each running a different application or service.
    Managing Secrets 🔒
    Kubernetes Secrets
    "Kubernetes secrets store sensitive information in an encrypted format."
    Using Kubernetes Secrets
    Store sensitive information in secrets.
    Use secrets to manage confidential data in the cluster.## Encryption and Secret Management 💻
    Storing Sensitive Information
    We store sensitive information, such as API keys and database passwords, in a secret file using a basic algorithm. The key values are stored in a HashiCorp's Vault (Hashar W) based on the environment.
    Integrating with Jenkins
    We integrate Hashar W with Jenkins, which touches the passwords and secrets stored in the Vault.
    Service Mesh in Kubernetes 🌐
    Load Balancing and Traffic Management
    We use a service mesh, specifically Istio, for load balancing and traffic management. It also provides mutual TLS, certificate, and server certificate verification.
    Port Security Policies in Kubernetes 🔒
    Defining Security Configurations
    Port security policies allow administrators to define rules for controlling security configurations for pods. We implement port security policies using the PortSecurity admission controller.
    Enable the PortSecurity admission controller
    Write an admission.config file with the enabled admission plugins
    Define a constraint template with API version, kind, and spec
    Apply the constraint to enforce the host path policy
    Custom Resource Definitions (CRDs) in Kubernetes 📚
    Defining and Using Custom Resources
    CRDs allow us to define and use custom resources within our Kubernetes cluster. They help extend the Kubernetes API and create custom objects for specific applications.
    Example: We used CRDs for operations and controllers like Prometheus, creating custom resources for managing Prometheus instances.
    Network Policies in Kubernetes 🔗
    Fine-Grained Control of Network Traffic
    Network policies provide fine-grained control of network traffic within the cluster. We define rules and policies for controlling communication between pods.
    Ingress and egress rules
    Part selector field specifying which pods the policy applies to
    Name and namespace scope
    Rules are evaluated in order, with the first matching rule taking precedence
    Main Use Case: Implementing security and compliance by restricting access to sensitive data and services.
    Resource Quotas and Limits in Kubernetes ⚖
    Ensuring Fair Resource Allocation
    Resource quotas and limits ensure fair resource allocation and prevent resource exhaustion.
    Factors to Consider:
    Resource requirements of the application
    Critical applications requiring guaranteed resources
    Less critical applications with burstable resources
    Namespace isolation and capacity planning
    Implementation:
    Define a resource quota based on CPU, memory, and other resources
    Attach the resource quota to a specific namespace
    Horizontal Pod Scaling based on Custom Metrics 📈
    Scaling Applications based on Business-Specific Metrics
    We implement horizontal pod scaling based on custom metrics using a monitoring tool and a custom metric provider.
    Steps:
    Deploy a metric server in the Kubernetes cluster
    Implement a custom metric provider exposing application-specific metrics
    Deploy and configure the Kubernetes custom metric API server
    Use the custom metric API server with the Horizontal Pod Autoscaler (HPA)
    Example: We used Prometheus as a monitoring tool and the Prometheus adapter for Kubernetes to expose custom metrics.## Resource Management in Kubernetes 📈
    Critical Parts and Prioritization
    In order to ensure that critical parts of the system receive the resources they need, we assign the highest priority (PR) to them. This ensures that they continue to function reliably, even in emergency scenarios where resources are scarce.
    Priority Class Name
    Kubernetes provides a field called Priority Class Name, which allows us to assign a priority to pods. This feature can be enabled through the Priority and Preemption feature in Kubernetes.
    Kubernetes Job vs. Cron Job
    Kubernetes Job Cron Job
    Purpose Run a single task to completion Run a task periodically
    Design Designed for short-lived tasks Designed for long-lived tasks
    Example Batch processing, data migration Backups, data synchronization
    Restart Pods can be automatically restarted if they fail Automatically manages scheduling and execution
    Definition: A Kubernetes Job is a resource used to run a single task to completion. It is designed for short-lived tasks and can be used for batch processing or data migration.
    Definition: A Cron Job is a resource used to run a task periodically. It is designed for long-lived tasks and can be used for backups or data synchronization.
    Stateful Sets and Deployments
    Stateful Sets Deployments
    Purpose Manage stateful applications Manage stateless applications
    Design Designed for applications with ordered initialization requirements Designed for horizontal scaling
    Example Databases, distributed systems Web servers, microservices
    Volume Claims Automatically manage PVCs for each pod Does not manage PVCs
    Definition: A Stateful Set is a resource used to manage stateful applications, such as databases or distributed systems. It provides stable network identities and can automatically manage Persistent Volume Claims (PVCs) for each pod.
    Definition: A Deployment is a resource used to manage stateless applications, such as web servers or microservices. It is designed for horizontal scaling and does not manage PVCs.
    Changing Replica Counts
    There are two ways to change the replica count of a running replica set:
    Method 1: Edit the replica set file and save it.
    Method 2: Use the imperative command kubectl scale with the desired replica count.
    Troubleshooting Replica Count Issues
    If the replica count is not changing as expected, check for:
    Error messages or warnings in the output logs.
    Resource constraints specified in the replica set.
    Pod termination delays.
    Part disruptions, such as min ready seconds.
    By checking these areas, you can identify and resolve issues preventing the replica count from changing.

  • @kesavreddy7530
    @kesavreddy7530 6 місяців тому

    Selected ha bro?

  • @sagarsonawane7566
    @sagarsonawane7566 4 місяці тому

    Please add answer audio not useful