这篇文章主要介绍了k8s使用Service控制器对外暴露服务,包括部署deploy,部署 service及查看 service 和 pod 的关系,本文给大家介绍的非常详细,需要的朋友可以参考下
Service 引入主要是解决 Pod 的动态变化,提供统一访问入口:
- 防止 Pod 失联,准备找到提供同一个服务的 Pod (服务发现)
- 定义一组 Pod 的访问策略 (负载均衡)
部署 deploy
kubectl apply -f deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: chiyi-nginx
spec:
replicas: 3
selector:
matchLabels:
app: chiyi-nginx
template:
metadata:
labels:
app: chiyi-nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
部署 service
kubectl apply -f service.yaml
apiVersion: v1
kind: Service
metadata:
name: chiyi-nginx
spec:
selector:
app: chiyi-nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30002
type: NodePort
查看 service 和 pod 的关系
kubectl get ep
curl 10.244.1.58:80
说明:
Service 通过标签关联一组 Pod
Service 为一组 Pod 提供负载均衡能力
[root@k8s-master service]# kubectl get ep
NAME ENDPOINTS AGE
chiyi-nginx 10.244.1.58:80,10.244.1.59:80,10.244.2.46:80 5m19s
kubernetes 172.17.28.225:6443 23h
[root@k8s-master service]# curl 10.244.1.58: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>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
查看 service
kubectl get service
curl 10.101.104.218
[root@k8s-master service]# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
chiyi-nginx NodePort 10.101.104.218 <none> 80:30002/TCP 6m3s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23h
[root@k8s-master service]# curl 10.101.104.218
<!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>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
查看端口
ss -antp |grep 30002
[root@k8s-master service]# ss -antp |grep 30002
LISTEN 0 128 *:30002 *:* users:(("kube-proxy",pid=3544,fd=13))
导出 yaml
kubectl get service chiyi-nginx -o yaml
筛选 service 关联 pod
kubectl get pods -l app=chiyi-nginx
[root@k8s-master service]# kubectl get pods -l app=chiyi-nginx
NAME READY STATUS RESTARTS AGE
chiyi-nginx-5bbf8bff4b-6bwfz 1/1 Running 0 3m58s
chiyi-nginx-5bbf8bff4b-bpvvc 1/1 Running 0 3m58s
chiyi-nginx-5bbf8bff4b-pwwt4 1/1 Running 0 3m58s
扩容测试
kubectl scale deployment chiyi-nginx --replicas=1
kubectl get service,pods,ep
Service 三种常用类型
- ClusterIP 集群内部使用,任一节点服务器和 pod 内部都可以访问
- NodePort 对外暴露应用(端口默认范围:30000-32767),任一节点服务器公网IP+端口号,可在浏览器访问。
- LoadBalancer 对外暴露应用,适合公有云
到此这篇关于k8s 使用 Service 控制器对外暴露服务的文章就介绍到这了,更多相关k8s对外暴露服务内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
沃梦达教程
本文标题为:关于k8s 使用 Service 控制器对外暴露服务的问题
基础教程推荐
猜你喜欢
- nginx.conf(centos7 1.14)主配置文件修改 2023-09-23
- linux下安装apache与php;Apache+PHP+MySQL配置攻略 2023-08-07
- 实战Nginx_取代Apache的高性能Web服务器 2023-09-29
- IIS 6 的 PHP 最佳配置方法 2022-09-01
- Apache服务器配置攻略3 2022-09-01
- Apache Hudi数据布局黑科技降低一半查询时间 2022-10-06
- linux之conda环境安装全过程 2023-07-11
- apache和nginx结合使用 2023-09-10
- 服务器添加git钩子的步骤 2022-12-12
- centos 7 安装及配置zabbix agent 2023-09-24