[root@k8s-master-01 deploy]# more mydeploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: mydeploy
name: mydeploy
spec:
replicas: 1
selector:
matchLabels:
app: mydeploy
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: mydeploy
spec:
containers:
- image: nginx
name: nginx
resources:
requests:
cpu: 200m
status: {}
[root@k8s-master-01 deploy]# kubectl apply -f mydeploy.yaml
deployment.apps/mydeploy configured
#暴露端口创建svc
[root@k8s-master-01 deploy]# kubectl expose deploy mydeploy --name=mysvc --port=80 --target-port=80
service/mysvc exposed
[root@k8s-master-01 deploy]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mysvc ClusterIP 10.102.157.222 <none> 80/TCP 9s
#获取svc对应的后端pod信息
[root@k8s-master-01 ~]# kubectl get ep
NAME ENDPOINTS AGE
mysvc 10.244.1.29:80 27m
#创建一个有nslookup功能的pod
[root@k8s-master-01 deploy]# kubectl run test-pod --image=busybox:1.28 --command sleep 4800
pod/test-pod created
#查看该pod中的环境变量,可以看到其中已经有了创建的service mysvc的相关信息,仅仅适用于在svc创建之后再创建的pod
[root@k8s-master-01 deploy]# kubectl exec -it test-pod -- sh
/ # ls
bin dev etc home proc root sys tmp usr var
/ # env | grep ^MYSVC
MYSVC_PORT_80_TCP=tcp://10.102.157.222:80
MYSVC_SERVICE_HOST=10.102.157.222
MYSVC_PORT=tcp://10.102.157.222:80
MYSVC_SERVICE_PORT=80
MYSVC_PORT_80_TCP_ADDR=10.102.157.222
MYSVC_PORT_80_TCP_PORT=80
MYSVC_PORT_80_TCP_PROTO=tcp
#nslookup查找mysvc
/ # nslookup mysvc
Server: 10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local
Name: mysvc
Address 1: 10.102.157.222 mysvc.app01.svc.cluster.local
K8S service
最新推荐文章于 2023-04-22 10:19:03 发布