# 服务部署(1): 使用 kubectl 部署(deployment) 回顾我们在 “使用Dockerfile制作镜像” 一节里制作过的 python docker 镜像程序。镜像推送到镜像仓库的tag名字是`fanfeilong/cloud_native_hello_py`,源码结构如下: ```bash ├── .dockerignore ├── .gitignore ├── Dockerfile ├── README.md └── src ├── main.py └── requirements.txt ``` 我们在根目录下创建一个 k8s 的部署配置文件,文件是 yaml 格式,文件名为`k8s_python_sample_code.deployment.yml`,内容如下,注意`name`字段不能是下划线命名风格: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: cloud-native-hello-py labels: app: cloud-native-hello-py spec: replicas: 3 selector: matchLabels: app: cloud-native-hello-py template: metadata: labels: app: cloud-native-hello-py spec: containers: - name: cloud-native-hello-py image: fanfeilong/cloud_native_hello_py ports: - containerPort: 1024 ``` 通过一组操作来部署和查看状态: * 使用命令 `kubectl create -f k8s.deployment.yaml` 部署到 k8s 集群,“部署” 本身被当一种资源创建过程 * 使用命令 `kubectl get deployments` 查看部署情况 * 使用命令`kubectl rollout status deployment/cloud-native-hello-py`查看状态。 ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/img/deployment.png) 以下说法错误的是? ## 答案 k8s.deployment.yaml 里不需要指定目标部署 Python 服务的 docker 镜像名字 ## 选项 ### A kubectl 对一种资源的操作,常见的包含:创建、查看列表、获取状态三种 ### B 使用 yaml 配置部署信息,使用`kubectl create -f` 命令创建资源,这就是 k8s 的声明式 api 的做法 ### C deployment 的配置文件yaml里,`name` 字段不能带下划线风格 ### D containerPort: 1024 用来暴露容器导出端口