Kubernetes的Service

參考https://www.jianshu.com/p/bbb673e79c3emysql

大體描述一下遇到的問題,在上文中,我起了一個mysql容器。而且想在另外一個容器中經過域名來訪問mysql的3306端口,嘗試ping包,發現Dns解析域名是成功了,可是ping不通。sql

而我在上一篇文章中,訪問mysql用的Ip是10.233.104.69,在mysql容器查出來的也是這個Ip。因此一開始懷疑是域名沒寫正確。api

 

接着查到10.233.46.235是server的Ip,10.233.104.69是pod的Ip,繼續懷疑是域名寫的不對,千方百計去找pod的域名,但網上搜不到這個概念。bash

 

域名這塊查了半天沒有什麼進展,因此又回頭看了一下Service的基本概念,發現其實它的Ip就是對外暴露的vip,因此猜想這個Ip不是用來ping的,而是用來直接訪問它的端口。嘗試用鏈接這個Ip的3306端口,果真可行。spa

 

另外順便貼一下經過busybox來檢查域名rest

# cat busybox.yaml
apiVersion: v1 
kind: Pod 
metadata: 
  name: busybox
  namespace: default
spec:
  containers:
  - name: busybox
    image: registry.cn-hangzhou.aliyuncs.com/yanfulei/busybox:latest
    command:
      - sleep
      - "3600"
    imagePullPolicy: IfNotPresent
  restartPolicy: Always

# kubectl create -f busybox.yaml
pod "busybox" created
[root@master0 ~]# kubectl exec busybox nslookup kubernetes
Server:    10.233.0.3
Address 1: 10.233.0.3 kube-dns.kube-system.svc.cluster.local

Name:      kubernetes
Address 1: 10.233.0.1 kubernetes.default.svc.cluster.local

# kubectl exec busybox nslookup mysql
Server:    10.233.0.3
Address 1: 10.233.0.3 kube-dns.kube-system.svc.cluster.local

Name:      mysql
Address 1: 10.233.46.235 mysql.default.svc.cluster.local
相關文章
相關標籤/搜索