Enroll Here: Kubernetes Operators Intermediate Cognitive Class Exam Quiz Answers
Kubernetes Operators Intermediate Cognitive Class Certification Quiz Answers
Module 1 – Introduction to Operators Quiz Answers – Cognitive Class
Question 1: How does a user interact with an operator?
- By accessing the operator directly
- By using kubectl or whatever tool they use to interact with the normal Kubernetes API
- By using the operator-sdk CLI
- By using an operator-specific CLI
Question 2: What does the command “operator-sdk init” do?
- Initializes a new controller image for an operator
- Initializes the basic scaffolding for a brand new operator
- Initializes a new controller for an operator
- Initializes the a new Custom Resouce Definition for an operator
Question 3: There is one architecture pattern that all operators follow.
- True
- False
Question 4: How was the Memcached operator added to the cluster?
- By altering the core Kubernetes images to include our additional components
- By creating normal Kubernetes resources such as Deployments and Cluster Role Bindings
- By deploying components external to Kubernetes and connecting them to the cluster
- By modifying the behavior of core Kubernetes components
Question 5: What is the controller of our memcached operator responsible for?
- The reconciliation the desired state in the etcd store with the actual state running on the cluster
- Creating the new memcached type on our Kubernetes cluster
- Storing data about requested memcached objects
- Receiving and validation incoming API requests from users
Module 2 – Helm Operators Quiz Answers – Cognitive Class
Question 1: The Spec fields of our Custom Resource directly correlate to what part of the original Helm chart?
- Values.yaml
- The template files
- Chart.yaml
Question 2: Helm operators allow a fine degree of control over the reconciliation of your operator.
- True
- False
Question 3: What sets the suffix for any API groups the Helm operator will create or use?
- The range
- The domain
- The subset
- The group
Question 4: In the Kubernetes API, what is an API group?
- A collection of endpoints that contain related functionality.
- Any resource that consists of multiple dependent resources.
- An endpoint that contains related functionality.
- A group of related resources.
Question 5: The Helm operator controller we used was an off-the-shelf image that required no additional configuration.
- True
- False
Module 3 – Ansible Operators Quiz Answers – Cognitive Class
Question 1: What does an Ansible Role consist of?
- A collection of Kubernetes Custom Resources
- A collection of tasks and related scaffolding such as scripts, environment variable, etc. (correct)
- A collection of Ansible Playbooks
- A collection of scripts to run in order
Question 2: Why should you fill out the Custom Resource Definition in an Ansible operator?
- So that Kubernetes users will be able to use the Custom Resource
- So that Kubernetes users will be able to see what fields the Custom Resource should have
- So that Kubernetes admins will be able to allow access to the CRD
- So that the resulting Custom Resource will work
Question 3: The ansible-operator controller automatically populates the Kubernetes status of Custom Resource objects with the Ansible status of the Ansible object.
- True
- False
Question 4: What is the name of the file that configures the Ansible Role?
- ansible.yml
- main.yml
- crd.yml
- role.yml
Question 5: What of the following commands can be used to generate an Ansible Role?
- operator-sdk generate bundle
- operator-sdk create api
- operator-sdk create role
- operator-sdk init
Kubernetes Operators Intermediate Final Exam Answers – Cognitive Class
Question 1: Operators always consist of a Custom Resource Definition and a controller.
- True
- False
Question 2: When creating an operator with Operator-sdk, what does setting the domain do?
- Sets the
- Sets the suffix for any API groups the operator resources will exist in
- Sets the domain for any services created to access operator resources
- Sets the prefix for any API groups the operator resources will exist in
Question 3: In an Ansible operator, what is the actual source of truth for the behavior of our Memcached Custom Resource?
- The Custom Resource type itself
- The Ansible Role
- The Ansible Playbook
- The Custom Resource definition
Question 4: Why is creating new RBAC rules is required for an operator?
- To allow the Custom Resource access to the controller
- To allow the controller to see and modify our Custom Resource
- To allow the Custom Resource Definition access to the controller
- To allow the controller to see and modify our Custom Resource Definition
Question 5: Which of the following initializes the basic scaffolding for a brand new operator?
- operator-sdk start
- operator-sdk init
- operator-sdk generate bundle
- operator-sdk create api
Question 6: For a Golang operator, in types.go, MemcachedSpec and MemcachedStatus correspond directly with the Spec and Status of the resulting memcached Custom Resource.
- True
- False
Question 7: Which component of the Golang operator is responsible for the new memcached type?
- Controller
- Custom Resource Definition
- RBAC rules
- Custom Resource
Question 8: What does the following operator-sdk command do: “operator-sdk create api –kind Memcached –controller=true”
- Create the scaffolding for only the contoller for an operator
- Create the scaffolding for the Custom Resource Definition and controller of an operator
- Create the scaffolding for only the Custom Resource Definition for an operator
- Create the basic scaffolding for a new operator
Question 9: Golang operator controllers are based on a community image maintained by the operator-sdk community.
- True
- False
Question 10: How were the operators in the module added to the Kubernetes cluster?
- By altering the core Kubernetes images to include our additional components
- By creating normal Kubernetes resources such as Deployments and Cluster Role Bindings
- By deploying components external to Kubernetes and connecting them to the cluster
- By modifying the behavior of core Kubernetes components
Question 11: When is a Helm operator a good choice over other operator types?
- You have a preexisting Helm chart for your resource.
- You want to get something running as quickly as possible.
- You’re unfamiliar with reconciliation loops and want try writing an operator.
- All of the above.
Question 12: In the Ansible operator, what is the name of Ansible resource that is a collection tasks and related scaffolding such as scriptts and environment variables?
- Scenario
- Role
- Script
- Playbook
Question 13: A Kubernetes user can only interact with resources from operators with special tools designed specifically for that operator.
- True
- False
Question 14: How can an operator be deployed to a Kubernetes cluster?
- As a program running outside the Kubernetes cluster.
- As a program manually deployed inside the Kubernetes cluster using Deployments, Pods, etc.
- As a program deployed inside the Kubernetes cluster using Operator Lifecycle Manager
- All of the above
Question 15: To write a Helm operator, you must create a new Helm chart.
- True
- False
Introduction to Kubernetes Operators Intermediate
Intermediate-level understanding of Kubernetes Operators involves delving deeper into the design, development, and management of Operators for efficiently running applications on Kubernetes. Operators are software extensions that leverage the Kubernetes API to manage complex applications and automate operational tasks. Here are some intermediate concepts and considerations for Kubernetes Operators:
1. Custom Resource Definitions (CRDs):
- Definition: CRDs define custom resources and their behavior in a Kubernetes cluster. Operators use CRDs to extend the Kubernetes API with custom resources tailored to specific applications.
- Purpose: Enables the creation of custom resources that represent and control the state of complex applications.
2. Controller Design Patterns:
- Reconciliation Loop: Understanding and implementing the reconciliation loop is essential. The reconciliation loop continuously monitors the actual state of resources and brings them into the desired state.
- Finalizers: Implementing finalizers ensures that cleanup actions are performed before a custom resource is deleted.
3. Operator SDKs:
- SDK Usage: Explore and use Operator SDKs (e.g., Operator SDK for Go or Kubebuilder) to streamline Operator development. These SDKs provide tools and frameworks to scaffold, build, and test Operators.
- Code Generators: Learn to use code generators to automate the creation of boilerplate code, reducing manual effort and ensuring consistency.
4. Handling Upgrades:
- Rolling Upgrades: Design Operators to support rolling upgrades of applications. This involves updating application components without causing downtime.
- Versioning: Implement versioning mechanisms to manage changes in custom resources and ensure compatibility during upgrades.
5. Monitoring and Metrics:
- Prometheus Integration: Integrate Operators with Prometheus for monitoring and collecting metrics. Define custom metrics to gain insights into the health and performance of managed applications.
- Alerting: Implement alerting mechanisms based on collected metrics to detect and respond to potential issues.
6. Day-2 Operations:
- Backup and Restore: Provide mechanisms for backing up and restoring application state. This is crucial for disaster recovery and maintenance operations.
- Scaling: Design Operators to handle scaling operations dynamically based on changing resource requirements.
7. Configuration Management:
- External Configurations: Support external configuration sources, allowing users to specify configurations from various providers (e.g., ConfigMaps, Secrets, or external configuration files).
- Dynamic Configuration Updates: Implement mechanisms for dynamically updating configurations without requiring application restarts.
8. RBAC and Security:
- Role-Based Access Control (RBAC): Implement RBAC to control access to resources and actions performed by the Operator. Follow the principle of least privilege.
- Secrets Management: Integrate with Kubernetes Secrets for securely managing sensitive information.
9. Operator Lifecycle Manager (OLM):
- Usage and Integration: Explore OLM to manage the lifecycle of Operators, including installation, upgrade, and removal. Understand how OLM simplifies Operator management in a cluster.
Building intermediate-level Kubernetes Operators requires a combination of skills in Kubernetes, Go programming (or other programming languages), and a deep understanding of the application you are managing. Continuous learning and staying updated with the evolving Kubernetes ecosystem are crucial for building robust and effective Operators.