Kubernetes容器运行与网络连接指南
发布时间: 2025-08-12 00:06:57 阅读量: 2 订阅数: 9 

# Kubernetes 容器运行与网络连接指南
## 1. 使用 Pod 和 Deployment 运行容器
`kubectl apply` 为所有应用程序提供了一致的部署方式,不论应用程序多么复杂,都可以在一个或多个 YAML 文件中定义它们,并使用相同的 `kubectl` 命令进行部署。
### 1.1 创建 Deployment 和 Pod
可以通过应用 Deployment 清单来创建新的 Deployment,进而创建新的 Pod。操作步骤如下:
1. 使用 Deployment 清单运行应用:
```bash
kubectl apply -f deployment.yaml
```
2. 查找由新 Deployment 管理的 Pod:
```bash
kubectl get pods -l app=hello-kiamol-4
```
这种方式与使用 `kubectl create` 创建 Deployment 的最终结果相同,但整个应用程序规范清晰地定义在单个 YAML 文件中。随着应用程序复杂度的增加,可以通过向 YAML 文件添加内容来指定副本数量、CPU 和内存限制、应用程序健康检查方式以及应用程序配置设置的来源和数据写入位置等。
### 1.2 与 Pod 中的应用程序交互
虽然 Pod 和 Deployment 用于保持应用程序运行,但实际工作是在容器中完成的。可以使用 `kubectl` 与 Pod 中的容器进行交互,包括在容器中运行命令、查看应用程序日志和复制文件。
#### 1.2.1 在容器中运行命令
可以使用 `kubectl` 在容器中运行命令并连接终端会话,就像连接到远程机器一样。操作步骤如下:
1. 检查第一个运行的 Pod 的内部 IP 地址:
```bash
kubectl get pod hello-kiamol -o custom-columns=NAME:metadata.name,POD_IP:status.podIP
```
2. 在 Pod 中运行交互式 shell 命令:
```bash
kubectl exec -it hello-kiamol -- sh
```
3. 在 Pod 内部检查 IP 地址:
```bash
hostname -i
```
4. 测试 Web 应用:
```bash
wget -O - http://localhost | head -n 4
```
5. 离开 shell:
```bash
exit
```
#### 1.2.2 查看应用程序日志
Kubernetes 从容器运行时获取应用程序日志,可以使用 `kubectl` 读取日志。操作步骤如下:
1. 打印 Kubernetes 中最新的容器日志:
```bash
kubectl logs --tail=2 hello-kiamol
```
2. 如果使用 Docker,可以比较实际的容器日志:
```bash
docker container logs --tail=2 $(docker container ls -q --filter label=io.kubernetes.container.name=hello-kiamol)
```
#### 1.2.3 复制文件
可以使用 `kubectl` 在本地机器和 Pod 中的容器之间复制文件。操作步骤如下:
1. 在本地机器上创建临时目录:
```bash
mkdir -p /tmp/kiamol/ch02
```
2. 从 Pod 中复制网页:
```bash
kubectl cp hello-kiamol:/usr/share/nginx/html/index.html /tmp/kiamol/ch02/index.html
```
3. 检查本地文件内容:
```bash
cat /tmp/kiamol/ch02/index.html
```
### 1.3 理解 Kubernetes 资源管理
使用 `kubectl` 可以轻松删除 Kubernetes 资源,但如果资源由控制器管理,删除资源后控制器会创建替换资源。
#### 1.3.1 删除 Pod
可以使用 `kubectl delete` 命令删除所有 Pod 并验证它们是否真的被删除。操作步骤如下:
1. 列出所有运行的 Pod:
```bash
kubectl get pods
```
2. 删除所有 Pod:
```bash
kubectl delete pods --all
```
3. 再次检查:
```bash
kubectl get pods
```
#### 1.3.2 删除
0
0
相关推荐










