我的Yaml文件
kind: List
apiVersion: v1
items:
- apiVersion: v1
kind: Service
metadata:
name: sfs-svc
labels:
app: sfs-app
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: sfs-app
- apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: sfs-app # has to match .spec.template.metadata.labels
serviceName: "sfs-svc"
replicas: 3
template:
metadata:
labels:
app: sfs-app # has to match .spec.selector.matchLabels
spec:
terminationGracePeriodSeconds: 10
containers:
- name: test-container
image: nginx
imagePullPolicy: IfNotPresent
command: [ "sh", "-c"]
args:
- while true; do
printenv MY_NODE_NAME MY_POD_NAME MY_POD_NAMESPACE >> /var/sl/output.txt;
printenv MY_POD_IP >> /var/sl/output.txt;
date >> var/sl/output.txt;
cat /var/sl/output.txt;
sleep 999999;
done;
env:
- name: MY_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: MY_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
volumeMounts:
- name: www
mountPath: /var/sl
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
#storageClassName: classNameIfAny
resources:
requests:
storage: 1Mi
$ Kubectl群集信息
Kubernetes主服务器正在https://192.168.99.100:8443运行 KubeDNS运行在https://192.168.99.100:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
$ kubectl版本
客户端版本:version.Info {主要:“ 1”,次要:“ 13”,GitVersion:“ v1.13.3”,GitCommit:“ 721bfa751924da8d1680787490c54b9179b1fed0”,GitTreeState:“干净”,构建日期:“ 2019-02-01T20 :08:12Z“,GoVersion:” go1.11.5“,编译器:” gc“,平台:” linux / amd64“} 服务器版本:version.Info {主要:“ 1”,次要:“ 14”,GitVersion:“ v1.14.1”,GitCommit:“ b7394102d6ef778017f2ca4046abbaa23b88c290”,GitTreeState:“ clean”,BuildDate:“ 2019-04-08T17:02: 58Z”,GoVersion:“ go1.12.1”,编译器:“ gc”,平台:“ linux / amd64”}
$ kubectl get po,svc,statefulset
> NAME READY STATUS RESTARTS AGE
> pod/web-0 1/1 Running 0 45m
> pod/web-1 1/1 Running 0 45m
> pod/web-2 1/1 Running 0 45m
>
> NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
> service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 46m
> service/sfs-svc ClusterIP None <none> 80/TCP 45m
>
> NAME READY AGE
> statefulset.apps/web 3/3 45m
>
当我尝试$ nslookup sfs-svc.default.svc.cluster.local
> Server: 127.0.0.53
> Address: 127.0.0.53#53
>
**> ** server can't find sfs-svc.default.svc.cluster.local: SERVFAIL**
>
答案 0 :(得分:0)
我的第一个猜测是,您是从pod
运行nslookup sfs-svc.default.svc.cluster.local
而不是从nslookup
内部运行。
我尝试了yaml,只有从本地主机运行~ $ kubectl run -it --rm --restart=Never dnsutils2 --image=tutum/dnsutils --command -- bash
root@dnsutils2:/# nslookup sfs-svc.default.svc.cluster.local
Server: 10.96.0.10
Address: 10.96.0.10#53
Name: sfs-svc.default.svc.cluster.local
Address: 172.17.0.6
Name: sfs-svc.default.svc.cluster.local
Address: 172.17.0.5
Name: sfs-svc.default.svc.cluster.local
Address: 172.17.0.4
root@dnsutils2:/# exit
时,我才能重新生成此问题。
无论如何,要检查服务的DNS条目,请从Pod内部运行{{1}}。这是一个例子,
{{1}}