org域名做网站,搜索引擎优化公司排行,网站为什么要seo?,搜索运营是什么Service ServiceService创建service页面请求测试pod内部请求测试端口解析kube-proxy 使用ipvs 意义pod和Service的关系常用类型ClusterIpNodePortLoadBalancernode内网部署应用#xff0c;外网访问不到 Service 服务基于ip端口的虚拟主机#xff0c;定义一组pod的访问规则 Se… Service ServiceService创建service页面请求测试pod内部请求测试端口解析kube-proxy 使用ipvs 意义pod和Service的关系常用类型ClusterIpNodePortLoadBalancernode内网部署应用外网访问不到 Service 服务基于ip端口的虚拟主机定义一组pod的访问规则 Service 》 svc //简写Service k8s 内部域名访问方式 ..svc.cluster.local 创建service
1.创建一个depl
[rootkub-k8s-master prome]# vim nginx-depl.yml
apiVersion: apps/v1
kind: Deployment
metadata:name: dep01
spec:selector:matchLabels:app: webreplicas: 2template:metadata:labels:app: webspec:containers:- name: testnginx9image: daocloud.io/library/nginxports:- containerPort: 80
[rootkub-k8s-master prome]# kubectl apply -f nginx-depl.yml
deployment.apps/nginx-deployment created
2. 创建service并且以nodePort的方式暴露端口给外网
[rootkub-k8s-master prome]# vim nginx_svc.yaml
apiVersion: v1
kind: Service
metadata:name: mysvc
spec:type: NodePort #类型ports:- port: 8080nodePort: 30001targetPort: 80selector: #选择器app: web[rootkub-k8s-master prome]# kubectl apply -f nginx_svc.yaml
service/mysvc created3.测试
[rootkub-k8s-master prome]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 none 443/TCP 5d18h
mysvc NodePort 10.100.166.208 none 8080:30001/TCP 21s页面请求测试
pod内部请求测试
# 进入docker容器
[rootkube-node1 ~]# docker exec -it b4 /bin/bash
# 请求
rootdep01-694c5dbcd-ccdsv:/# curl mysvc.default.svc.cluster.local:8080
!DOCTYPE html
html
head
titleWelcome to nginx!/title
stylebody {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}
/style
/head
body
h1Welcome to nginx!/h1
pIf you see this page, the nginx web server is successfully installed and
working. Further configuration is required./ppFor online documentation and support please refer to
a hrefhttp://nginx.org/nginx.org/a.br/
Commercial support is available at
a hrefhttp://nginx.com/nginx.com/a./ppemThank you for using nginx./em/p
/body
/html端口解析
# 解析
port
port是暴露在cluster ip上的端口port提供了集群内部客户端访问service的入口即clusterIP:port。nodeport
nodePort 提供了集群外部客户端访问 Service 的一种方式nodePort 提供了集群外部客户端访问 Service 的端口通过 nodeIP:nodePort 提供了外部流量访问k8s集群中service的入口。targetPort
targetPort是pod的端口从port和nodePort来的流量经过kube-proxy流入到后端pod的targetPort上最后进入容器。containerPort
containerPort是pod内部容器的端口targetPort映射到containerPort。kube-proxy 使用ipvs
kubectl get configmap kube-proxy -n kube-system -o yaml kube-proxy-configmap.yamlsed -i s/mode: /mode: ipvs/ kube-proxy-configmap.yamlkubectl apply -f kube-proxy-configmap.yamlrm -f kube-proxy-configmap.yamlkubectl get pod -n kube-system | grep kube-proxy | awk {system(kubectl delete pod $1 -n kube-system)} 通过controller建立pod通过service与别人建立关联包括访问pod以及访问pod中的应用意义
pod和Service的关系
根据label和selector标签建立关联的
通过service实现pod的负载均衡
service是通过虚拟ip进行访问虚拟ip又称vip常用类型 默认ClusterIp类型可以在yaml文件中的selector标签使用type: 其他类型以达到转换类型的目的 ClusterIp
集群内部进行使用集群内部使用CLUSTER-IP进行访问 NodePort
对外访问应用使用集群内任何ip暴露端口都可以进行访问LoadBalancer
对外访问应用使用调用公有云的内容node内网部署应用外网访问不到
外网访问方式
1.找到一台可以进行外网访问机器安装nginx使用nginx做反向代理进行访问手动将可以访问的节点添加到nginx里面2.LoadBalancer公有云把负载均衡的控制器连接公有云的负载均衡控制器他就会自动分配到node上