1.问题

deploy.yaml

apiVersion: apps/v1kind: Deploymentmetadata:  name: service-deployment  namespace: devspec:  replicas: 3  selector:    matchLabels:          app: nginx-pod  template:    metadata:     labels:       app: nginx-pod    spec:      containers:      - name: nginx        image: nginx        imagePullPolicy: IfNotPresent        ports:        - containerPort: 80

service.yaml

apiVersion: v1kind: Servicemetadata:  name: service-type  namespace: devspec:  selector:    app: nginx-pod  clusterIP: 10.1.97.97  type: ClusterIP  ports:  - port: 80 #service端口    targetPort: 80 #pod端口

创立之后信息

[root@node1 ~]# kubectl describe svc -n devName:              service-typeNamespace:         devLabels:            <none>Annotations:       <none>Selector:          app=nginx-podType:              ClusterIPIP Families:       <none>IP:                10.1.97.97IPs:               10.1.97.97Port:              <unset>  80/TCPTargetPort:        80/TCPEndpoints:         10.244.1.44:80,10.244.1.45:80,10.244.2.46:80Session Affinity:  NoneEvents:            <none>

pod信息

[root@node1 ~]# kubectl get pod -n dev -o wideNAME                                 READY   STATUS    RESTARTS   AGE     IP            NODE    NOMINATED NODE   READINESS GATESservice-deployment-848c68b85-8jvcv   1/1     Running   0          90m     10.244.1.44   node2   <none>           <none>service-deployment-848c68b85-m62qb   1/1     Running   0          90m     10.244.1.45   node2   <none>           <none>service-deployment-848c68b85-qwz5w   1/1     Running   0          90m     10.244.2.46   node3   <none>           <none>

在node2节点上拜访node3上的pod 10.244.2.46:80 不通

2.解决过程

找到flannel配置名

[root@node2 docker]# kubectl get pod -n kube-systemNAME                            READY   STATUS    RESTARTS   AGEcoredns-7f89b7bc75-jvfhw        1/1     Running   4          6d12hcoredns-7f89b7bc75-x6kqb        1/1     Running   4          6d12hetcd-node1                      1/1     Running   4          6d12hkube-apiserver-node1            1/1     Running   4          6d12hkube-controller-manager-node1   1/1     Running   8          6d12h--kube-flannel-ds-bqs55           1/1     Running   0          18hkube-flannel-ds-czjxv           1/1     Running   5          6d12hkube-flannel-ds-mbgm4           1/1     Running   4          6d12h---kube-proxy-2tn4g                1/1     Running   0          132mkube-proxy-4tc4f                1/1     Running   0          132mkube-proxy-bwsgv                1/1     Running   0          132mkube-scheduler-node1            1/1     Running   8          6d12h

获取flannel的配置名称

kubectl edit pod -n kube-system kube-flannel-ds-bqs55

找到flannel配置名

批改配置,kube-flannel-ds为flannel配置文件名称

kubectl edit daemonset kube-flannel-ds -n kube-system

指定网卡为第二块网卡,能够通过ifconfig来进行查看

找到所有kube-flannelpod

[root@node2 docker]# kubectl get pod -n kube-system | grep kube-flankube-flannel-ds-b7qfq           1/1     Running    0          29skube-flannel-ds-w9hts           1/1     Running    0          17skube-flannel-ds-zpzmb           0/1     Init:0/1   0          1s[root@node2 docker]# kubectl delete pod -n kube-system kube-flannel-ds-b7qfq kube-flannel-ds-w9hts kube-flannel-ds-zpzmbpod "kube-flannel-ds-b7qfq" deletedpod "kube-flannel-ds-w9hts" deletedpod "kube-flannel-ds-zpzmb" deleted

删除之后,从新创立即可失常拜访

参考 https://www.jianshu.com/p/ed1...