Deployments: Managing deployments, Inspecting a deployment, Rolling deployment, Deployment revisions and rollbacks
Kubernetes provides the concept of Deployments to manage the deployment of applications. A Deployment resource allows you to declaratively manage a Pod template, which includes the number of replicas to create, updates to apply, and the way to roll out changes to the Pod template. This abstraction helps in maintaining the desired state of the application, ensuring fault tolerance, and enabling scalability.
Inspecting a deployment involves reviewing the status of the deployment, such as the current version of the application running, the number of replicas, and the deployment strategy being used. This provides visibility into the health and performance of the deployed application instances.
Rolling deployment refers to the process of gradually updating the instances of the application, allowing for seamless updates while ensuring that a specified number of replicas are available and healthy at any given time. This helps in minimizing downtime and ensuring a smooth transition from one version to another.
Deployment revisions and rollbacks enable the handling of different versions of deployments. Each time a Deployment's Pod template is updated, a new revision is created, allowing for easy rollback to a previous version in case of issues or failures. This promotes reliability and robustness, enabling operators to quickly revert to a known good state.
Kubernetes Networking: Services, Ingresses
Kubernetes provides Services to enable a consistent way to access and communicate with pods. Services abstract away the details of how individual Pods are accessed, ensuring a stable endpoint for applications, regardless of changes to the underlying infrastructure.
Ingresses extend this functionality by providing a way to manage external access to services within a Kubernetes cluster. By using rules and configurations, Ingresses allow for the routing of external traffic to different services based on the request's host, path, or other criteria. This enhances the manageability and scalability of applications by simplifying the management of external access and traffic routing.
Kubernetes Volumes: Persistent volumes (PV) / persistent volume claims (PVC), Volume types, Considerations
Persistent volumes (PV) and persistent volume claims (PVC) address the need for reliable storage in a Kubernetes environment. PVs represent a piece of storage in the cluster, while PVCs are requests for storage by users. This separation allows for more flexibility and efficiency in managing storage resources, including different access modes and storage classes.
Volume types in Kubernetes cater to various storage requirements, such as networked storage, local storage, and cloud provider-specific storage. This enables users to select the most suitable storage solution for their applications, aligning with performance, durability, and cost considerations.
Considerations around volumes in Kubernetes encompass aspects like data reliability, performance, scalability, and data management operations. These considerations ensure that the applications have access to the right type of storage with the necessary attributes, allowing for optimal performance and reliability.
Security: Service accounts, RBAC, Audit log
Kubernetes offers multiple security features to protect the cluster and its workloads. Service accounts allow better control over permissions and access for the applications running in the cluster, ensuring that they have the necessary privileges to perform their intended functions while minimizing unnecessary access.
Role-based access control (RBAC) provides a fine-grained authorization system for controlling access to Kubernetes resources. RBAC allows administrators to define and enforce policies that limit the actions that users, ServiceAccounts, or groups can perform within a cluster, enhancing security and compliance.
Audit logging in Kubernetes captures a record of requests made to the API server, including the user making the request, the type of request, and the response. This log helps in understanding system behavior, investigating security incidents, and complying with regulatory requirements, thereby bolstering the overall security posture of the cluster.
In conclusion, Kubernetes incorporates these concepts and features to address critical requirements of modern application deployment, including scalability, reliability, security, and manageability. By understanding and effectively leveraging these capabilities, organizations can build and operate resilient and secure containerized applications at scale.
https://cdn2.hubspot.net/hubfs/732832/Gated%20Content/WP_The%20Beginners%20Guide%20to%20Kubernetes_2020.pdf