create_service.md 1.7 KB
Newer Older
F
feilong 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
# 服务部署(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
```

F
feilong 已提交
40
![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/img/service.png)
F
feilong 已提交
41 42 43


对服务做下端口转发
F
feilong 已提交
44
![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/img/port_forward.png)
F
feilong 已提交
45 46 47


使用浏览器直接访问
F
feilong 已提交
48
![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/img/it_works_html.png)
F
feilong 已提交
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

HelloWorld! 恭喜你成功地在 K8S 上部署启动了一个 Python Flask 后端服务。

下面说法错误的是?

## 答案

kubectl 只能创建一个服务

## 选项

### A

service 可以配置将端口映射到 deployment 里配置的容器端口

### B

转发本机端口到服务端口后,本机可以直接访问服务

### C

服务配置里的 selector 配置了选择 pod 的策略