{"product_id":"139455","title":"Kubernetes in Action ","description":"\u003ccenter\u003e\u003cdiv style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/tmgdisk01.cafe24.com\/images\/vs\/4172\/sv\/3jXPBvo5z7jfM25OiGmkvAuhv2yfWT.png?v=1765074955\" style=\"max-width:100%;max-height:10px\"\u003e\u003c\/div\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\n\n\u003cdiv style=\"width:95%\"\u003e\n\n\u003cdiv style=\"text-align:center;font-size:30px;font-weight:bolder;line-height:1.6em\"\u003e Kubernetes in Action \u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"border-bottom:1px;border-bottom-style:dotted;border-color:;padding-bottom:20px\"\u003e\u003ccenter\u003e\u003ctable align=\"center\" width=\"100%\"\u003e\u003ctbody style=\"border:0px\"\u003e\n\n\u003ctr\u003e\u003ctd align=\"center\" style=\"line-height:1.2em;text-align:center;font-size:18px;color:black;font-weight:bold;padding-bottom:20px;\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\u003ctr\u003e\u003ctd style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/image.yes24.com\/goods\/89607047\/XL\" style=\"max-width:100%;height:auto\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/center\u003e\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;{split_style6}padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e Description \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;word-break:break-all;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eBook Introduction\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\u003cdiv\u003e This explains how to effectively develop and operate applications using Kubernetes in a way that even beginners can easily understand.\u003cbr\u003e Examples and diagrams are provided to help you clearly understand the Kubernetes architecture and the concepts of each object.\u003cbr\u003e The latter half also provides an easy explanation of Kubernetes' internal structure and operating principles, allowing you to examine both the inside and outside of Kubernetes.\u003cbr\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cul\u003e\u003cli\u003e You can preview some of the book's contents.\u003cbr\u003e \u003cspan\u003ePreview\u003c\/span\u003e\n\n\u003c\/li\u003e\u003c\/ul\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eindex\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e Part 1.\u003cbr\u003e Kubernetes Overview\u003cbr\u003e\u003cbr\u003e Chapter 1.\u003cbr\u003e Introduction to Kubernetes\u003cbr\u003e\u003cbr\u003e 1.1 Why a System Like Kubernetes Is Needed\u003cbr\u003e 1.1.1 Transitioning from Monolithic Applications to Microservices\u003cbr\u003e 1.1.2 Providing a consistent environment for applications\u003cbr\u003e 1.1.3 Transitioning to Continuous Delivery: DevOps and NoOps \u003cbr\u003e1.2 Introduction to Container Technology\u003cbr\u003e 1.2.1 Understanding Containers\u003cbr\u003e 1.2.2 Introducing the Docker Container Platform\u003cbr\u003e 1.2.3 Introducing rkt as an alternative to Docker\u003cbr\u003e 1.3 Introduction to Kubernetes\u003cbr\u003e 1.3.1 The Origins of Kubernetes\u003cbr\u003e 1.3.2 A Broader View of Kubernetes\u003cbr\u003e 1.3.3 Understanding Kubernetes Cluster Architecture\u003cbr\u003e 1.3.4 Running Applications on Kubernetes\u003cbr\u003e 1.3.5 Benefits of Using Kubernetes\u003cbr\u003e 1.4 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 2.\u003cbr\u003e First Steps with Docker and Kubernetes\u003cbr\u003e\u003cbr\u003e 2.1 Creating, Running, and Sharing Container Images Using Docker\u003cbr\u003e 2.1.1 Installing Docker and Running the Hello World Container\u003cbr\u003e 2.1.2 Creating a Simple Node.js Application\u003cbr\u003e 2.1.3 Creating a Dockerfile for the image\u003cbr\u003e 2.1.4 Creating a Container Image\u003cbr\u003e 2.1.5 Running the container image\u003cbr\u003e 2.1.6 Exploring Inside a Running Container\u003cbr\u003e 2.1.7 Stopping and Deleting Containers\u003cbr\u003e 2.1.8 Pushing images to the image registry\u003cbr\u003e 2.2 Installing a Kubernetes Cluster\u003cbr\u003e 2.2.1 Running a Single-Node Kubernetes Cluster Using Minikube \u003cbr\u003e2.2.2 Using a Managed Kubernetes Cluster with Google Kubernetes Engine\u003cbr\u003e 2.2.3 Setting up kubectl aliases and command-line autocompletion\u003cbr\u003e 2.3 Running Your First Application on Kubernetes\u003cbr\u003e 2.3.1 Running a Node.js Application\u003cbr\u003e 2.3.2 Accessing the Web Application\u003cbr\u003e 2.3.3 Logical part of the system\u003cbr\u003e 2.3.4 Application Horizontal Scaling\u003cbr\u003e 2.3.5 Checking the Node Where the Application is Running\u003cbr\u003e 2.3.6 Introducing the Kubernetes Dashboard\u003cbr\u003e 2.4 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Part 2.\u003cbr\u003e Kubernetes Core Concepts\u003cbr\u003e\u003cbr\u003e Chapter 3.\u003cbr\u003e Pods: Running containers in Kubernetes\u003cbr\u003e\u003cbr\u003e 3.1 Introduction to Pads\u003cbr\u003e 3.1.1 Why Pads Are Needed\u003cbr\u003e 3.1.2 Understanding Pads\u003cbr\u003e 3.1.3 Proper configuration of containers in a pod\u003cbr\u003e 3.2 Creating a pod with a YAML or JSON descriptor\u003cbr\u003e 3.2.1 Examining the YAML descriptor of an existing pod\u003cbr\u003e 3.2.2 Writing a simple YAML definition defining a pod\u003cbr\u003e 3.2.3 Creating a pod with the kubectl create command\u003cbr\u003e 3.2.4 Viewing Application Logs\u003cbr\u003e 3.2.5 Sending a request to a pod \u003cbr\u003e3.3 Configuring pods using labels\u003cbr\u003e 3.3.1 Label Introduction\u003cbr\u003e 3.3.2 Labeling when creating a pod\u003cbr\u003e 3.3.3 Modifying existing pad labels\u003cbr\u003e 3.4 Listing a subset of pods using label selectors\u003cbr\u003e 3.4.1 Listing pods using label selectors\u003cbr\u003e 3.4.2 Using multiple conditions in label selectors\u003cbr\u003e 3.5 Restricting pod scheduling using labels and selectors\u003cbr\u003e 3.5.1 Using Labels to Classify Worker Nodes\u003cbr\u003e 3.5.2 Scheduling pods on specific nodes\u003cbr\u003e 3.5.3 Scheduling to a specific node\u003cbr\u003e 3.6 Annotating Pads\u003cbr\u003e 3.6.1 Querying annotations on an object\u003cbr\u003e 3.6.2 Adding and Modifying Annotations\u003cbr\u003e 3.7 Grouping Resources Using Namespaces\u003cbr\u003e 3.7.1 The Need for Namespaces\u003cbr\u003e 3.7.2 Exploring Other Namespaces and Pods\u003cbr\u003e 3.7.3 Creating a Namespace\u003cbr\u003e 3.7.4 Managing Objects in Other Namespaces\u003cbr\u003e 3.7.5 Understanding the Isolation Provided by Namespaces\u003cbr\u003e 3.8 Stopping and Removing Pads\u003cbr\u003e 3.8.1 Deleting a pod by name \u003cbr\u003e3.8.2 Deleting a Pod Using a Label Selector\u003cbr\u003e 3.8.3 Removing pods with deleted namespaces\u003cbr\u003e 3.8.4 Delete all pods within a namespace while maintaining the namespace\u003cbr\u003e 3.8.5 Delete (almost) all resources in a namespace\u003cbr\u003e 3.9 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 4.\u003cbr\u003e Replication and Other Controllers: Managed Pod Deployment\u003cbr\u003e\u003cbr\u003e 4.1 Keeping the Pad Stable\u003cbr\u003e 4.1.1 Introducing the Liveness Probe\u003cbr\u003e 4.1.2 Creating HTTP-based liveness probes\u003cbr\u003e 4.1.3 Checking the Liveness Probe in Action\u003cbr\u003e 4.1.4 Setting Additional Properties of the Liveness Probe\u003cbr\u003e 4.1.5 Creating Effective Liveness Probes\u003cbr\u003e 4.2 Introduction to Replication Controller\u003cbr\u003e 4.2.1 Replication Controller Operation\u003cbr\u003e 4.2.2 Creating a Replication Controller\u003cbr\u003e 4.2.3 Verifying Replication Controller Operation\u003cbr\u003e 4.2.4 Moving Pods In and Out of a ReplicationController's Scope\u003cbr\u003e 4.2.5 Changing the Pad Template\u003cbr\u003e 4.2.6 Horizontal Pad Scaling\u003cbr\u003e 4.2.7 Deleting a Replication Controller \u003cbr\u003e4.3 Using ReplicaSets Instead of ReplicationControllers\u003cbr\u003e 4.3.1 Comparison of ReplicaSets and ReplicationControllers\u003cbr\u003e 4.3.2 Defining a ReplicaSet\u003cbr\u003e 4.3.3 Creating and inspecting a replica set\u003cbr\u003e 4.3.4 Using More Expressive Label Selectors for ReplicaSets\u003cbr\u003e 4.3.5 ReplicaSet Cleanup\u003cbr\u003e 4.4 Using DaemonSet to Run Exactly One Pod on Each Node\u003cbr\u003e 4.4.1 Running Pods on All Nodes with DaemonSet\u003cbr\u003e 4.4.2 Running Pods Only on Specific Nodes Using DaemonSets\u003cbr\u003e 4.5 Running a pod that performs a single, complete task\u003cbr\u003e 4.5.1 Introduction to Job Resources\u003cbr\u003e 4.5.2 Defining Job Resources\u003cbr\u003e 4.5.3 Viewing the Jobs That Run the Pods\u003cbr\u003e 4.5.4 Running Multiple Pod Instances in a Job\u003cbr\u003e 4.5.5 Limiting the time it takes for a job pod to complete\u003cbr\u003e 4.6 Scheduling a job to run periodically or once\u003cbr\u003e 4.6.1 Creating a cron job\u003cbr\u003e 4.6.2 Understanding How Scheduled Jobs Run\u003cbr\u003e 4.7 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 5. \u003cbr\u003eService: Enables clients to discover and communicate with pods.\u003cbr\u003e\u003cbr\u003e 5.1 Service Introduction\u003cbr\u003e 5.1.1 Creating a Service\u003cbr\u003e 5.1.2 Service Search\u003cbr\u003e 5.2 Connecting to Services Outside the Cluster\u003cbr\u003e 5.2.1 Introducing Service Endpoints\u003cbr\u003e 5.2.2 Manually Configuring Service Endpoints\u003cbr\u003e 5.2.3 Creating an Alias ​​for an External Service\u003cbr\u003e 5.3 Exposing Services to External Clients\u003cbr\u003e 5.3.1 Using the Nodeport Service\u003cbr\u003e 5.3.2 Exposing Services to External Load Balancers\u003cbr\u003e 5.3.3 Understanding the Characteristics of External Connections\u003cbr\u003e 5.4 Exposing Services Externally as Ingress Resources\u003cbr\u003e 5.4.1 Creating an Ingress Resource\u003cbr\u003e 5.4.2 Accessing Services with Ingress\u003cbr\u003e 5.4.3 Exposing Multiple Services with a Single Ingress\u003cbr\u003e 5.4.4 Configuring Ingress to Handle TLS Traffic\u003cbr\u003e 5.5 Signaling when a pod is ready to accept connections\u003cbr\u003e 5.5.1 Introduction to Readyness Probes\u003cbr\u003e 5.5.2 Adding a readiness probe to the pod\u003cbr\u003e 5.5.3 Functions that a readiness probe must perform in a real-world environment\u003cbr\u003e 5.6 Finding Individual Pods with Headless Services \u003cbr\u003e5.6.1 Creating a Headless Service\u003cbr\u003e 5.6.2 Finding Pods with DNS\u003cbr\u003e 5.6.3 Search all pods - including unprepared pods\u003cbr\u003e 5.7 Troubleshooting Service Issues\u003cbr\u003e 5.8 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 6.\u003cbr\u003e Volume: Attaching disk storage to a container\u003cbr\u003e\u003cbr\u003e 6.1 Introduction to Volume\u003cbr\u003e 6.1.1 Volume Description of the Example\u003cbr\u003e 6.1.2 Introducing Available Volume Types\u003cbr\u003e 6.2 Sharing data between containers using volumes\u003cbr\u003e 6.2.1 Using emptyDir volumes\u003cbr\u003e 6.2.2 Using a Git Repository as a Volume\u003cbr\u003e 6.3 File Access on Worker Node Filesystem\u003cbr\u003e 6.3.1 Introducing the hostPath volume\u003cbr\u003e 6.3.2 Checking System Pods Using HostPath Volumes\u003cbr\u003e 6.4 Using Persistent Storage\u003cbr\u003e 6.4.1 Using GCE Persistent Disks as Pod Volumes\u003cbr\u003e 6.4.2 Using Other Types of Volumes with Persistent Storage\u003cbr\u003e 6.5-based storage technology and pod separation\u003cbr\u003e 6.5.1 Introducing PersistentVolumes and PersistentVolumeClaims\u003cbr\u003e 6.5.2 Creating a Persistent Volume\u003cbr\u003e 6.5.3 Requesting a Persistent Volume by Creating a Persistent Volume Claim \u003cbr\u003e6.5.4 Using PersistentVolumeClaims in Pods\u003cbr\u003e 6.5.5 Understanding the Benefits of Using PersistentVolumes and PersistentVolumeClaims\u003cbr\u003e 6.5.6 Reusing PersistentVolumes\u003cbr\u003e 6.6 Dynamic Provisioning of Persistent Volumes\u003cbr\u003e 6.6.1 Defining Available Storage Types through StorageClass Resources\u003cbr\u003e 6.6.2 Requesting a Storage Class in a PersistentVolumeClaim\u003cbr\u003e 6.6.3 Dynamic provisioning without specifying a storage class\u003cbr\u003e 6.7 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 7.\u003cbr\u003e ConfigMaps and Secrets: Application Settings\u003cbr\u003e\u003cbr\u003e 7.1 Configuring Containerized Applications\u003cbr\u003e 7.2 Passing command-line arguments to a container\u003cbr\u003e 7.2.1 Defining Commands and Arguments in Docker\u003cbr\u003e 7.2.2 Redefining Commands and Arguments in Kubernetes\u003cbr\u003e 7.3 Setting container environment variables\u003cbr\u003e 7.3.1 Specifying environment variables in container definitions\u003cbr\u003e 7.3.2 Referencing other environment variables from variable values\u003cbr\u003e 7.3.3 Disadvantages of Hardcoded Environment Variables\u003cbr\u003e 7.4 Separating settings with ConfigMap\u003cbr\u003e 7.4.1 Introduction to ConfigMap\u003cbr\u003e 7.4.2 Creating a ConfigMap \u003cbr\u003e7.4.3 Passing ConfigMap entries to containers as environment variables\u003cbr\u003e 7.4.4 Passing all items in a configmap as environment variables at once\u003cbr\u003e 7.4.5 Passing ConfigMap Entries as Command Line Arguments\u003cbr\u003e 7.4.6 Expose ConfigMap entries as files using ConfigMap volumes\u003cbr\u003e 7.4.7 Updating application settings without restarting the application\u003cbr\u003e 7.5 Passing sensitive data to containers using secrets\u003cbr\u003e 7.5.1 Introducing Secret\u003cbr\u003e 7.5.2 Introducing the Basic Token Secret\u003cbr\u003e 7.5.3 Creating a Secret\u003cbr\u003e 7.5.4 Comparing ConfigMap and Secret\u003cbr\u003e 7.5.5 Using Secrets in Pads\u003cbr\u003e 7.5.6 Understanding the Secrets Used When Retrieving Images\u003cbr\u003e 7.6 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 8.\u003cbr\u003e Accessing pod metadata and other resources from your application\u003cbr\u003e\u003cbr\u003e 8.1 Passing metadata through the Downward API\u003cbr\u003e 8.1.1 Understanding Available Metadata\u003cbr\u003e 8.1.2 Exposing metadata as environment variables\u003cbr\u003e 8.1.3 Passing metadata as a file to a downwardAPI volume\u003cbr\u003e 8.2 Communicating with the Kubernetes API Server \u003cbr\u003e8.2.1 Exploring the Kubernetes REST API\u003cbr\u003e 8.2.2 Communicating with the API Server within a Pod\u003cbr\u003e 8.2.3 Simplifying API Server Communication Using Ambassador Containers\u003cbr\u003e 8.2.4 Communicating with the API Server Using the Client Library\u003cbr\u003e 8.3 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 9.\u003cbr\u003e Deployment: Declarative Application Updates\u003cbr\u003e\u003cbr\u003e 9.1 Updating Applications Running on Pods\u003cbr\u003e 9.1.1 Delete the old pod and replace it with a new pod.\u003cbr\u003e 9.1.2 Starting a new pod and deleting the old pod\u003cbr\u003e 9.2 Performing Automatic Rolling Updates with the Replication Controller\u003cbr\u003e 9.2.1 Running an Initial Version of the Application\u003cbr\u003e 9.2.2 Rolling Updates with kubectl\u003cbr\u003e 9.2.3 Why kubectl rolling-update is no longer used\u003cbr\u003e 9.3 Using Deployments to Declaratively Update Applications\u003cbr\u003e 9.3.1 Creating a Deployment\u003cbr\u003e 9.3.2 Deployment Update\u003cbr\u003e 9.3.3 Rolling Back a Deployment\u003cbr\u003e 9.3.4 Rollout Speed ​​Control\u003cbr\u003e 9.3.5 Pausing the Rollout Process\u003cbr\u003e 9.3.6 Preventing incorrect version rollouts \u003cbr\u003e9.4 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 10.\u003cbr\u003e StatefulSets: Deploying Replicated Stateful Applications\u003cbr\u003e\u003cbr\u003e 10.1 Replicating Stateful Pods\u003cbr\u003e 10.1.1 Running Multiple Replicas with Separate Storage\u003cbr\u003e 10.1.2 Providing a stable identity for each pod\u003cbr\u003e 10.2 Understanding StatefulSets\u003cbr\u003e 10.2.1 Comparing StatefulSets and ReplicaSets\u003cbr\u003e 10.2.2 Providing a Stable Network Identity\u003cbr\u003e 10.2.3 Providing Dedicated, Reliable Storage for Each Stateful Instance\u003cbr\u003e 10.2.4 Understanding StatefulSet Guarantees\u003cbr\u003e 10.3 Using StatefulSets\u003cbr\u003e 10.3.1 Creating Application and Container Images\u003cbr\u003e 10.3.2 Deploying Applications with StatefulSets\u003cbr\u003e 10.3.3 Playing with Pads\u003cbr\u003e 10.4 Peer Discovery in StatefulSets\u003cbr\u003e 10.4.1 Peer Discovery via DNS\u003cbr\u003e 10.4.2 StatefulSet Update\u003cbr\u003e 10.4.3 Using Clustered Datastores\u003cbr\u003e 10.5 Understanding How StatefulSets Handle Node Failures \u003cbr\u003e10.5.1 Simulating a Node's Network Disconnection\u003cbr\u003e 10.5.2 Manually Deleting Pods\u003cbr\u003e 10.6 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Part 3.\u003cbr\u003e Kubernetes in-depth\u003cbr\u003e\u003cbr\u003e Chapter 11.\u003cbr\u003e Understanding Kubernetes Internals\u003cbr\u003e\u003cbr\u003e 11.1 Understanding Architecture\u003cbr\u003e 11.1.1 Distributed Characteristics of Kubernetes Components\u003cbr\u003e 11.1.2 How Kubernetes Uses etcd\u003cbr\u003e 11.1.3 API Server Functions\u003cbr\u003e 11.1.4 Understanding How API Servers Notify Clients of Resource Changes\u003cbr\u003e 11.1.5 Understanding the Scheduler\u003cbr\u003e 11.1.6 Introducing Controllers Running in the Controller Manager\u003cbr\u003e 11.1.7 What Kubelet Does\u003cbr\u003e 11.1.8 The Role of the Kubernetes Service Proxy\u003cbr\u003e 11.1.9 Introducing Kubernetes Add-ons\u003cbr\u003e 11.1.10 Bringing it all together\u003cbr\u003e 11.2 How Controllers Collaborate\u003cbr\u003e 11.2.1 Understanding Related Components\u003cbr\u003e 11.2.2 Event Chain\u003cbr\u003e 11.2.3 Observing Cluster Events\u003cbr\u003e 11.3 Understanding Running Pods\u003cbr\u003e 11.4 Networking between pods\u003cbr\u003e 11.4.1 What should the network look like?\u003cbr\u003e 11.4.2 Learn more about how networking works \u003cbr\u003e11.4.3 Introducing Container Network Interfaces\u003cbr\u003e 11.5 Service Implementation Method\u003cbr\u003e 11.5.1 Introducing kube-proxy\u003cbr\u003e 11.5.2 How kube-proxy Uses iptables\u003cbr\u003e 11.6 Running a High Availability Cluster\u003cbr\u003e 11.6.1 Increasing Application Availability\u003cbr\u003e 11.6.2 Improving the availability of Kubernetes control plane components\u003cbr\u003e 11.7 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 12.\u003cbr\u003e Kubernetes API Server Security\u003cbr\u003e\u003cbr\u003e 12.1 Understanding Authentication\u003cbr\u003e 12.1.1 Users and Groups\u003cbr\u003e 12.1.2 Introduction to Service Accounts\u003cbr\u003e 12.1.3 Creating a Service Account\u003cbr\u003e 12.1.4 Assigning a Service Account to a Pod\u003cbr\u003e 12.2 Securing Clusters with Role-Based Access Control\u003cbr\u003e 12.2.1 Introducing the RBAC Authorization Plugin\u003cbr\u003e 12.2.2 Introduction to RBAC Resources\u003cbr\u003e 12.2.3 Using Rolls and Roll Bindings\u003cbr\u003e 12.2.4 Using Cluster Roles and Cluster Role Bindings\u003cbr\u003e 12.2.5 Understanding Default Cluster Roles and Cluster Role Bindings\u003cbr\u003e 12.2.6 Granting Authorization Wisely\u003cbr\u003e 12.3 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 13.\u003cbr\u003e Cluster Nodes and Network Security\u003cbr\u003e\u003cbr\u003e 13.1 Using the Host Node's Namespace in a Pod \u003cbr\u003e13.1.1 Using a Node's Network Namespace in a Pod\u003cbr\u003e 13.1.2 Binding to a host port without using the host network namespace\u003cbr\u003e 13.1.3 Using Node PIDs and IPC Namespaces\u003cbr\u003e 13.2 Configuring the container's security context\u003cbr\u003e 13.2.1 Running a container as a specific user\u003cbr\u003e 13.2.2 Preventing containers from running as root\u003cbr\u003e 13.2.3 Running the pod in privileged mode\u003cbr\u003e 13.2.4 Adding Individual Kernel Features to Containers\u003cbr\u003e 13.2.5 Removing a Feature from a Container\u003cbr\u003e 13.2.6 Preventing processes from writing to the container's filesystem\u003cbr\u003e 13.2.7 Sharing Volumes When Containers Run as Different Users\u003cbr\u003e 13.3 Restricting the use of security-related features of the pod\u003cbr\u003e 13.3.1 Introducing the PodSecurityPolicy Resource\u003cbr\u003e 13.3.2 runAsUser, fsGroup, and supplementalGroups policies\u003cbr\u003e 13.3.3 Configuring allowed, default, and disallowed features\u003cbr\u003e 13.3.4 Limiting the Types of Volumes Pods Can Use\u003cbr\u003e 13.3.5 Assigning different PodSecurityPolicies to each user and group\u003cbr\u003e 13.4 Pod Network Isolation \u003cbr\u003e13.4.1 Using Network Isolation in Namespaces\u003cbr\u003e 13.4.2 Allow only some client pods in a namespace to connect to server pods\u003cbr\u003e 13.4.3 Network Isolation Between Kubernetes Namespaces\u003cbr\u003e 13.4.4 Isolation using CIDR notation\u003cbr\u003e 13.4.5 Restricting Outbound Traffic from Pods\u003cbr\u003e 13.5 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 14.\u003cbr\u003e Managing pod computing resources\u003cbr\u003e\u003cbr\u003e 14.1 Resource Requests from Pod Containers\u003cbr\u003e 14.1.1 Creating a Pod with a Resource Request\u003cbr\u003e 14.1.2 How Resource Requests Affect Scheduling\u003cbr\u003e 14.1.3 How CPU Requests Affect CPU Time Sharing\u003cbr\u003e 14.1.4 Defining and Requesting Custom Resources\u003cbr\u003e 14.2 Limiting Resources Available to Containers\u003cbr\u003e 14.2.1 Set a hard limit on the amount of resources available to a container\u003cbr\u003e 14.2.2 Resource Limit Exceeded\u003cbr\u003e 14.2.3 How Container Applications View Limits\u003cbr\u003e 14.3 Understanding Pod QoS Classes\u003cbr\u003e 14.3.1 Defining QoS Classes for Pods\u003cbr\u003e 14.3.2 Understanding which processes are terminated when memory is low \u003cbr\u003e14.4 Setting default requests and limits for pods per namespace\u003cbr\u003e 14.4.1 Introducing the LimitRange Resource\u003cbr\u003e 14.4.2 Creating a LimitRange Object\u003cbr\u003e 14.4.3 Forced Resource Limits\u003cbr\u003e 14.4.4 Basic Resource Requests and Limits\u003cbr\u003e 14.5 Limiting the Total Resources Available to a Namespace\u003cbr\u003e 14.5.1 Introducing the Resource Quota Object\u003cbr\u003e 14.5.2 Specifying Quotas for Persistent Storage\u003cbr\u003e 14.5.3 Limiting the number of objects that can be created\u003cbr\u003e 14.5.4 Specifying Quotas for Specific Pod States or QoS Classes\u003cbr\u003e 14.6 Monitoring Pod Resource Usage\u003cbr\u003e 14.6.1 Collecting and Retrieving Actual Resource Usage\u003cbr\u003e 14.6.2 Storing and analyzing periodic resource usage statistics\u003cbr\u003e 14.7 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 15.\u003cbr\u003e Autoscaling of pods and cluster nodes\u003cbr\u003e\u003cbr\u003e 15.1 Horizontal Pad Autoscaling\u003cbr\u003e 15.1.1 Understanding the Autoscaling Process\u003cbr\u003e 15.1.2 Scaling Based on CPU Utilization\u003cbr\u003e 15.1.3 Scaling based on memory consumption\u003cbr\u003e 15.1.4 Scaling Based on Other and Custom Metrics \u003cbr\u003e15.1.5 Determining Metrics Suitable for Autoscaling\u003cbr\u003e 15.1.6 Reduce replicas to 0\u003cbr\u003e 15.2 Vertical Pad Autoscaling\u003cbr\u003e 15.2.1 Automatically Setting Resource Requests\u003cbr\u003e 15.2.2 Modifying resource requests while a pod is running\u003cbr\u003e 15.3 Horizontal Cluster Node Expansion\u003cbr\u003e 15.3.1 Introducing Cluster Autoscaler\u003cbr\u003e 15.3.2 Enabling Cluster Autoscaler\u003cbr\u003e 15.3.3 Limiting service interruptions during cluster scale-down\u003cbr\u003e 15.4 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 16.\u003cbr\u003e Advanced Scheduling\u003cbr\u003e\u003cbr\u003e 16.1 Restricting Pods from Running on Specific Nodes Using Taints and Tolerations\u003cbr\u003e 16.1.1 Introduction to Taint and Toleration\u003cbr\u003e 16.1.2 Adding Custom Taints to Nodes\u003cbr\u003e 16.1.3 Adding tolerance to pods\u003cbr\u003e 16.1.4 Understanding How to Use Tate and Toleration\u003cbr\u003e 16.2 Using Node Affinity to Direct Pods to Specific Nodes\u003cbr\u003e 16.2.1 Specifying Hard Node Affinity Rules\u003cbr\u003e 16.2.2 Specifying Node Priority at Pod Scheduling Time \u003cbr\u003e16.3 Co-locating pods using pod affinity and anti-affinity\u003cbr\u003e 16.3.1 Deploying Pods on the Same Node Using Inter-Pod Affinity\u003cbr\u003e 16.3.2 Deploying Pods to the Same Rack, Availability Zone, or Region\u003cbr\u003e 16.3.3 Expressing Pad Affinity Preferences Instead of Mandatory Requirements\u003cbr\u003e 16.3.4 Scheduling Pods Away from Each Other Using Pod Anti-Affinity\u003cbr\u003e 16.4 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 17.\u003cbr\u003e Best Practices for Application Development\u003cbr\u003e\u003cbr\u003e 17.1 Putting it all together\u003cbr\u003e 17.2 Understanding the Pod Lifecycle\u003cbr\u003e 17.2.1 Expecting Application Termination and Pod Relocation\u003cbr\u003e 17.2.2 Rescheduling a terminated or partially terminated pod\u003cbr\u003e 17.2.3 Start pads in the desired order\u003cbr\u003e 17.2.4 Adding a lifecycle hook\u003cbr\u003e 17.2.5 Understanding Pad Shutdown\u003cbr\u003e 17.3 Ensuring proper handling of all client requests\u003cbr\u003e 17.3.1 Preventing Client Disconnects When a Pod Starts\u003cbr\u003e 17.3.2 Preventing disconnects during pod shutdown \u003cbr\u003e17.4 Making it easy to run and manage applications on Kubernetes\u003cbr\u003e 17.4.1 Creating a Manageable Container Image\u003cbr\u003e 17.4.2 Tag your images appropriately and use imagePullPolicy wisely.\u003cbr\u003e 17.4.3 Using multidimensional labels instead of one-dimensional labels\u003cbr\u003e 17.4.4 Describing each resource with annotations\u003cbr\u003e 17.4.5 Provide information about why a process terminated.\u003cbr\u003e 17.4.6 Handling Application Logging\u003cbr\u003e 17.5 Development and Testing Best Practices\u003cbr\u003e 17.5.1 Running Applications Outside Kubernetes During Development\u003cbr\u003e 17.5.2 Using Minikube During Development\u003cbr\u003e 17.5.3 Versioning and Automated Deployment Resource Manifest\u003cbr\u003e 17.5.4 Introducing Ksonnet as an Alternative to YAML\/JSON Manifests\u003cbr\u003e 17.5.5 Continuous Integration and Continuous Delivery\u003cbr\u003e 17.6 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Chapter 18.\u003cbr\u003e Scaling Kubernetes\u003cbr\u003e\u003cbr\u003e 18.1 Defining Custom API Objects\u003cbr\u003e 18.1.1 Introducing CustomResourceDefinition\u003cbr\u003e 18.1.2 Automating Custom Resources with Custom Controllers\u003cbr\u003e 18.1.3 Validating Custom Objects \u003cbr\u003e18.1.4 Providing a Custom API Server for Custom Objects\u003cbr\u003e 18.2 Extending Kubernetes with the Kubernetes Service Catalog\u003cbr\u003e 18.2.1 Introducing the Service Catalog\u003cbr\u003e 18.2.2 Introducing the Service Catalog API Server and Controller Manager\u003cbr\u003e 18.2.3 Introducing Service Broker and the OpenServiceBroker API\u003cbr\u003e 18.2.4 Provisioning and Service Usage\u003cbr\u003e 18.2.5 Unbinding and Deprovisioning\u003cbr\u003e 18.2.6 Understanding the Benefits of the Service Catalog\u003cbr\u003e 18.3 Kubernetes-based platform\u003cbr\u003e 18.3.1 Red Hat OpenShift Container Platform\u003cbr\u003e 18.3.2 Deis Workflow and Helm\u003cbr\u003e 18.4 Summary\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Appendix A.\u003cbr\u003e Using kubectl in a multi-cluster environment\u003cbr\u003e\u003cbr\u003e Appendix B.\u003cbr\u003e Setting up a multi-node cluster using kubeadm\u003cbr\u003e\u003cbr\u003e Appendix C.\u003cbr\u003e Using a different container runtime\u003cbr\u003e\u003cbr\u003e Appendix D.\u003cbr\u003e Cluster Federation\u003cbr\u003e\u003cbr\u003e Kubernetes resources covered in the book\u003cbr\u003e\u003cbr\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003ePublisher's Review\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e \u003cb\u003e★ What this book covers ★\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e ■ Kubernetes internal structure\u003cbr\u003e ■ Deploying containers on a cluster \u003cbr\u003e■ Cluster Security\u003cbr\u003e ■ Application updates without interruption\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003e★ Target audience for this book ★\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e It is aimed at beginner and intermediate software developers who are not familiar with Docker or container orchestration systems.\u003cbr\u003e Although primarily aimed at application developers, it also provides an overview of application management from an operational perspective.\u003cbr\u003e This is suitable for anyone interested in running and managing containerized applications in a multi-server environment.\u003cbr\u003e Beginners and advanced software engineers who want to learn container technologies and scale multiple related containers will gain the expertise needed to develop, containerize, and run applications in a Kubernetes environment.\u003cbr\u003e No previous container technology or Kubernetes experience is required. \u003cbr\u003eIt explains the topic in detail step by step and does not use application source code that is difficult for non-expert developers to understand.\u003cbr\u003e However, you should have at least basic knowledge of programming, computer networking, basic Linux command execution, and an understanding of well-known protocols such as HTTP.\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003e★ Structure of this book ★\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e This book divides Chapter 18 into three parts.\u003cbr\u003e Part 1 briefly introduces Docker and Kubernetes, explains how to install a Kubernetes cluster, and runs a simple application.\u003cbr\u003e Part 1 has two chapters.\u003cbr\u003e Chapter 1 explains what Kubernetes is, how it came to be, and how it helps solve today's challenges of managing applications at scale. \u003cbr\u003eChapter 2 provides a hands-on tutorial on how to build a container image and run it on a Kubernetes cluster.\u003cbr\u003e It also explains how to run a single-node Kubernetes cluster locally and how to run a multi-node cluster in the cloud.\u003cbr\u003e\u003cbr\u003e Part 2 introduces the core concepts you must understand to run applications on Kubernetes.\u003cbr\u003e The chapters of Part 2 are as follows:\u003cbr\u003e Chapter 3 introduces Pods, the basic building blocks of Kubernetes, and explains how to organize Pods and other Kubernetes objects using labels.\u003cbr\u003e Chapter 4 shows you how Kubernetes automatically restarts containers to keep your applications healthy. \u003cbr\u003eYou will also learn how to properly run managed pods, scale horizontally, make them resilient to cluster node failures, and run them at predefined times or periodically.\u003cbr\u003e Chapter 5 shows how to expose the services provided by pods to clients inside and outside the cluster.\u003cbr\u003e It also shows how to discover and access services regardless of whether the pods running in the cluster reside inside or outside the cluster.\u003cbr\u003e Chapter 6 explains how multiple containers running on the same pod can share files and how to manage persistent storage and make it accessible to pods.\u003cbr\u003e Chapter 7 shows how to pass important information, such as configuration data and credentials, to applications running inside pods. \u003cbr\u003eChapter 8 explains how to obtain information about the Kubernetes environment in which your application is running and how to communicate with Kubernetes to change the state of the cluster.\u003cbr\u003e Chapter 9 introduces the concept of deployment and guides you through the proper way to run and update applications in a Kubernetes environment.\u003cbr\u003e Chapter 10 introduces how to run stateful applications that require stable identity and state.\u003cbr\u003e\u003cbr\u003e Part 3 takes a deeper look into the internals of a Kubernetes cluster, introducing some additional concepts and building on what we learned in Parts 1 and 2 at a higher level.\u003cbr\u003e The final composition is as follows:\u003cbr\u003e Chapter 11 describes all the components that make up a Kubernetes cluster and the role of each component. \u003cbr\u003eIt also explains how pods communicate over the network and how a service load balances multiple pods.\u003cbr\u003e Chapter 12 explains how to secure the Kubernetes API server using authentication and authorization.\u003cbr\u003e Chapter 13 explains how pods can access resources on a node and how cluster administrators can prevent pods from accessing resources.\u003cbr\u003e Chapter 14 covers how to constrain the computing resources available to applications, configure quality of service (QoS) guarantees for applications, and monitor resource usage for individual applications.\u003cbr\u003e It also tells you how to prevent users from using too many resources. \u003cbr\u003eChapter 15 explains how to configure Kubernetes to automatically scale the number of replicas running in your application and how to increase the cluster size to accommodate applications beyond the current number of cluster nodes.\u003cbr\u003e Chapter 16 shows how to schedule pods only on specific nodes or prevent pods from being scheduled to other nodes.\u003cbr\u003e We also look at how to schedule pods together or not together.\u003cbr\u003e Chapter 17 shows you how to develop applications that are suitable for Kubernetes clusters.\u003cbr\u003e It also provides some guidance on how to set up your development and testing workflow to reduce friction during development. \u003cbr\u003eChapter 18 shows how you can extend Kubernetes with custom objects and how others have built enterprise-grade application platforms.\u003cbr\u003e Through the above content, you will get to know each component of Kubernetes and gradually learn how to use the kubectl command-line tool.\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003e★ Author's Note ★\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e After working at Red Hat for several years, I was assigned to the newly created Cloud Enablement team in late 2014.\u003cbr\u003e The mission was to migrate the company's middleware portfolio to the OpenShift container platform built on Kubernetes.\u003cbr\u003e At that time, Kubernetes was in its initial version (1.0) and had not been officially released.\u003cbr\u003e To set the right direction for the software and take advantage of the features Kubernetes offers, we needed to quickly understand all the features of Kubernetes. \u003cbr\u003eWhen problems occurred, it was difficult to tell whether we had done something wrong or if it was a bug in an early version of Kubernetes.\u003cbr\u003e Since then, Kubernetes has developed rapidly and I have come to understand Kubernetes a lot.\u003cbr\u003e I started using Kubernetes when the term itself was unfamiliar.\u003cbr\u003e It is now the fastest-growing and most widely used way to run applications in the cloud and on-premises data centers, making it a familiar concept to almost every software engineer.\u003cbr\u003e About a month after I got into Kubernetes, I wrote two blog posts about how to run a JBoss WildFly application server cluster on OpenShift\/Kubernetes.\u003cbr\u003e At the time, I never imagined that someone at Manning Publishing would contact me after reading my blog post and ask me to write a book about Kubernetes. \u003cbr\u003eI didn't turn down the offer, even if it meant contacting someone who might be able to write a book.\u003cbr\u003e That's how I came to write this book.\u003cbr\u003e After more than a year and a half of dedicated writing and research, I finally put an end to it.\u003cbr\u003e It was a very valuable experience.\u003cbr\u003e Writing the book has taught me much more about Kubernetes than I ever could have learned it as a user.\u003cbr\u003e As my knowledge of Kubernetes expanded and Kubernetes evolved, I had to revise and refine what I had previously written.\u003cbr\u003e I am a perfectionist.\u003cbr\u003e I am not satisfied with this book.\u003cbr\u003e Nevertheless, I am delighted that so many readers of the Manning Early Access Program (MEAP) have found this book to be an excellent guide to Kubernetes.\u003cbr\u003e My goal is to teach readers how to understand the technology itself and use the tools to develop and deploy applications on Kubernetes clusters effectively and efficiently. \u003cbr\u003eThis book doesn't actually focus on configuring or operating a Kubernetes cluster with a reasonable level of availability.\u003cbr\u003e However, in the final three parts, we've written a detailed overview of the cluster's configuration and additional resources for readers to understand.\u003cbr\u003e I hope you enjoy learning how to get the most out of this amazing system called Kubernetes.\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e \u003cb\u003e★ Translator's Note ★\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e Since Google announced Kubernetes in 2014, it has quickly become one of the most popular technologies.\u003cbr\u003e In a computing environment where business agility is increasingly emphasized, microservices architecture (MSA) has become the de facto standard, and Kubernetes has recently been in the spotlight as the most suitable technology for implementing MSA environments. \u003cbr\u003eIn addition, Kubernetes is being introduced and utilized in various fields, such as edge computing in IoT environments, machine learning workflow deployment (kubeflow) support in data science, virtualization of communication infrastructure (VNF, Virtual Network Function) in 5G, and further as a key technology for supporting hybrid or multi-cloud.\u003cbr\u003e Reflecting this fervent enthusiasm, many books have been published and translated, but the reason I took on the task of working on a re-release of this book, which seems a bit out of date, is because I was first fascinated by the author's appropriate visualization and metaphor-based explanation of concepts, and because it is a book that can be called the bible of the Kubernetes field, with its solid structure that covers the detailed explanation of the internal structure of Kubernetes and even multi-cloud and Kubernetes expansion. \u003cbr\u003eThe translators of this book are members of the study group '100-Day Kubernetes Architecture Journey', a study group based on this book within the 'Kubernetes Korea Group', and have made every effort to make this re-release as easy and smooth to read as possible for readers.\u003cbr\u003e We tried to follow the Kubernetes Korean translation team's glossary as closely as possible for the terminology, checked that the examples can be run on the latest version of Kubernetes, and added various annotations to help readers understand.\u003cbr\u003e Although the original text is well-structured overall, there were many subtle parts that were difficult to convey through translation when explaining concepts, and a considerable amount of effort was put into conveying these parts in Korean.\u003cbr\u003e As a translator, I would be extremely rewarded if I could hear comments saying that my work was smooth and easy to read.\u003cbr\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e GOODS SPECIFICS \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eDate of issue:\u003c\/strong\u003e March 31, 2020\u003c\/div\u003e\n\n \u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e- \u003cstrong\u003ePage count, weight, size:\u003c\/strong\u003e 844 pages | 1,605g | 188*235*40mm\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN13:\u003c\/strong\u003e 9791161754048\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN10:\u003c\/strong\u003e 1161754040 \u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cspan\u003e\u003c\/span\u003e\n\n\u003c\/center\u003e\n\n\n\u003c\/center\u003e","brand":"LIBRAIRIE COREENNE","offers":[{"title":"Default Title","offer_id":43893357051946,"sku":"139455","price":63.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/2750\/5962\/files\/a766f97ea53c18713aa78c0a85c451d0.jpg?v=1765398251","url":"https:\/\/librairie.coreenne.fr\/en\/products\/139455","provider":"LIBRAIRIE COREENNE","version":"1.0","type":"link"}