当前位置: 首页 > news >正文

网站没有被收录销售型网站的建设流程及特点

网站没有被收录,销售型网站的建设流程及特点,产品网,余姚建设公司网站Service的四种类型使用 ClusterIP使用示例Pod里使用service的服务名访问应用 NodePort使用示例 ExternalName使用示例 LoadBalancer K8S支持以下4种Service类型#xff1a;ClusterIP、NodePort、ExternalName、LoadBalancer 以下是使用4种类型进行Service创建#xff0c;应对… Service的四种类型使用 ClusterIP使用示例Pod里使用service的服务名访问应用 NodePort使用示例 ExternalName使用示例 LoadBalancer K8S支持以下4种Service类型ClusterIP、NodePort、ExternalName、LoadBalancer 以下是使用4种类型进行Service创建应对不同场景 ClusterIP 默认类型适用于仅在集群内部提供服务的应用。创建的Service仅可在集群内部访问由K8S自动分配IP地址。 使用示例 1、创建pod vim pod_test_1.yaml编写pod的yaml文件 apiVersion: apps/v1 kind: Deployment metadata:name: nginx-test-1 spec:selector:matchLabels:test: cluster # 配置deployment的标签必须与pod标签一致replicas: 2 # 配置deployment的pod数template:metadata:labels:test: cluster # 配置pod的标签spec:containers:- name: my-nginximage: docker.io/library/nginx:latest # 使用的镜像imagePullPolicy: IfNotPresent # 节点本地没找到镜像再去远程仓库拉取ports:- containerPort: 80 #pod中的容器需要暴露的端口startupProbe: # 配置启动探测periodSeconds: 5initialDelaySeconds: 60timeoutSeconds: 10httpGet: scheme: HTTPport: 80path: /livenessProbe: # 配置存活探测periodSeconds: 5initialDelaySeconds: 60timeoutSeconds: 10httpGet:scheme: HTTPport: 80path: /readinessProbe: # 配置就绪探测只有探测就绪成功后才会记录到Service里的endpointperiodSeconds: 5initialDelaySeconds: 60 # pod启动后首次检查就绪探测的时间单位为秒。timeoutSeconds: 10httpGet: # 探测方式是HTTP发起GET请求服务的80端口访问根路径scheme: HTTPport: 80path: /更新启动资源 kubectl apply -f pod_test_1.yaml查看刚才创建的Pod ip地址 kubectl get pods -owide -l testcluster查看 ReplicaSet信息 kubectl get replicaset -l testcluster请求pod的 IP地址访问应用 curl 10.244.36.75:80curl 10.244.169.133在pod1中请求pod2的应用可以访问 kubectl exec -it nginx-test-1-69ddb65d98-vq2r6 -- /bin/bash“误”删除其中一个Pod查看Pod集群变化 kubectl delete pods nginx-test-1-69ddb65d98-vq2r6 kubectl get pods -owide -l testcluster通过上面可以看到重新生成了一个podnginx-test-1-69ddb65d98-nkjnvIP是110.244.36.76在k8s中创建pod如果pod被删除了重新生成的pod的IP地址会发生变化所以需要在pod前端加一个固定接入层。 2、创建service vim service_test_1.yaml编写service的yaml文件 apiVersion: v1 kind: Service metadata:name: nginx-test-1labels:test: cluster spec:type: ClusterIPports:- port: 80 #service的端口暴露给k8s集群内部服务访问protocol: TCPtargetPort: 80 #pod容器中定义的端口selector:test: cluster #选择拥有testcluster标签的pod上述yaml文件将创建一个 Service关联具有标签testcluster的Pod目标TCP端口80 targetPort容器接收流量的端口port抽象的 Service 端口可以使任何其它 Pod访问该 Service的端口。 更新启动Service kubectl apply -f service_test_1.yaml查看Service kubectl get svc -l testcluster在k8s控制节点访问service的 IP:port 就可以把请求代理到后端pod curl 10.111.10.207:80通过上面可以看到请求Service IP:port 跟直接访问pod IP:port 看到的结果一样这就说明Service可以把请求代理到它所关联的后端Pod 注意上图的 “10.111.10.207:80” 地址只能是在k8s集群内部访问在外部无法访问想要通过浏览器是访问不通的 Pod里使用service的服务名访问应用 service只要创建完成就可以直接解析它的服务名每一个服务创建完成后都会在集群dns中动态添加一个资源记录添加完成后就可以解析了资源记录格式是 SVC_NAME.NS_NAME.DOMAIN.LTD. 服务名.命名空间.域名后缀 集群默认的域名后缀是svc.cluster.local 上面创建的nginx-test-1服务完整名称解析是nginx-test-1.default.svc.cluster.local 在Pod里通过Service的服务名访问应用 kubectl exec -it nginx-test-1-69ddb65d98-nkjnv -- /bin/bashcurl nginx-test-1.default.svc.cluster.localNodePort 适用于需要从外部访问Service的应用。创建的Service在每个节点上公开一个静态端口使得外部客户端可以通过公开的端口访问Service的应用。 使用示例 1、创建pod vim pod_test_2.yaml编写pod的yaml文件 apiVersion: apps/v1 kind: Deployment metadata:name: nginx-test-2 spec:selector:matchLabels:test: nodeportreplicas: 2template:metadata:labels:test: nodeportspec:containers:- name: my-nginximage: docker.io/library/nginx:latestimagePullPolicy: IfNotPresentports:- containerPort: 80 #pod中的容器需要暴露的端口startupProbe:periodSeconds: 5initialDelaySeconds: 60timeoutSeconds: 10httpGet:scheme: HTTPport: 80path: /livenessProbe:periodSeconds: 5initialDelaySeconds: 60timeoutSeconds: 10httpGet:scheme: HTTPport: 80path: /readinessProbe:periodSeconds: 5initialDelaySeconds: 60timeoutSeconds: 10httpGet:scheme: HTTPport: 80path: / 更新启动资源 kubectl apply -f pod_test_2.yaml查看pod是否创建成功 kubectl get pods -owide -l testnodeport2、创建service代理pod vim service_test_2.yaml编写service的yaml文件 apiVersion: v1 kind: Service metadata:name: nginx-test-2labels:test: nodeport spec:type: NodePortports:- port: 80protocol: TCPtargetPort: 80nodePort: 30380selector:test: nodeport更新启动Service kubectl apply -f service_test_2.yaml查看Service kubectl get svc -l testnodeportkubectl describe svc nginx-test-2访问Service curl 10.102.33.103注意10.102.33.103是k8s集群内部的Service的IP地址只能在k8s集群内部访问在集群外无法访问。 在集群外访问ServiceK8S的node节点IP:nodePort PS. 我本地搭建是一个控制节点2个工作节点 192.168.40.182:30380控制节点192.168.40.183:30380工作节点1192.168.40.184:30380工作节点2 以上3个地址都能访问到应用 数据转发流程 ipvsadm -Lnip addr客户端请求(任何一个节点IP端口)http://192.168.40.182:30380-docker0 虚拟网卡:172.17.0.1:30380-10.244.36.80:80,10.244.169.137:80 ExternalName 适用于跨名称空间访问。例如命名空间为“default”下的client 服务想要访问命名空间为“nginx-ns”下的nginx-svc服务。可通过DNS解析直接访问该服务不需要其他负载均衡器。 使用示例 1、新建一个命名空间 kubectl create ns nginx-ns2、搭建nginx-svc服务 2.1 创建pod vim nginx_deployment.yaml编写pod的yaml文件 apiVersion: apps/v1 kind: Deployment metadata:name: nginxnamespace: nginx-ns spec: replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginximagePullPolicy: IfNotPresent更新启动资源 kubectl apply -f nginx_deployment.yaml查看pod是否创建成功 kubectl get pods -n nginx-ns2.2 创建service vim nginx_svc.yaml编写service的yaml文件 apiVersion: v1 kind: Service metadata:name: nginx-svcnamespace: nginx-ns spec:selector:app: nginxports:- name: httpprotocol: TCPport: 80targetPort: 80更新启动Service kubectl apply -f nginx_svc.yaml查看Service信息 kubectl get svc -n nginx-nskubectl describe svc nginx-svc -n nginx-ns3、搭建client 服务 3.1 创建pod vim client.yaml编写pod的yaml文件 apiVersion: apps/v1 kind: Deployment metadata:name: client spec: replicas: 1selector:matchLabels:app: busyboxtemplate:metadata:labels:app: busyboxspec:containers:- name: busyboximage: busyboximagePullPolicy: IfNotPresentcommand: [/bin/sh,-c,sleep 36000]更新启动资源 kubectl apply -f client.yaml该文件中指定了到 nginx-svc 的软链让使用者感觉就好像调用自己命名空间的服务一样 查看pod是否正常运行 kubectl get pods -l appbusybox3.2 创建service vim client_svc.yaml编写service的yaml文件 apiVersion: v1 kind: Service metadata:name: client-svc spec:type: ExternalNameexternalName: nginx-svc.nginx-ns.svc.cluster.localports:- name: httpport: 80targetPort: 80更新启动Service kubectl apply -f client_svc.yaml登录到client pod kubectl exec -it client-568955849b-mt47t -- /bin/shwget -q -O - client-svc.default.svc.cluster.local wget -q -O - nginx-svc.nginx-ns.svc.cluster.local上面两个请求的结果一样 LoadBalancer LoadBalancer类型适用于需要提供公共服务并且需要高可用性和高伸缩性的场景。与其他类型的Service相比实现更复杂需要绑定到云平台的负载均衡器服务上因此通常适用于云平台环境。 ps. 设备有限没有做这块的实验。 特放官网的链接https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/#loadbalancer
http://www.zqtcl.cn/news/425057/

