引言
容器镜像是容器化技术中的核心概念,它封装了应用程序及其运行环境,使得应用程序可以在任何支持Docker的环境中无缝运行。Kubernetes(K8s)作为容器编排工具,依赖于容器镜像来部署和管理应用程序。本文将详细介绍如何从零开始制作K8s容器镜像,并逐步深入到实操过程。
一、准备工作
1. 环境准备
- 操作系统:推荐使用Linux系统,如CentOS 7。
- Docker:确保Docker环境已安装并配置好。
- Git:用于克隆项目代码。
2. 项目代码
选择一个简单的项目,例如一个Node.js应用程序,以便于后续的实操。
二、制作基础镜像
1. 编写Dockerfile
Dockerfile是用于构建镜像的脚本文件。以下是一个简单的Node.js应用程序的Dockerfile示例:
# 使用官方Node.js基础镜像
FROM node:14
# 设置工作目录
WORKDIR /usr/src/app
# 复制package.json和package-lock.json
COPY package*.json ./
# 安装项目依赖
RUN npm install
# 复制项目源代码
COPY . .
# 暴露应用端口
EXPOSE 3000
# 启动应用
CMD ["npm", "start"]
2. 构建镜像
在项目根目录下执行以下命令构建镜像:
docker build -t my-node-app .
三、推送镜像到Harbor
1. 登录Harbor
docker login harbor.example.com
2. 推送镜像
docker push harbor.example.com/my-node-app:latest
四、在K8s中部署镜像
1. 创建K8s配置文件
创建一个名为deployment.yaml
的配置文件,用于部署Node.js应用程序:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-node-app
spec:
replicas: 2
selector:
matchLabels:
app: my-node-app
template:
metadata:
labels:
app: my-node-app
spec:
containers:
- name: my-node-app
image: harbor.example.com/my-node-app:latest
ports:
- containerPort: 3000
2. 应用配置文件
kubectl apply -f deployment.yaml
3. 验证部署
kubectl get pods
五、总结
通过以上步骤,您已经成功从零开始制作了K8s容器镜像,并将其部署到了Kubernetes集群中。这个过程涵盖了从编写Dockerfile、构建镜像、推送镜像到Harbor,再到在K8s中部署镜像的完整流程。希望本文能帮助您更好地理解K8s容器镜像制作的过程。