k8s加docker项目实例
时间: 2024-08-06 22:01:07 浏览: 204
Kubernetes (k8s) 是一个开源容器管理系统,它可以帮助管理和调度 Docker 容器化的应用。在一个典型的 k8s + Docker 项目的实例中,通常包括以下几个步骤:
1. **Docker镜像构建**:首先,你需要创建一个 Dockerfile,它包含了应用程序的依赖、配置和服务启动命令。当你运行 `docker build` 命令时,会根据这个文件生成一个 Docker 镜像。
```shell
# Dockerfile示例
FROM node:14-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
```
2. **Docker镜像推送**:构建完成后,你可以将镜像推送到一个公共仓库(如 Docker Hub 或私有 registry),以便后续部署使用。
```shell
docker login
docker push your_username/your_app_image
```
3. **Kubernetes资源定义**:然后在 Kubernetes 中,通过 YAML 文件(比如 deployment.yaml 或 service.yaml)定义服务的规格,例如 Deployment 描述了应用副本数和每个副本所使用的镜像,Service 则定义了服务的访问策略。
```yaml
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: your_username/your_app_image
ports:
- containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 3000
type: LoadBalancer
```
4. **部署到k8s集群**:最后,使用 `kubectl apply` 命令将 YAML 文件应用到集群中,Kubernetes 就会自动拉取镜像并按照描述来部署你的应用。
```shell
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
```
阅读全文
相关推荐


















