• 编写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
    1. - 编写petclinic-pod.yml
    2. ```yaml
    3. apiVersion: v1
    4. kind: Pod
    5. metadata:
    6. name: petclinic
    7. labels:
    8. app: petclinic # 添加了labels,对应service文件中的selector
    9. spec:
    10. containers:
    11. - name: petclinic
    12. image: 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 443/TCP 7h3m service/petclinic NodePort 10.98.116.55 8080:31080/TCP 9s

    
    - 问题开始出现
    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>
    
    1. 访问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
    
    1. 使用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这一步,在部署好了,直接就可以启动。我不明白我是哪里出了问题。。

    截屏2022-02-08 19.44.28.png