- 编写petclinic-service.yml
```yaml
apiVersion: v1
kind: Service
metadata:
name: petclinic
spec:
ports:
- name: http port: 8080 targetPort: 8080 nodePort: 31080 selector: app: petclinic # 对应pod文件中的labels type: NodePort
- 编写petclinic-pod.yml```yamlapiVersion: v1kind: Podmetadata:name: petcliniclabels:app: petclinic # 添加了labels,对应service文件中的selectorspec:containers:- name: petclinicimage: xushencong/petclinic:v1
- 部署pod和service ```shell [~/docker/pod-in-action]$ kubectl apply -f 02 pod/petclinic created service/petclinic created [~/docker/pod-in-action]$ kubectl get all NAME READY STATUS RESTARTS AGE pod/petclinic 1/1 Running 0 9s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1
- 问题开始出现
1. localhost:31080 无法访问
```shell
[~/docker/pod-in-action]$ kubectl describe svc petclinic
Name: petclinic
Namespace: default
Labels: <none>
Annotations: <none>
Selector: app=petclinic
Type: NodePort
IP Family Policy: SingleStack
IP Families: IPv4
IP: 10.98.116.55
IPs: 10.98.116.55
Port: http 8080/TCP
TargetPort: 8080/TCP
NodePort: http 31080/TCP
Endpoints: 172.17.0.5:8080
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
- 访问minikube node地址也一样访问不到
访问192.168.49.2:31080没有反映,有帖子说访问到,但是我不行。
https://blog.csdn.net/axiang_/article/details/116842331
[~/docker/pod-in-action]$ minikube ip
192.168.49.2
- 使用minikube启动service(https://blog.csdn.net/bbwangj/article/details/82558033?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-4.pc_relevant_paycolumn_v3&spm=1001.2101.3001.4242.3&utm_relevant_index=7)
因为我的电脑是苹果芯片,报错了。[~/docker/pod-in-action]$ minikube service petclinic #或者加 --url显示地址 |-----------|-----------|-------------|---------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |-----------|-----------|-------------|---------------------------| | default | petclinic | http/8080 | http://192.168.49.2:31080 | |-----------|-----------|-------------|---------------------------| 🏃 Starting tunnel for service petclinic. |-----------|-----------|-------------|------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |-----------|-----------|-------------|------------------------| | default | petclinic | | http://127.0.0.1:60370 | |-----------|-----------|-------------|------------------------| 🎉 正通过默认浏览器打开服务 default/petclinic... ❗ Because you are using a Docker driver on darwin, the terminal needs to be open to run it#http://127.0.0.1:60370/ {"message":"petclinic vreison: v1.0.0"}
- 终于访问成功了,但是看老师的教程,不需要minikube service petclinic这一步,在部署好了,直接就可以启动。我不明白我是哪里出了问题。。

