验证一下重新删除并建立pod和svc pod ip和svc ip会变
1、新建rc文件
[root@master ~]# cat nginx-test.yml
apiVersion: v1
kind: ReplicationController
metadata:
name: nginx-test
labels:
name: nginx-test
spec:
replicas: 1
selector:
name: nginx-test
template:
metadata:
labels:
name: nginx-test
spec:
containers:
- name: nginx-test
image: nginx
resources:
requests:
cpu: "100m"
limits:
cpu: '200m'
2、新建service文件
[root@master ~]# cat nginx-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-test
labels:
name: nginx-test
spec:
type: NodePort
ports:
- port: 80
protocol: TCP
targetPort: 80
name: http
nodePort: 30088
selector:
name: nginx-test
3、应用rc和svc文件
[root@master ~]# kubectl apply -f nginx-test.yml
replicationcontroller/nginx-test created
[root@master ~]# kubectl apply -f nginx-svc.yaml
service/nginx-test created
4、查看pod和service ip
[root@master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-test-lklv5 1/1 Running 0 50m
[root@master ~]# kubectl describe pod nginx-test-lklv5
IP: 10.244.1.2
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.1.0.1 <none> 443/TCP 4h54m
nginx-test NodePort 10.1.59.207 <none> 80:30088/TCP 31m
5、删除rc和svc并重新安装
[root@master ~]# kubectl delete -f nginx-svc.yaml
service "nginx-test" deleted
[root@master ~]# kubectl delete -f nginx-test.yml
replicationcontroller "nginx-test" deleted
[root@master ~]# kubectl apply -f nginx-test.yml
replicationcontroller/nginx-test created
[root@master ~]# kubectl apply -f nginx-svc.yaml
service/nginx-test created
[root@master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-test-mvdqj 1/1 Running 0 16s
kubectl desribe pod nginx-test-mvdqj
IP: 10.244.1.3
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP **10.1.0.1** <none> 443/TCP 4h58m
nginx-test NodePort **10.1.50.86** <none> 80:30088/TCP 83s
验证一下用域名解析到service
[root@master ~]# cat busybox.yaml
apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: default
spec:
containers:
- image: busybox
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
name: busybox
restartPolicy: Always
kubectl apply -f busybox.yaml
[root@master ~]# kubectl exec -it busybox sh
/ # nslookup kubernetes (namespace不同要加.namespaces查询)
Server: 10.1.0.10
Address: 10.1.0.10:53
Name: kubernetes.default.svc.cluster.local
Address: **10.1.0.1**
/ # nslookup nginx-test
Server: 10.1.0.10
Address: 10.1.0.10:53
Name: nginx-test.default.svc.cluster.local
Address: **10.1.50.86**
可以看到域名解析到上面的service ip
创建service 默认会创建一个dns记录 dns格式为 ..svc.cluster.local