دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: [Third Edition] نویسندگان: Marc Boorshtein &, Scott Surovich سری: ISBN (شابک) : 9781835086957 ناشر: Packt سال نشر: 2024 تعداد صفحات: 654 زبان: English فرمت فایل : EPUB (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 19 Mb
در صورت تبدیل فایل کتاب Kubernetes – An Enterprise Guide: Master containerized application deployments, integrate enterprise systems, 3rd Edition به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب Kubernetes – یک راهنمای سازمانی: استقرار برنامه های کاربردی کانتینری شده، یکپارچه سازی سیستم های سازمانی، نسخه سوم نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Preface Who this book is for What this book covers To get the most out of this book Supplementary content Get in touch Docker and Container Essentials Technical requirements Understanding the need for containerization Understanding why Kubernetes removed Docker Introducing Docker Docker versus Moby Understanding Docker Containers are ephemeral Docker images Image layers Persistent data Accessing services running in containers Installing Docker Preparing to install Docker Installing Docker on Ubuntu Granting Docker permissions Using the Docker CLI docker help docker run docker ps docker start and stop docker attach docker exec docker logs docker rm docker pull/run docker build Summary Questions Join our book’s Discord space Deploying Kubernetes Using KinD Technical requirements Introducing Kubernetes components and objects Interacting with a cluster Using development clusters Why did we select KinD for this book? Working with a basic KinD Kubernetes cluster Understanding the node image KinD and Docker networking Keeping track of the nesting dolls Installing KinD Installing KinD – prerequisites Installing kubectl Installing the KinD binary Creating a KinD cluster Creating a simple cluster Deleting a cluster Creating a cluster config file Multi-node cluster configuration Customizing the control plane and Kubelet options Creating a custom KinD cluster Reviewing your KinD cluster KinD storage objects Storage drivers KinD storage classes Using KinD’s Storage Provisioner Adding a custom load balancer for Ingress Creating the KinD cluster configuration The HAProxy configuration file Understanding HAProxy traffic flow Simulating a kubelet failure Summary Questions Kubernetes Bootcamp Technical requirements An overview of Kubernetes components Exploring the control plane The Kubernetes API server The etcd database kube-scheduler kube-controller-manager cloud-controller-manager Understanding the worker node components kubelet kube-proxy Container runtime Interacting with the API server Using the Kubernetes kubectl utility Understanding the verbose option General kubectl commands Introducing Kubernetes resources Kubernetes manifests What are Kubernetes resources? Reviewing Kubernetes resources Apiservices CertificateSigningRequests ClusterRoles ClusterRoleBindings ComponentStatus ConfigMaps ControllerRevisions CronJobs CSI drivers CSI nodes CSIStorageCapacities CustomResourceDefinitions DaemonSets Deployments Endpoints EndPointSlices Events FlowSchemas HorizontalPodAutoscalers IngressClasses Ingress Jobs LimitRanges LocalSubjectAccessReview MutatingWebhookConfiguration Namespaces NetworkPolicies Nodes PersistentVolumeClaims PersistentVolumes PodDisruptionBudgets Pods PodTemplates PriorityClasses PriorityLevelConfigurations ReplicaSets Replication controllers ResourceQuotas RoleBindings Roles RuntimeClasses Secrets SelfSubjectAccessReviews SelfSubjectRulesReviews Service accounts Services StatefulSets Storage classes SubjectAccessReviews TokenReviews ValidatingWebhookConfigurations VolumeAttachments Summary Questions Join our book’s Discord space Services, Load Balancing, and Network Policies Technical requirements Exposing workloads to requests Understanding how Services work Creating a Service Using DNS to resolve services Understanding different service types The ClusterIP service The NodePort service The LoadBalancer service The ExternalName service Introduction to load balancers Understanding the OSI model Layer 7 load balancers Name resolution and layer 7 load balancers Using nip.io for name resolution Creating Ingress rules Resolving Names in Ingress Controllers Using Ingress Controllers for non-HTTP traffic Layer 4 load balancers Layer 4 load balancer options Using MetalLB as a layer 4 load balancer Installing MetalLB Understanding MetalLB’s custom resources MetalLB components Creating a LoadBalancer service Advanced pool configurations Disabling automatic address assignments Assigning a static IP address to a service Using multiple address pools IP pool scoping Handling buggy networks Using multiple protocols Introducing Network Policies Network policy object overview The podSelector The policyTypes Creating a Network Policy Tools to create network policies Summary Questions External DNS and Global Load Balancing Technical requirements Making service names available externally Setting up ExternalDNS Integrating ExternalDNS and CoreDNS Adding an ETCD zone to CoreDNS ExternalDNS configuration options Creating a LoadBalancer service with ExternalDNS integration Integrating CoreDNS with an enterprise DNS server Exposing CoreDNS to external requests Configuring the primary DNS server Testing DNS forwarding to CoreDNS Load balancing between multiple clusters Introducing the Kubernetes Global Balancer Requirements for K8GB Deploying K8GB to a cluster Understanding K8GB load balancing options Customizing the Helm chart values Using Helm to install K8GB Delegating our load balancing zone Deploying a highly available application using K8GB Adding an application to K8GB using custom resources Adding an application to K8GB using Ingress annotations Understanding how K8GB provides global load balancing Keeping the K8GB CoreDNS servers in sync Summary Questions Join our book’s Discord space Integrating Authentication into Your Cluster Technical requirements Getting Help Understanding how Kubernetes knows who you are External users Groups in Kubernetes Service accounts Understanding OpenID Connect The OpenID Connect protocol Following OIDC and the API’s interaction id_token Other authentication options Certificates Service accounts TokenRequest API Custom authentication webhooks Configuring KinD for OpenID Connect Addressing the requirements Using LDAP and Active Directory with Kubernetes Mapping Active Directory groups to RBAC RoleBindings Kubernetes Dashboard access Kubernetes CLI access Enterprise compliance requirements Pulling it all together Deploying OpenUnison Configuring the Kubernetes API to use OIDC Verifying OIDC integration Using your tokens with kubectl Introducing impersonation to integrate authentication with cloud-managed clusters What is Impersonation? Security considerations Configuring your cluster for impersonation Testing Impersonation Using Impersonation for Debugging Configuring Impersonation without OpenUnison Impersonation RBAC policies Default groups Inbound Impersonation Privileged Access to Clusters Using a Privileged User Account Impersonating a Privileged User Temporarily Authorizing Privilege Authenticating from pipelines Using tokens Using certificates Using a pipeline’s identity Avoiding anti-patterns Summary Questions Answers RBAC Policies and Auditing Technical requirements Introduction to RBAC What’s a Role? Identifying a Role Roles versus ClusterRoles Negative Roles Aggregated ClusterRoles RoleBindings and ClusterRoleBindings Combining ClusterRoles and RoleBindings Mapping enterprise identities to Kubernetes to authorize access to resources Implementing namespace multi-tenancy Kubernetes auditing Creating an audit policy Enabling auditing on a cluster Using audit2rbac to debug policies Summary Questions Answers Join our book’s Discord space Managing Secrets Technical Requirements Getting Help Examining the difference between Secrets and Configuration Data Managing Secrets in an Enterprise Threats to Secrets at Rest Threats to Secrets in Transit Protecting Secrets in Your Applications Understanding Secrets Managers Storing Secrets as Secret Objects Sealed Secrets External Secrets Managers Using a Hybrid of External Secrets Management and Secret Objects Integrating Secrets into Your Deployments Volume Mounts Using Kubernetes Secrets Using Vault’s Sidecar Injector Environment Variables Using Kubernetes Secrets Using the Vault Sidecar Using the Kubernetes Secrets API Using the Vault API Summary Questions Answers Building Multitenant Clusters with vClusters Technical requirements Getting Help The Benefits and Challenges of Multitenancy Exploring the Benefits of Multitenancy The Challenges of Multitenant Kubernetes Using vClusters for Tenants Deploying vClusters Securely Accessing vClusters Accessing External Services from a vCluster Creating and Operating High-Availability vClusters Understanding vCluster High Availability Upgrading vClusters Building a Multitenant Cluster with Self Service Analyzing Requirements Designing the Multitenant Platform Deploying Our Multitenant Platform Summary Questions Answers Join our book’s Discord space Deploying a Secured Kubernetes Dashboard Technical requirements Getting help How does the dashboard know who you are? Dashboard architecture Authentication methods Understanding dashboard security risks Exploring Dashboard Security Issues Using a token to log in Unencrypted Connections Deploying the dashboard with a reverse proxy Local dashboards Other cluster-level applications Integrating the dashboard with OpenUnison What’s changed in the Kubernetes Dashboard 7.0 Summary Questions Answers Extending Security Using Open Policy Agent Technical requirements Introduction to dynamic admission controllers What is OPA and how does it work? OPA architecture Rego, the OPA policy language Gatekeeper Deploying Gatekeeper Automated testing framework Using Rego to write policies Developing an OPA policy Testing an OPA policy Deploying policies to Gatekeeper Building dynamic policies Debugging Rego Using existing policies Enforcing Ingress policies Enabling the Gatekeeper cache Mocking up test data Building and deploying our policy Mutating objects and default values Creating policies without Rego Using Kubernetes’ validating admission policies Summary Questions Answers Join our book’s Discord space Node Security with Gatekeeper Technical requirements What is node security? Understanding the difference between containers and VMs Container breakouts Properly designing containers Using and Debugging Distroless Images Scanning Images for Known Exploits Enforcing node security with Gatekeeper What about Pod Security Policies? What are the differences between PSPs, PSA, and Gatekeeper? Authorizing node security policies Deploying and debugging node security policies Generating security context defaults Enforcing cluster policies Debugging constraint violations Scaling policy deployment in multi-tenant clusters Using Pod Security Standards to enforce Node Security Summary Questions Answers KubeArmor Securing Your Runtime Technical requirements What is runtime security? Introducing KubeArmor Introduction to Linux Security Welcome to KubeArmor Container security Inline mitigation versus post-attack mitigation Zero-day vulnerability CI/CD pipeline integration Robust auditing and logging Enhanced container visibility Least privilege tenet adherence Policy enforcement Staying in compliance Policy impact testing Multi-tenancy support Cluster requirements for the exercises Deploying KubeArmor Enabling KubeArmor logging KubeArmor and LSM policies Creating a KubeArmorSecurityPolicy Using karmor to interact with KubeArmor karmor install and uninstall karmor probe karmor profile karmor recommend karmor logs karmor vm Summary Questions Answers Join our book’s Discord space Backing Up Workloads Technical requirements Understanding Kubernetes backups Performing an etcd backup Backing up the required certificates Backing up the etcd database Introducing and setting up VMware’s Velero Velero requirements Installing the Velero CLI Installing Velero Backup storage location Deploying MinIO Exposing MinIO and the console Installing Velero Using Velero to back up workloads and PVCs Backing up PVCs Using the opt-out approach Using the opt-in approach Limitations of backing up data Running a one-time cluster backup Scheduling a cluster backup Creating a custom backup Managing Velero using the CLI Using common Velero commands Listing Velero objects Retrieving details for a Velero object Creating and deleting objects Restoring from a backup Restoring in action Restoring a deployment from a backup Simulating a failure Restoring a namespace Using a backup to create workloads in a new cluster Backing up the cluster Building a new cluster Restoring a backup to the new cluster Installing Velero in the new cluster Restoring a backup in a new cluster Deleting the new cluster Summary Questions Answers Monitoring Clusters and Workloads Technical Requirements Getting Help Managing Metrics in Kubernetes How Kubernetes Provides Metrics Deploying the Prometheus Stack Introduction to Prometheus How Does Prometheus Collect Metrics? Common Kubernetes Metrics Querying Prometheus with PromQL Alerting with Alertmanager How Do You Know Whether Something Is Broken? Alerting Your Team Based on Metrics Silencing Alerts Visualizing Data with Grafana Creating Your Own Graphs Monitoring Applications Why You Should Add Metrics to Your Applications Adding Metrics to OpenUnison Securing Access to the Metrics Endpoint Securing Access to Your Monitoring Stack Log Management in Kubernetes Understanding Container Logs Introducing OpenSearch Deploying OpenSearch Tracing Logs from Your Container to Your Console Viewing Log Data in Kibana Summary Questions Answers Join our book’s Discord space An Introduction to Istio Technical requirements Understanding the Control Plane and Data Plane The Control Plane The Data Plane Why should you care about a Service mesh? Workload observability Traffic management Blue/green deployments Canary deployments Finding issues before they happen Security Introduction to Istio concepts Understanding the Istio components Making the Control Plane simple with istiod Understanding istio-ingressgateway Understanding istio-egressgateway Installing Istio Downloading Istio Installing Istio using a profile Exposing Istio in a KinD cluster Introducing Istio resources Authorization policies Example 1: Denying and allowing all access Example 2: Allowing only GET methods to a workload Example 3: Allowing requests from a specific source Gateways Virtual services Destination rules Peer authentication Request authentication and authorization policies Service entries Sidecars Envoy filters WASM plugins Deploying add-on components to provide observability Installing Istio add-ons Installing Kiali Deploying an application into the Service mesh Deploying your first application into the mesh Using Kiali to observe mesh workloads The Kiali overview screen Using the Graph view Using the Applications view Using the Workloads view Using the Services view The Istio Config view The future: Ambient mesh Summary Questions Answers Building and Deploying Applications on Istio Technical requirements Comparing microservices and monoliths My history with microservices versus monolithic architecture Comparing architectures in an application Monolithic application design Microservices design Choosing between monoliths and microservices Using Istio to help manage microservices Deploying a monolith Exposing our monolith outside our cluster Configuring sticky sessions Integrating Kiali and OpenUnison Building a microservice Deploying Hello World Integrating authentication into our service Authorizing access to our service Telling your service who’s using it Authorizing user entitlements Authorizing in service Using OPA with Istio Creating an OPA Authorization Rule Calling other services Using OAuth2 Token Exchange Passing tokens between services Using simple impersonation Do I need an API gateway? Summary Questions Join our book’s Discord space Provisioning a Multitenant Platform Technical requirements Designing a pipeline Opinionated platforms Securing your pipeline Building our platform’s requirements Choosing our technology stack Designing our platform architecture Securely managing a remote Kubernetes cluster Securely pushing and pulling images Using Infrastructure as Code for deployment Automating tenant onboarding Designing a GitOps strategy Considerations for building an Internal Developer Platform Summary Questions Answers Building a Developer Portal Technical Requirements Fulfilling Compute Requirements Using Cloud-Managed Kubernetes Building a Home Lab Customizing Nodes Accessing Services on Your Nodes Deploying Pulumi Deploying our IDP Setting Up Pulumi Initial Deployment Unsealing Vault Completing the Harbor Configuration Completing the GitLab Configuration Generating a GitLab Runner Generating a GitLab Personal Access Token Finishing the Control Plane Rollout Integrating Development and Production Bootstrapping GitOps with OpenUnison Onboarding a Tenant Deploying an Application Promoting to Production Adding Users to a Tenant Expanding Our Platform Different Sources of Identity Integrating Monitoring and Logging Integrating Policy Management Replacing Components Summary Questions Answers Join our book’s Discord space Other Books You May Enjoy Share your thohughts Index