Table of Contents
introduction
Review of basic knowledge
Core concept or function analysis
What Docker does
How Kubernetes works
Example of usage
Basic usage
Advanced Usage
Common Errors and Debugging Tips
Performance optimization and best practices
Home Operation and Maintenance Docker Kubernetes and Docker: Deploying and Managing Containerized Apps

Kubernetes and Docker: Deploying and Managing Containerized Apps

May 06, 2025 am 12:13 AM

The steps to deploy containerized applications using Kubernetes and Docker include: 1. Build a Docker image, define the application image using Dockerfile and push it to Docker Hub. 2. Create Deployment and Service in Kubernetes to manage and expose applications. 3. Use Horizontal Pod Autoscaler to achieve dynamic scaling. 4. Debug FAQs through the kubectl command. 5. Optimize performance, define resource limits and requests, and manage configurations using Helm.

introduction

Recently I was trying to make a project that involved containerized deployment, and Kubernetes and Docker became my saviors. To be honest, when I first started to get involved in these two things, I was completely confused, but gradually, I found that they not only made my application deployment simple, but also gave me a deeper understanding of the microservice architecture. Today I will talk about how to use Kubernetes and Docker to deploy and manage containerized applications, hoping to help those friends who are still exploring.

Review of basic knowledge

To figure out Kubernetes and Docker, we have to start with containers. A container can be regarded as a lightweight virtual machine, but it is more efficient than a virtual machine because it runs directly on the host's kernel. Docker is the most popular containerized platform at present, allowing developers to package applications and their dependencies into a mirror and then run in any Docker-enabled environment.

Kubernetes, referred to as K8s, is an open source container orchestration system. It manages and schedules these containers to ensure they run efficiently in the cluster. K8s allows developers to easily expand, update and maintain applications.

Core concept or function analysis

What Docker does

The core of Docker is images and containers. A mirror is like a snapshot of an application, containing everything you need to run the application. The container is an instantiation of the image, which you can think of as a running application.

 # Build a simple Node.js application image FROM node:14

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD ["node", "app.js"]
Copy after login

This Dockerfile defines a Node.js application image, which is simple and clear. You can use the docker build command to build this image and then start a container with the docker run command.

How Kubernetes works

How Kubernetes works can be illustrated in a simple metaphor: it is like a band conductor who coordinates various instruments (containers) to play beautiful music (applications). The core concepts of K8s include Pod, Service, Deployment, etc.

A Pod is the smallest scheduling unit in K8s, and a Pod can contain one or more containers. Service is used to expose the Pod's network services, while Deployment is used to manage the life cycle of the Pod, such as rolling updates and rollbacks.

 # Define a simple deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: my-app:v1
        Ports:
        - containerPort: 3000
Copy after login

This YAML file defines a Deployment called my-app , which creates three pods running my-app:v1 image.

Example of usage

Basic usage

To deploy an application using Docker and Kubernetes, you must first have a Docker image. You can build images with Dockerfile and push them to Docker Hub or private repository.

 # Build the image docker build -t my-app:v1.

# Push image to Docker Hub
docker push my-app:v1
Copy after login

Then create a Deployment and Service in Kubernetes to manage and expose the application.

 # Create a Deployment
kubectl apply -f deployment.yaml

# Create Service
kubectl apply -f service.yaml
Copy after login

Advanced Usage

In actual projects, you may encounter some complex needs, such as dynamically extending the Pod or implementing blue-green deployment. K8s provides Horizontal Pod Autoscaler (HPA) for automatic scaling.

 # Define an HPA
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: my-app-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-app
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      targetAverageUtilization: 50
Copy after login

This HPA will automatically adjust the number of pods in my-app Deployment based on CPU usage.

Common Errors and Debugging Tips

Common problems when using K8s and Docker include image pull failure, Pod startup failure, network problems, etc. When debugging these problems, you can use kubectl describe and kubectl logs commands to view the details.

 # View Pod details kubectl describe pod my-app-xxxxxxxxxx-xxxxxxxx

# View Pod's log kubectl logs my-app-xxxxxxxxxx-xxxxxxx
Copy after login

Performance optimization and best practices

Performance optimization is a key point when using K8s and Docker. You can improve performance by optimizing image size, using resource limits and requests, and configuring Pod's scheduling policies reasonably.

 # Define resource restrictions and request resources:
  Requests:
    cpu: 100m
    memory: 128Mi
  limits:
    cpu: 500m
    memory: 512Mi
Copy after login

This configuration defines the resource requests and restrictions of the Pod to ensure that it does not consume too much resources.

In actual projects, I found that using Helm to manage K8s' configuration files is a good choice, which can help you better manage and reuse configurations. In addition, it is also a good habit to regularly clean unused images and pods, which can save resources.

In general, Kubernetes and Docker are powerful tools for modern application deployment and management. They not only allow developers to manage applications more flexibly, but also provide powerful expansion and maintenance capabilities. I hope this article can help you understand and use them better and go further on the road to containerization.

The above is the detailed content of Kubernetes and Docker: Deploying and Managing Containerized Apps. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1663
14
PHP Tutorial
1263
29
C# Tutorial
1236
24
How to exit the container by docker How to exit the container by docker Apr 15, 2025 pm 12:15 PM

Four ways to exit Docker container: Use Ctrl D in the container terminal Enter exit command in the container terminal Use docker stop <container_name> Command Use docker kill <container_name> command in the host terminal (force exit)

How to copy files in docker to outside How to copy files in docker to outside Apr 15, 2025 pm 12:12 PM

Methods for copying files to external hosts in Docker: Use the docker cp command: Execute docker cp [Options] <Container Path> <Host Path>. Using data volumes: Create a directory on the host, and use the -v parameter to mount the directory into the container when creating the container to achieve bidirectional file synchronization.

How to start containers by docker How to start containers by docker Apr 15, 2025 pm 12:27 PM

Docker container startup steps: Pull the container image: Run "docker pull [mirror name]". Create a container: Use "docker create [options] [mirror name] [commands and parameters]". Start the container: Execute "docker start [Container name or ID]". Check container status: Verify that the container is running with "docker ps".

How to restart docker How to restart docker Apr 15, 2025 pm 12:06 PM

How to restart the Docker container: get the container ID (docker ps); stop the container (docker stop <container_id>); start the container (docker start <container_id>); verify that the restart is successful (docker ps). Other methods: Docker Compose (docker-compose restart) or Docker API (see Docker documentation).

How to check the name of the docker container How to check the name of the docker container Apr 15, 2025 pm 12:21 PM

You can query the Docker container name by following the steps: List all containers (docker ps). Filter the container list (using the grep command). Gets the container name (located in the "NAMES" column).

How to start mysql by docker How to start mysql by docker Apr 15, 2025 pm 12:09 PM

The process of starting MySQL in Docker consists of the following steps: Pull the MySQL image to create and start the container, set the root user password, and map the port verification connection Create the database and the user grants all permissions to the database

How to view logs from docker How to view logs from docker Apr 15, 2025 pm 12:24 PM

The methods to view Docker logs include: using the docker logs command, for example: docker logs CONTAINER_NAME Use the docker exec command to run /bin/sh and view the log file, for example: docker exec -it CONTAINER_NAME /bin/sh ; cat /var/log/CONTAINER_NAME.log Use the docker-compose logs command of Docker Compose, for example: docker-compose -f docker-com

How to create containers for docker How to create containers for docker Apr 15, 2025 pm 12:18 PM

Create a container in Docker: 1. Pull the image: docker pull [mirror name] 2. Create a container: docker run [Options] [mirror name] [Command] 3. Start the container: docker start [Container name]

See all articles