create_service.md 1.2 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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
# 服务部署(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
```

![](./img/service.png)


对服务做下端口转发
![](./img/port_forward.png)


使用浏览器直接访问
![](./img/it_works_html.png)

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

下面说法错误的是?

## 答案

kubectl 只能创建一个服务

## 选项

### A

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

### B

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

### C

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