服务配置YAML
创建yaml文件,该文件将用于创建服务。
vim nginx_service.yaml
nginx_service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx1
labels:
app: nginx1
spec:
type: NodePort
ports:
- port: 81 # 集群内部通信的端口
targetPort: 80 # 指向pods端口
nodePort: 30081 # 对外暴露的工作节点端口
selector:
app: nginx1
注意:现在不理解文件内容没关系,后续将有详细介绍。
创建服务
使用kubectl创建服务:
kubectl create -f ./nginx_service.yaml
执行详情:
[root@qikegu-centos5 nginx_kube_example]# kubectl create -f ./nginx_service.yaml
service/nginx1 created
查看服务
使用kubectl查看服务
[root@qikegu-centos5 ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 7d1h
nginx1 NodePort 10.109.158.32 <none> 81:30081/TCP 18m
[root@qikegu-centos5 ~]# kubectl get endpoints
NAME ENDPOINTS AGE
kubernetes 192.168.31.174:6443 7d1h
nginx1 10.33.0.0:80,10.33.0.1:80 19m
可以看到,服务nginx1
已经创建成功。
访问服务
使用curl尝试访问nginx1
:
内部Pods IP访问:
[root@qikegu-centos5 ~]# curl 10.33.0.0:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
可以看到,访问成功。
工作节点访问
使用nodePort映射端口,可以经过工作节点访问该端口。
[root@qikegu-centos5 ~]# curl qikegu-knode1:30081
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
可以看到,访问成功。