# 服务部署(3): 使用 kubectl 启动服务(service)
经过 deployment,cloud_native_hello_py 项目的目录结构如下:
```bash
.
├── Dockerfile
├── README.md
├── k8s.deployment.yaml
└── src
├── main.py
└── requirements.txt
```
在根目录下增加一个文件`k8s.service.yaml`,内容如下:
```yaml
apiVersion: v1
kind: Service
metadata:
name: cloud-native-hello-py
spec:
selector:
app: cloud-native-hello-py
ports:
- protocol: TCP
port: 1024
targetPort: 1024
```
注意 targetPort 必须和 deployment 步骤里容器的导出端口一致
使用如下的命令来创建服务
```bash
kubectl create -f k8s.service.yaml
```
![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/img/service.png)
对服务做下端口转发
![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/img/port_forward.png)
使用浏览器直接访问
![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/img/it_works_html.png)
HelloWorld! 恭喜你成功地在 K8S 上部署启动了一个 Python Flask 后端服务。
下面说法错误的是?
## 答案
kubectl 只能创建一个服务
## 选项
### A
service 可以配置将端口映射到 deployment 里配置的容器端口
### B
转发本机端口到服务端口后,本机可以直接访问服务
### C
服务配置里的 selector 配置了选择 pod 的策略