相关文章:

  • 成都58手机微信网站建设名录近一周财经新闻热点
  • wordpress情侣网站源码微信开放平台官网登录
  • 网站改版提示无需改版有没有兼职做设计的网站
  • 网站sem怎么做网络建设设计方案
  • wap网站在线生成做饰品网站
  • 网站主机在哪里注册呢江西的赣州网站建设
  • 零基础网站建设视频教程建筑设计专业是干什么的
  • 淘客做网站的话虚拟主机多大重庆网上房地产网签合同查询
  • 官网建站网站seo关键字优化软件
  • 网站制作的内容什么好开发板用什么语言编程
  • 医院品牌网站建设aws创建wordpress
  • dw做的网站怎么让别人看到动易网站频道栏目字体大小修改
  • 东莞网站设计公司排名辽宁建设工程信息网网上开标
  • 网站推广工具有页面素材图片
  • 网页设计搭建网站外贸求购信息平台
  • 仓库改造类网站怎么做手机创建网站的软件
  • 成都平台网站建设公司邯郸网络科技公司
  • 热门课程自己做网站大型购物网站建站
  • apache 创建网站重庆建站模板
  • 手机怎么制作网站叶县建设局网站
  • 怎么做后台网站一键更新搜索引擎优化的主要策略
  • 站酷网免费素材图库官网国外域名购买
  • 石家庄个人谁做网站天体摄影
  • 徐州集团网站建设网站排名快速提升工具
  • 自己创业做原公司一样的网站做网站要学会什么语言
  • 宿州高端网站建设公司网络业务
  • 做多语言版本网站网站收录低
  • 鼎湖网站建设江门网站优化快速排名
  • 做交通事故的网站北京物联网app开发公司
  • 网站建设中 页面网络培训注册会计师