海外访问国内网站 dns,全国设计网站建设,别的网站做相关链接怎么做,一键优化目录
一.kubectl 命令行管理K8S
陈述式资源管理方式#xff08;可理解成使用一条kubectl命令及其参数选项来实现资源对象的管理操作#xff09;
service的4的基本类型#xff1a;
service的端口
应用发布策略#xff1a;
声明式资源管理方式#xff08;可理解成使用…目录
一.kubectl 命令行管理K8S
陈述式资源管理方式可理解成使用一条kubectl命令及其参数选项来实现资源对象的管理操作
service的4的基本类型
service的端口
应用发布策略
声明式资源管理方式可理解成使用yaml配置文件里定义的配置来实现资源对象的管理操作
K8S资源配置清单文件字段的值类型
如何获取K8S资源配置清单文件模板yaml配置文件 一.kubectl 命令行管理K8S
陈述式资源管理方式可理解成使用一条kubectl命令及其参数选项来实现资源对象的管理操作
kubectl get -n 命名空间 资源类型|all [资源名称] [-o wide|yaml|json] [--show-labels] [-l 标签keyvalue] all包含Pod控制器、Pod、Service资源 kubectl create -n 命名空间 资源类型 资源名称 [选项] deployment --image容器镜像 --port容器端口 --replicasPod副本数 kubectl run Pod资源名称 --image容器镜像 --port容器端口
kubectl delete -n 命名空间 资源类型 资源名称|--all [--force --grace-period0] 立即终止Pod容器并强制删除默认等待30s kubectl describe -n 命名空间 资源类型 资源名称
kubectl exec -n 命名空间 -it Pod资源名称 [-c 容器名称] -- sh|bash|Linux命令
kubectl logs -n 命名空间 Pod资源名称 [-c 容器名称] [-f] [-p] 查看Pod容器重启前的日志 kubectl scale -n 命名空间 Pod控制器资源类型 资源名称 --replicasPod副本数 deployment|statefulset kubectl expose -n 命名空间 Pod控制器资源类型 资源名称 --name svc资源名称 --type svc类型 --port clusterIP的端口 --target-port 容器端口 deployment kubectl create service service类型 service资源名称 --tcpclusterIP的端口:容器端口
kubectl set image Pod控制器资源类型 资源名称 容器名容器镜像 deployment|daemonset kubectl set selector 资源类型 资源名称 标签keyvalue service kubectl rollout history Pod控制器资源类型 资源名称 deployment|daemonset|statefulset kubectl rollout undo Pod控制器资源类型 资源名称 [--to-revisionN] 指定版本号回滚 kubectl rollout status Pod控制器资源类型 资源名称
service的4的基本类型 ClusterIP默认的service资源的类型可提供clusterIP:port供K8S集群内部访问service及其关联的Pod NodePort会在每个node节点上都开启相同的端口K8S集群外部或内部的用户都可以通过nodeIp:nodePort来访问service及其关联的Pod LoadBalancer使用云负载设备和service作映射外部用户通过访问云负载设备即可将请求转发到K8S的node节点再通过nodeIP:nodePort来访问service及其关联的Pod ExternalName相当于给一个外部地址域名或IP作别名K8S集群内的Pod可以通过这个service访问相关的外部服务 service 是通过 标签选择器 关联Pod的标签 来自动发现Pod的端点podIP:containerPort
service的端口 portservice的clusterIP使用的端口只能在K8S集群内部被访问到。K8S集群内部的客户端可以通过clusterIP:port来访问service
nodePortNodePort类型的service使用的端口会在每个node节点上都开启相同的端口也就是nodeIP使用的端口默认范围为30000~32767。K8S集群外部或内部的客户端都可以通过nodeIp:nodePort来访问service
targetPortPod容器使用的端口。service会将发送给port或nodePort的请求转发给Pod容器配置要与containerPort一致
Pod容器的端口 containerPort创建Pod时所指定的容器端口
查看service关联的Pod端口 kubectl describe svc 资源名称 kubectl get endpoints [svc资源名称] kubectl describe endpoints 资源名称
deployment控制器更新Pod的方式是 RollingUpdate滚动更新 RollingUpdateStrategy滚动更新策略: 25% max unavailable, 25% max surge
Replicas: 3 desired 控制器的期望副本数 25% max surge 滚动更新时允许创建的最大副本数或比例向上取整 25% max unavailable 滚动更新时允许销毁的最大副本数或比例向下取整
假设期望副本数是3那么滚动更新时能够创建的副本数是 3 * 25% 0.75 再向上取整为 1能够销毁的副本数向下取整为 0 假设期望副本数是1010 * 25% 2.5 向上取整为 3 向上取整为 2 整个滚动更新过程中Pod副本数始终处在 10-2 Pod副本数 103之间
应用发布策略
蓝绿发布两套环境交替升级旧版本保留一定时间便于回滚优点用户无感知部署和回滚速度较快缺点浪费资源成本高 滚动发布按批次停止老版本实例更新启动新版本实例。优点节约资源缺点部署和回滚速度较慢 灰度发布/金丝雀发布根据比例将老版本升级例如80%用户访问是老版本20%用户访问是新版。优点保证整体系统稳定性如果出问题影响范围很小缺点自动化要求高 kubectl set image deployment 资源名称 容器名容器镜像 kubectl rollout pause deployment 资源名称 kubectl rollout resume deployment 资源名称
声明式资源管理方式可理解成使用yaml配置文件里定义的配置来实现资源对象的管理操作
kubectl get -n 命名空间 资源类型 资源名称 -o yaml XXX.yaml #获取资源配置清单 kubectl apply|create -f XXX.yaml #创建|更新资源 kubectl delete -f XXX.yaml #删除资源 kubectl edit -n 命名空间 资源类型 资源名称 #在线修改资源配置
对于不支持在线修改的字段只能通过离线修改的方式更新资源 kubectl delete -f XXX.yaml kubectl apply -f XXX.yaml
kubectl explain 资源类型.一级字段.二级字段.... #获取资源配置字段的解释
K8S资源配置清单文件字段的值类型
字段: integer 数字 字段: 数值 字段: string 字符串 字段: 字符串 字段: 字符串 字段: 字符串 字段: boolean 布尔值 字段: true|false
字段: Object 对象值可能是一层或多层子字段 字段: 二级字段: 三级字段
字段: []Object 列表类型的对象 字段: - 二级字段: 三级字段 - 二级字段:
字段: map[string]string 映射值可能是一个或多个键值对类型的值 字段: key1: value1 key2: value2 key3: value3
如何获取K8S资源配置清单文件模板yaml配置文件
1.手写yaml配置文件可以根据 kubectl explain 命令获取字段信息 2.查看现有的资源配置获取kubectl get -n 命名空间 资源类型 资源名称 -o yaml XXX.yaml kubectl edit -n 命名空间 资源类型 资源名称 然后手动复制资源配置粘贴到yaml文件中 3.无中生有模拟运行kubectl陈述式创建资源的命令获取 kubectl create|run|expose 选项 --dry-runclient -o yaml XXX.yaml 4.复制K8S官网文档的资源配置案例