音乐介绍网站怎么做的,石家庄网站空间,做动漫网站的素材,网站建设备案书模板目录
一、k8s集群资源管理方式分类
1.1陈述式资源管理方式#xff1a;增删查比较方便#xff0c;但是改非常不方便
1.2声明式资源管理方式#xff1a;yaml文件管理
二、陈述式资源管理方法
2.1查看版本信息
2.2查看资源对象简写
2.3配置kubectl自动补全
2.4node节点…目录
一、k8s集群资源管理方式分类
1.1陈述式资源管理方式增删查比较方便但是改非常不方便
1.2声明式资源管理方式yaml文件管理
二、陈述式资源管理方法
2.1查看版本信息
2.2查看资源对象简写
2.3配置kubectl自动补全
2.4node节点查看日志
三、基本信息查看
3.1查看 master 节点状态
3.2查看命名空间
3.3查看default命名空间的所有资源
3.4创建命名空间
3.5删除命名空间
3.6在命名空间kube-public 创建副本控制器deployment来启动Podnginx-aa
3.6.1用于创建deployment 控制器管理的pod
3.6.2run:用于创建一个自主式/静态 Pod
3.7描述某个资源的详细信息
3.8查看命名空间kube-public 中的pod 信息
3.9kubectl exec可以跨主机登录容器docker exec 只能在容器所在主机上登录
3.10删除重启pod资源由于存在deployment/rc之类的副本控制器删除pod也会重新拉起来
3.11扩缩容
3.11.1扩容
3.11.2缩容
3.12删除副本控制器
3.13查看标签
四、项目的生命周期
4.1创建 kubectl create命令
4.2发布 kubectl expose命令
4.2.1 Kubernetes 之所以需要 Service
4.2.2service 的 type 类型
4.2.3端口类型
4.2.3.1port
4.2.3.2nodePort
4.2.3.3targetPort
4.2.3.4containerPort
4.3更新 kubectl set命令
4.4回滚 kubectl rollout命令
4.5删除 kubectl delete命令
五、金丝雀发布Canary Release
5.1金丝雀发布介绍
5.2金丝雀发布图解
5.3金丝雀发布部署
5.4金丝雀发布优缺点
5.4.1金丝雀发布的优点
5.4.2金丝雀发布的缺点
5.5写累了吧浅休息下
六、详解service资源
6.1service的端口分类
6.2service的四大基础类型
6.3查看service关联的端点的方式 一、k8s集群资源管理方式分类
1.1陈述式资源管理方式增删查比较方便但是改非常不方便
使用一条kubectl命令和参数选项来实现资源对象管理操作
即通过命令的方式来实现对资源的管理
1.2声明式资源管理方式yaml文件管理
使用yaml配置文件或者json配置文件来定义配置实现资源对象的管理操作
二、陈述式资源管理方法
kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口kubectl 是官方的CLI命令行工具用于与 apiserver 进行通信将用户在命令行输入的命令组织并转化为 apiserver 能识别的信息进而实现管理 k8s 各种资源的一种有效途径kubectl 的命令大全 kubectl --helpk8s中的文档http://docs.kubernetes.org.cn/683.html对资源的增、删、查操作比较方便但对改的操作就不容易了
#查看版本信息
kubectl version#查看资源对象简写
kubectl api-resources#查看集群信息
kubectl cluster-info#配置kubectl自动补全 只是当前生效永久生效加入 ~/.bashrc中
source (kubectl completion bash)#node节点查看日志
journalctl -u kubelet -f 2.1查看版本信息 kubectl version 2.2查看资源对象简写 kubectl api-resources 2.3配置kubectl自动补全 source (kubectl completion bash) 2.4node节点查看日志 journalctl -u kubelet -f 三、基本信息查看
kubectl get resource [-o wide|json|yaml] [-n namespace]
获取资源的相关信息-n 指定命令空间-o 指定输出格式
resource可以是具体资源名称如pod nginx-xxx也可以是资源类型如pod或者all(仅展示几种核心资源并不完整)
--all-namespaces 或 -A 表示显示所有命令空间
--show-labels 显示所有标签
-l app 仅显示标签为app的资源
-l appnginx 仅显示包含app标签且值为nginx的资源//查看 master 节点状态
kubectl get componentstatuses
kubectl get cs//查看命令空间
kubectl get namespace
kubectl get ns
//命令空间的作用用于允许不同 命令空间 的 相同类型 的资源 重名的//查看default命名空间的所有资源
kubectl get all [-n default]//创建命名空间app
kubectl create ns app
kubectl get ns//删除命名空间app
kubectl delete namespace app
kubectl get ns //在命名空间kube-public 创建副本控制器deployment来启动Podnginx-wl
kubectl create deployment nginx-wl --imagenginx -n kube-public //描述某个资源的详细信息
kubectl describe deployment nginx-wl -n kube-public
kubectl describe pod nginx-wl-d47f99cb6-hv6gz -n kube-public//查看命名空间kube-public 中的pod 信息
kubectl get pods -n kube-public
NAME READY STATUS RESTARTS AGE
nginx-wl-d47f99cb6-hv6gz 1/1 Running 0 24m//kubectl exec可以跨主机登录容器docker exec 只能在容器所在主机上登录
kubectl exec -it nginx-wl-d47f99cb6-hv6gz bash -n kube-public//删除重启pod资源由于存在deployment/rc之类的副本控制器删除pod也会重新拉起来
kubectl delete pod nginx-wl-d47f99cb6-hv6gz -n kube-public//若pod无法删除总是处于terminate状态则要强行删除pod
kubectl delete pod pod-name -n namespace --force --grace-period0
#grace-period表示过渡存活期默认30s在删除pod之前允许POD慢慢终止其上的容器进程从而优雅退出0表示立即终止pod//扩缩容
kubectl scale deployment nginx-wl --replicas2 -n kube-public # 扩容
kubectl scale deployment nginx-wl --replicas1 -n kube-public # 缩容//删除副本控制器
kubectl delete deployment nginx-wl -n kube-public
kubectl delete deployment/nginx-wl -n kube-public 3.1查看 master 节点状态 kubectl get componentstatuses
kubectl get cs 3.2查看命名空间 kubectl get namespace
kubectl get ns
命名空间的作用用于允许不同 命名空间 的 相同类型 的资源 可以重名 获取所有命名空间中的 Pod 列表 kubectl get pod --all-namespaces
kubectl get pod -A#获取所有命名空间中的 Pod 列表 3.3查看default命名空间的所有资源
kubectl get all [-n default]#这个命令 kubectl get all -n default 用于获取命名空间为 default 的所有资源包括 Pod、Service、Deployment 等。具体来说该命令包含以下部分
kubectlKubernetes 命令行工具用于与 Kubernetes 集群进行交互。
get all表示要获取指定命名空间中的所有资源包括 Pod、Service、Deployment 等。
-n default指定要获取资源的命名空间为 default 3.4创建命名空间 kubectl create ns hah
kubectl get ns 同一命名空间不能有相同的名字,不同命名空间可以有相同的名字 3.5删除命名空间 kubectl delete namespaces hah
kubectl get ns可以删除但是如果这个命名空间下面有资源资源就都会被删除再三考虑哦 3.6在命名空间kube-public 创建副本控制器deployment来启动Podnginx-aa kubectl create deployment nginx-aa --imagenginx -n kube-public#这个命令 kubectl create deployment nginx-aa --imagenginx -n kube-public 用于在命名空间 kube-public 中创建一个名为 nginx-aa 的 Deployment并使用 nginx 镜像作为 Deployment 中的容器。kubectlKubernetes 命令行工具用于与 Kubernetes 集群进行交互。
create deployment nginx-aa创建一个名为 nginx-aa 的 Deployment。
--imagenginx指定 Deployment 中要使用的容器镜像为 nginx。
-n kube-public指定要将 Deployment 创建在 kube-public 命名空间中。 kubectl create pod控制器名 pod名称 --image镜像名 Deployment无状态应用部署 Statefulset有状态应用部署 Replicaset副本数量控制器 Daemonset确保所有节点运行同一类 Pod Cronjob计划性任务 示例二 用kubectl create 创建 3.6.1用于创建deployment 控制器管理的pod 用run直接创建 3.6.2run:用于创建一个自主式/静态 Pod 3.7描述某个资源的详细信息 kubectl describe deployment nginx-aa -n kube-publickubectl describe pod nginx-aa-66b8d4497f-cdj44 -n kube-public 3.8查看命名空间kube-public 中的pod 信息 kubectl get pods -n kube-public 3.9kubectl exec可以跨主机登录容器docker exec 只能在容器所在主机上登录 kubectl exec -it nginx-aa-66b8d4497f-cdj44 bash -n kube-public 示例二 kubectl get pods -n kube-public -owide#用于获取在 kube-public 命名空间中运行的所有 Pods 的详细信息包括它们的名称、状态、IP 地址等。 -n kube-public 参数指定了命名空间为 kube-public而 -owide 参数指定了输出的格式为 wide这样可以显示更多的列。#将会列出在 kube-public 命名空间中运行的所有 Pods并显示它们的详细信息。 3.10删除重启pod资源由于存在deployment/rc之类的副本控制器删除pod也会重新拉起来 kubectl delete pod nginx-aa-66b8d4497f-cdj44 -n kube-public 若pod无法删除总是处于terminate状态则要强行删除pod kubectl delete pod pod-name -n namespace --force --grace-period0
#grace-period表示过渡存活期默认30s在删除pod之前允许POD慢慢终止其上的容器进程从而优雅退出0表示立即终止pod 3.11扩缩容 kubectl scale deployment nginx-bb --replicas5 -n kube-public # 扩容kubectl scale deployment nginx-bb --replicas2 -n kube-public # 缩容kubectl scale pod控制器类型 资源名称 --replicas副本数 -n 命名空间
##副本数决定扩容还是缩容
3.11.1扩容 3.11.2缩容 3.12删除副本控制器 kubectl delete deployment nginx-bb -n kube-public
kubectl delete deployment/nginx-aa -n kube-public 3.13查看标签
kubectl get pod --show-labels #查看所有资源的标签
kubectl get pod -l app #指定标签的键查看只显示标签为app的资源
kubectl get pod -l app -A
kubectl get pod -l appnginx-deployment #显示包含app标签且值为nginx的资源 kubectl get pod -l appnginx-deployment 四、项目的生命周期 项目的生命周期创建--发布--更新--回滚--删除 4.1创建 kubectl create命令 创建并运行一个或多个容器镜像。创建一个deployment 或job 来管理容器。 kubectl create --help kubectl -n 命名空间 create deployment 资源名称 --image镜像 --port容器的端口 --replicas副本数
启动 nginx 实例暴露容器端口 80设置副本数 3
kubectl create deployment nginx --imagenginx:1.14 --port80 --replicas3kubectl -n 命名空间 create deployment 资源名称 --image镜像 --port容器的端口 --replicas副本数kubectl get pods
kubectl get all 可以指定命名空间也可不指定此处指定命名空间为test
查看命名空间刚才创建的nginxtest有3个副本
4.2发布 kubectl expose命令 将资源暴露为新的 Servicekubectl expose --help kubectl expose deployment 控制器名称 --name服务名称 --port服务端口 --target-portpod端口 为deployment的nginx创建service并通过Service的80端口转发至容器的80端口上Service的名称为nginx-service类型为NodePort
kubectl expose deployment nginx --port80 --target-port80 --namenginx-service --typeNodePort
示例
kubectl expose deployment nginx-test --port8082 --target-port80 --namenginx-svc --typeNodePort -n test#用于在 test 命名空间中为名为 nginx-test 的 Deployment 创建一个 Service并将其暴露为 NodePort 类型的服务。具体来说该命令包含以下部分kubectlKubernetes 命令行工具用于与 Kubernetes 集群进行交互。
expose deployment nginx-test为名为 nginx-test 的 Deployment 创建一个 Service。
--port8082指定 Service 使用的端口为 8082。
--target-port80指定 Service 要将流量转发到 Deployment 中的容器的端口 80。
--namenginx-svc指定 Service 的名称为 nginx-svc。
--typeNodePort指定 Service 的类型为 NodePort这将在每个节点上随机选择一个端口并将该端口映射到 Service 的目标端口上。
-n test指定 Service 创建在 test 命名空间中。
通过执行这个命令您为名为 nginx-test 的 Deployment 创建了一个 NodePort 类型的 Service并将其暴露在节点的随机端口上从而允许外部流量访问该服务 8082这个端口是随意定的哦
使用node的IP地址进行检测node是运行服务的、master是用来管理的
浏览器检测 xhell也可以直接检测 ---------------------------------------------------------------------------------------------------------------------------------
4.2.1 Kubernetes 之所以需要 Service
Kubernetes 之所以需要 Service一方面是因为 Pod 的 IP 不是固定的Pod可能会重建另一方面则是因为一组 Pod 实例之间总会有负载均衡的需求。 Service 通过 Label Selector 实现的对一组的 Pod 的访问。 对于容器应用而言Kubernetes 提供了基于 VIP虚拟IP 的网桥的方式访问 Service再由 Service 重定向到相应的 Pod。
4.2.2service 的 type 类型
ClusterIP提供一个集群内部的虚拟IP以供Pod访问service默认类型)NodePort在每个Node上打开一个端口以供外部访问Kubernetes将会在每个Node上打开一个端口并且每个Node的端口都是一样的通过 NodeIp:NodePort 的方式Kubernetes集群外部的程序可以访问Service。 每个端口只能是一种服务端口范围只能是 30000-32767。 LoadBalancer通过设置LoadBalancer映射到云服务商提供的LoadBalancer地址。这种用法仅用于在公有云服务提供商的云平台上设置Service的场景。通过外部的负载均衡器来访问通常在云平台部署LoadBalancer还需要额外的费用。
在service提交后Kubernetes就会调用CloudProvider在公有云上为你创建一个负载均衡服务并且把被代理的Pod的IP地址配置给负载均衡服务做后端。
externalName将service名称映射到一个DNS域名上相当于DNS服务的CNAME记录用于让Pod去访问集群外部的资源它本身没有绑定任何的资源。 tgc.benet.com www.benet.com headless clusterIP 无头模式 名称 是Kubernetes中一种特殊类型的服务它不会为服务创建ClusterIP而是直接将DNS解析指向服务的每个Pod的IP地址。这种模式适用于需要直接与每个Pod进行通信的场景而不需要负载均衡或代理。
4.2.3端口类型
4.2.3.1port
port 是 k8s 集群内部访问service的端口即通过 clusterIP: port 可以从 Pod 所在的 Node 上访问到 service四层
4.2.3.2nodePort
nodePort 是外部访问 k8s 集群中 service 的端口通过 nodeIP: nodePort 可以从外部访问到某个 service。
4.2.3.3targetPort
targetPort 是 Pod 的端口从 port 或 nodePort 来的流量经过 kube-proxy 反向代理负载均衡转发到后端 Pod 的 targetPort 上最后进入容器。
4.2.3.4containerPort
containerPort 是 Pod 内部容器的端口targetPort 映射到 containerPort。 port: 为service 在 cluster Ip 暴露的端口targetport: 对应容器映射在pod 上的端口nodeport:可以通过k8s集群外部使用的 NodeIp Nodeport 访问service containerPort 容器内部进程使用的端口k8s集群内部 客户端 --- clusterip:port ---- 通过targetport ---- pod:ip containerportk8s集群外部 客户端 --- nodeip:nodeport ---- 通过targetport ---- pod:ip containerport 查看pod网络状态详细信息和 Service暴露的端口
kubectl get pods,svc -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
pod/nginx-cdb6b5b95-fjm2x 1/1 Running 0 44s 172.17.26.3 192.168.80.11 none
pod/nginx-cdb6b5b95-g28wz 1/1 Running 0 44s 172.17.36.3 192.168.80.12 none
pod/nginx-cdb6b5b95-x4m24 1/1 Running 0 44s 172.17.36.2 192.168.80.12 noneNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes ClusterIP 10.0.0.1 none 443/TCP 14d none
service/nginx-service NodePort 10.0.0.189 none 80:44847/TCP 18s runnginx//查看关联后端的节点
kubectl get endpoints//查看 service 的描述信息
kubectl describe svc nginx//在 node01 节点上操作查看负载均衡端口
yum install ipvsadm -y
ipvsadm -Ln
//外部访问的IP和端口
TCP 192.168.80.11:44847 rr- 172.17.26.3:80 Masq 1 0 0 - 172.17.36.2:80 Masq 1 0 0 - 172.17.36.3:80 Masq 1 0 0
//pod集群组内部访问的IP和端口
TCP 10.0.0.189:80 rr- 172.17.26.3:80 Masq 1 0 0 - 172.17.36.2:80 Masq 1 0 0 - 172.17.36.3:80 Masq 1 0 0 //在 node02 节点上操作同样方式查看负载均衡端口
yum install ipvsadm -y
ipvsadm -Ln
TCP 192.168.80.12:44847 rr- 172.17.26.3:80 Masq 1 0 0 - 172.17.36.2:80 Masq 1 0 0 - 172.17.36.3:80 Masq 1 0 0 TCP 10.0.0.189:80 rr- 172.17.26.3:80 Masq 1 0 0 - 172.17.36.2:80 Masq 1 0 0 - 172.17.36.3:80 Masq 1 0 0 curl 10.0.0.189
curl 192.168.80.11:44847
//在master01操作 查看访问日志
kubectl logs nginx-cdb6b5b95-fjm2x
kubectl logs nginx-cdb6b5b95-g28wz
kubectl logs nginx-cdb6b5b95-x4m24
---------------------------------------------------------------------------------------------------------------------------------
查看pod网络状态详细信息和 Service暴露的端口
[rootmaster01 ~]#kubectl get pods,svc -o wide -n test
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/nginx-test-7b97cf7f78-dztsx 1/1 Running 0 13m 10.244.1.60 node01 none none
pod/nginx-test-7b97cf7f78-rg7bx 1/1 Running 0 40m 10.244.1.54 node01 none none
pod/nginx-test-7b97cf7f78-sx9q5 1/1 Running 0 40m 10.244.1.56 node01 none noneNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/nginx-svc NodePort 10.96.253.185 none 8082:31385/TCP 86m appnginx-test#查看关联后端的节点
kubectl get endpoints#查看 service 的描述信息
kubectl describe svc nginx#在 node 节点上操作查看负载均衡端口
yum install ipvsadm -y
ipvsadm -Ln 查看pod网络状态详细信息和 Service暴露的端口 kubectl get pods,svc -o wide -n test 查看关联后端的节点
kubectl get endpointskubectl get endpoints nginx-zzz #进行查看#用于获取当前 Kubernetes 集群中所有 Service 的端点信息。端点是 Service 后面的实际 Pod 的 IP 地址和端口。#查看 service 的描述信息
kubectl describe svc nginxkubectl describe svc nginx-zzz 在 node01 节点上操作查看负载均衡端口 在 node02 节点上操作同样方式查看负载均衡端口 4.3更新 kubectl set命令 更改现有应用资源一些信息。 kubectl set --help #查看当前 nginx 的版本号
curl -I http://192.168.246.11:31385
curl -I http://192.168.246.12:31385#将nginx 版本更新为 1.18 版本
kubectl set image deployment/nginx nginxnginx:1.18#处于动态监听 pod 状态由于使用的是滚动更新方式所以会先生成一个新的pod然后删除一个旧的pod往后依次类推
kubectl get pods -w#再看更新好后的 Pod 的 ip 会改变
kubectl get pods -o wide#再看 nginx 的版本号
curl -I http://192.168.246.11:31385
curl -I http://192.168.246.12:31385 查看当前 nginx 的版本号 #查看当前 nginx 的版本号
curl -I http://192.168.246.11:31385 #node的ip地址
curl -I http://192.168.246.12:31385 将nginx 版本更新为 1.18版本 kubectl set image deployment/nginx-test nginxnginx:1.18 -n test 处于动态监听 pod 状态由于使用的是滚动更新方式所以会先生成一个新的pod然后删除一个旧的pod往后依次类推 kubectl get pods -w #再看更新好后的 Pod 的 ip 会改变 kubectl get pods -o wide
kubectl get pods -o wide -n test #指定命名空间test #再看更新好后的 Pod 的 ip 会发生改变如上图 再看 nginx 的版本号 curl -I http://192.168.246.11:31385
curl -I http://192.168.246.12:31385 4.4回滚 kubectl rollout命令 对资源进行回滚管理kubectl rollout --help //查看历史版本
kubectl rollout history deployment/nginx //执行回滚到上一个版本
kubectl rollout undo deployment/nginx//执行回滚到指定版本
kubectl rollout undo deployment/nginx --to-revision1//检查回滚状态
kubectl rollout status deployment/nginx 查看历史版本 kubectl -n test rollout history deployment/nginx-test 执行回滚到上一个版本 kubectl rollout undo deployment/nginx-test -n test 执行回滚到指定版本
kubectl rollout undo deployment/nginx-test --to-revision2 -n test 检查回滚状态 kubectl rollout status deployment/nginx-test -n test 4.5删除 kubectl delete命令
//删除副本控制器
kubectl delete deployment/nginx//删除service
kubectl delete svc/nginx-servicekubectl get all 删除副本控制器 #删除控制器
kubectl delete deployment/nginx-test -n test#删除服务
kubectl delete svc nginx-svc -n test
kubectl delete service/nginx-svc -n test 生命周期 创建、发布、更新、回滚、删除 创建: kubelet create 资源类型 资源名称 --image镜像名称 --port端口 --replicas 发布kubelet expose 资源类型 资源名称 --port --targetport type clusterip或NodePort 更新kubelet set image 资源类型 资源名称 容器名镜像名 标签版本 回滚kubelet rollout undo 资源类型 资源名称 默认是回滚到上一个版本 kubelet rollout history 或status 资源类型 资源名称 查看回滚历史记录或者状态 删除kubelet delete 资源类型 资源名称 五、金丝雀发布Canary Release
5.1金丝雀发布介绍
Deployment控制器支持自定义控制更新过程中的滚动节奏如“暂停(pause)”或“继续(resume)”更新操作。比如等待第一批新的Pod资源创建完成后立即暂停更新过程此时仅存在一部分新版本的应用主体部分还是旧的版本。然后再筛选一小部分的用户请求路由到新版本的Pod应用继续观察能否稳定地按期望的方式运行。确定没问题之后再继续完成余下的Pod资源滚动更新否则立即回滚更新操作。这就是所谓的金丝雀发布 金丝雀发布的思想则是将少量的请求引流到新版本上因此部署新版本服务只需极小数的机器。验证新版本符合预期后逐步调整流量权重比例使得流量慢慢从老版本迁移至新版本期间可以根据设置的流量比例对新版本服务进行扩容同时对老版本服务进行缩容使得底层资源得到最大化利用 5.2金丝雀发布图解
如图某服务当前版本为 v1现在新版本 v2 要上线。为确保流量在服务升级过程中平稳无损采用金丝雀发布方案逐步将流量从老版本迁移至新版本。 5.3金丝雀发布部署
创建deployment
因为我们刚刚删除了所有我们重新创建一个
kubectl create deployment nginx-zzz --imagenginx:1.18 --port80 --replicas6 -n test 暴露服务
kubectl expose deployment nginx-zzz --port8083 --target-port80 --namenginx-service --typeNodePort -n test 查看更新之前的版本 1更新deployment的版本并配置暂停deployment
kubectl set image deployment/nginx-zzz nginxnginx:1.22 -n test kubectl rollout pause deployment nginx-zzz -n testkubectl rollout status deployment nginx-zzz -n test #观察更新状态 再开一个xhell查看,访问刚跟新的内容 2监控更新的过程可以看到已经新增了一个资源但是并未按照预期的状态去删除一个旧的资源就是因为使用了pause暂停命令 kubectl get pods -w -n test 检测看看既有1.22版本的nginx也有1.18版本的nginx 3确保更新的pod没问题了继续更新 kubectl rollout resume deployment/nginx-zzz -n test4查看最后的更新情况 kubectl get pods -w -n test 更新成功并且现在都是1.22版本的nginx服务了
结束
5.4金丝雀发布优缺点
5.4.1金丝雀发布的优点
按比例将流量无差别地导向新版本新版本故障影响范围小发布期间逐步对新版本扩容同时对老版本缩容资源利用率高
5.4.2金丝雀发布的缺点
流量无差别地导向新版本可能会影响重要用户的体验发布周期长
5.5写累了吧浅休息下 放松一下感觉累了吗那就停下来歇一歇吧 看看它能不能负载均衡 给它缩容到3个副本编写方便一点哈哈哈
编写内容方便查看是否能够负载均衡 访问ClusterIP测试是否能负载均衡 也可以去浏览器查看哦 六、详解service资源
6.1service的端口分类
service端口
portservice的clusterIP使用的端口只能在K8S集群内部被访问到。K8S集群内部的客户端可以通过clusterIP:port来访问servicenodePortNodePort类型的service使用的端口会在每个node节点上都开启相同的端口也就是nodeIP使用的端口默认范围为30000~32767。K8S集群外部或内部的客户端都可以通过nodeIp:nodePort来访问servicetargetPortPod容器使用的端口。service会将发送给port或nodePort的请求转发给Pod容器配置要与containerPort一致
Pod容器的端口
containerPort创建Pod时所指定的容器端口
6.2service的四大基础类型
ClusterIP默认的service资源的类型可提供clusterIP:port供K8S集群内部访问service及其关联的PodNodePort会在每个node节点上都开启相同的端口K8S集群外部或内部的用户都可以通过nodeIp:nodePort来访问service及其关联的PodLoadBalancer使用云负载设备和service作映射外部用户通过访问云负载设备即可将请求转发到K8S的node节点再通过nodeIP:nodePort来访问service及其关联的PodExternalName相当于给一个外部地址域名或IP作别名K8S集群内的Pod可以通过这个service访问相关的外部服务service 是通过 标签选择器 关联Pod的标签 来自动发现Pod的端点podIP:containerPort
6.3查看service关联的端点的方式
查看service关联的Pod端口
kubectl -n 命名空间 describe svc 资源名称
kubectl -n 命名空间 get endpoints [svc资源名称]
kubectl -n 命名空间 describe endpoints 资源名称 大总结
# 获取节点和服务版本信息kubectl get nodes# 获取pod信息默认是default名称空间并查看附加信息【如pod的IP及在哪个节点运行】kubectl get pod -o wide# 获取指定名称空间的podkubectl get pod -n kube-system# 获取所有名称空间的podkubectl get pod -A # 查看pod的详细信息以yaml格式或json格式显示kubectl get pods -o yamlkubectl get pods -o json# 查看pod的标签信息kubectl get pod -A --show-labels # 根据Selectorlabel query来查询podkubectl get pod -A --selectork8s-appkube-dns# 查看所有名称空间的service信息kubectl get svc -A# 查看指定名称空间的service信息kubectl get svc -n kube-system# 查看componentstatuses信息kubectl get cs# 查看所有configmaps信息kubectl get cm -A# 查看所有serviceaccounts信息kubectl get sa -A# 查看所有daemonsets信息kubectl get ds -A# 查看所有deployments信息kubectl get deploy -A# 查看所有replicasets信息kubectl get rs -A# 查看所有statefulsets信息kubectl get sts -A# 查看所有jobs信息kubectl get jobs -A# 查看所有ingresses信息kubectl get ing -A# 查看有哪些名称空间kubectl get ns 文章转载自: http://www.morning.kpbgvaf.cn.gov.cn.kpbgvaf.cn http://www.morning.pbmkh.cn.gov.cn.pbmkh.cn http://www.morning.qzpkr.cn.gov.cn.qzpkr.cn http://www.morning.lfdrq.cn.gov.cn.lfdrq.cn http://www.morning.xsfny.cn.gov.cn.xsfny.cn http://www.morning.wqfrd.cn.gov.cn.wqfrd.cn http://www.morning.wfmqc.cn.gov.cn.wfmqc.cn http://www.morning.jcfg.cn.gov.cn.jcfg.cn http://www.morning.gccrn.cn.gov.cn.gccrn.cn http://www.morning.jmnfh.cn.gov.cn.jmnfh.cn http://www.morning.rbffj.cn.gov.cn.rbffj.cn http://www.morning.jwtwf.cn.gov.cn.jwtwf.cn http://www.morning.ysmw.cn.gov.cn.ysmw.cn http://www.morning.mmqhq.cn.gov.cn.mmqhq.cn http://www.morning.dshkp.cn.gov.cn.dshkp.cn http://www.morning.qwyms.cn.gov.cn.qwyms.cn http://www.morning.njfgl.cn.gov.cn.njfgl.cn http://www.morning.xnkh.cn.gov.cn.xnkh.cn http://www.morning.clhyj.cn.gov.cn.clhyj.cn http://www.morning.bdgb.cn.gov.cn.bdgb.cn http://www.morning.qscsy.cn.gov.cn.qscsy.cn http://www.morning.jgcxh.cn.gov.cn.jgcxh.cn http://www.morning.nkdmd.cn.gov.cn.nkdmd.cn http://www.morning.rbyz.cn.gov.cn.rbyz.cn http://www.morning.supera.com.cn.gov.cn.supera.com.cn http://www.morning.fqnql.cn.gov.cn.fqnql.cn http://www.morning.youprogrammer.cn.gov.cn.youprogrammer.cn http://www.morning.ldhbs.cn.gov.cn.ldhbs.cn http://www.morning.bxbkq.cn.gov.cn.bxbkq.cn http://www.morning.guofenmai.cn.gov.cn.guofenmai.cn http://www.morning.hqxyt.cn.gov.cn.hqxyt.cn http://www.morning.wztnh.cn.gov.cn.wztnh.cn http://www.morning.rkfh.cn.gov.cn.rkfh.cn http://www.morning.rfyk.cn.gov.cn.rfyk.cn http://www.morning.rgrz.cn.gov.cn.rgrz.cn http://www.morning.zqbrw.cn.gov.cn.zqbrw.cn http://www.morning.jbshh.cn.gov.cn.jbshh.cn http://www.morning.cwqpl.cn.gov.cn.cwqpl.cn http://www.morning.lmfxq.cn.gov.cn.lmfxq.cn http://www.morning.3ox8hs.cn.gov.cn.3ox8hs.cn http://www.morning.youngbase.cn.gov.cn.youngbase.cn http://www.morning.rkypb.cn.gov.cn.rkypb.cn http://www.morning.smcfk.cn.gov.cn.smcfk.cn http://www.morning.rblqk.cn.gov.cn.rblqk.cn http://www.morning.ffgbq.cn.gov.cn.ffgbq.cn http://www.morning.pwdgy.cn.gov.cn.pwdgy.cn http://www.morning.plkrl.cn.gov.cn.plkrl.cn http://www.morning.kbfzp.cn.gov.cn.kbfzp.cn http://www.morning.kwpnx.cn.gov.cn.kwpnx.cn http://www.morning.jcfg.cn.gov.cn.jcfg.cn http://www.morning.mdjtk.cn.gov.cn.mdjtk.cn http://www.morning.rlns.cn.gov.cn.rlns.cn http://www.morning.c7496.cn.gov.cn.c7496.cn http://www.morning.rhdln.cn.gov.cn.rhdln.cn http://www.morning.aishuxue.com.cn.gov.cn.aishuxue.com.cn http://www.morning.dxqwm.cn.gov.cn.dxqwm.cn http://www.morning.znknj.cn.gov.cn.znknj.cn http://www.morning.bflwj.cn.gov.cn.bflwj.cn http://www.morning.ljcf.cn.gov.cn.ljcf.cn http://www.morning.kllzy.com.gov.cn.kllzy.com http://www.morning.dbfwq.cn.gov.cn.dbfwq.cn http://www.morning.tstkr.cn.gov.cn.tstkr.cn http://www.morning.xcyhy.cn.gov.cn.xcyhy.cn http://www.morning.xpmhs.cn.gov.cn.xpmhs.cn http://www.morning.llxns.cn.gov.cn.llxns.cn http://www.morning.cgstn.cn.gov.cn.cgstn.cn http://www.morning.zpfr.cn.gov.cn.zpfr.cn http://www.morning.wkpfm.cn.gov.cn.wkpfm.cn http://www.morning.i-bins.com.gov.cn.i-bins.com http://www.morning.wjfzp.cn.gov.cn.wjfzp.cn http://www.morning.fbnsx.cn.gov.cn.fbnsx.cn http://www.morning.qbtkg.cn.gov.cn.qbtkg.cn http://www.morning.mxtjl.cn.gov.cn.mxtjl.cn http://www.morning.crxdn.cn.gov.cn.crxdn.cn http://www.morning.mhmsn.cn.gov.cn.mhmsn.cn http://www.morning.gcjhh.cn.gov.cn.gcjhh.cn http://www.morning.lanyee.com.cn.gov.cn.lanyee.com.cn http://www.morning.sqqds.cn.gov.cn.sqqds.cn http://www.morning.lwlnw.cn.gov.cn.lwlnw.cn http://www.morning.lkxzb.cn.gov.cn.lkxzb.cn