| 语言 | 格式 | 评分 |
|---|---|---|
中文(简体) | .pdf | 3 |
| 摘要 | ||
文档介绍了Kubernetes作为容器集群管理系统的功能,包括自动化部署、扩缩容和维护。详细讲解了使用Minikube在MacOS上配置Kubernetes环境的步骤,包括安装依赖、创建Deployment、Service以及处理问题的方法。文档还展示了如何通过Dockerfile打包Node.js应用镜像,并使用Kubernetes部署和更新应用。 | ||
| AI总结 | ||
# Kubernetes 管理 Docker 容器
## Kubernetes 简介
Kubernetes 是一个开源的容器集群管理系统,能够实现容器集群的自动化部署、自动扩缩容和维护,帮助用户快速部署应用、扩展功能并优化资源使用。
---
## Minikube 简介
Minikube 是一个在本地运行 Kubernetes 集群的工具,适合开发和测试。在 MacOS 上,安装依赖工具如下:
- 使用 `brew` 安装 `kubectl` 和 `minikube`:
```bash
brew install kubectl
brew install minikube
```
- 处理权限问题:
```bash
sudo chown -R $(whoami) /usr/local/lib/pkgconfig
```
---
## 启动 Minikube 集群
- 启动命令:
```bash
minikube start
```
- 启动 Dashboard:
```bash
minikube dashboard
```
---
## Docker Desktop Dashboard
通过 Docker Desktop 提供的 Dashboard,可以监控容器运行状态,包括资源使用情况(CPU、内存、磁盘 I/O、网络 I/O 等)。
---
## 打包 Node.js 应用镜像
1. 创建 Node.js 应用程序 `server.js`:
```javascript
var http = require('http');
var handleRequest = function(request, response) {
console.log('Received request for URL: ' + request.url);
response.writeHead(200);
response.end('Hello World!');
};
var www = http.createServer(handleRequest);
www.listen(8080);
```
2. 创建 Dockerfile:
```dockerfile
FROM node:10.20.0
EXPOSE 8080
COPY server.js .
CMD node server.js
```
3. 打包镜像:
```bash
docker build -t hello-node:v1 .
```
---
## 部署到 Kubernetes
1. 创建 Deployment:
```bash
kubectl create deployment hello-node --image=hello-node:v1 --port=8080
```
或者:
```bash
kubectl run hello-node --image=hello-node:v1 --port=8080
```
2. 查看 Deployment 和 Pod:
```bash
kubectl get deployments
kubectl get pods
```
---
## 创建 Service
默认情况下,Pod 只能通过集群内部 IP 访问。要暴露 Pod 给外部访问,创建 Service:
```bash
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
```
查看 Service:
```bash
kubectl get services
```
---
## 浏览器访问 Service
通过以下命令即可在浏览器中访问 Service:
```bash
minikube service hello-node
```
---
## 更新应用
1. 修改 Node.js 程序并重新构建镜像:
```bash
docker build -t hello-node:v2 .
```
2. 更新 Deployment 镜像:
```bash
kubectl set image deployment/hello-node hello-node=hello-node:v2
```
3. 重新访问 Service:
```bash
minikube service hello-node
```
---
## 清理资源
删除集群中的资源:
```bash
kubectl delete service hello-node
kubectl delete deployment hello-node
```
---
## 服务停用
停止 Minikube 集群:
```bash
minikube stop
```
---
## 故障处理
1. 问题:`kubectl get nodes` 报错:
```bash
The connection to the server 127.0.0.1:55000 was refused – did you specify the right host or port?
```
解决方法:
```bash
rm -rf ~/.kube
minikube start
```
---
## 参考
- 使用 Minikube 在 Kubernetes 中运行应用 | ||
P1
P2
P3
P4
P5
下载文档到本地,方便使用
文档评分














Kubernetes 管理 Docker 容器