手机网站建设 的作用,如何撰写一个网站规划建设方案,下载新版app免费下载安装,ai简历在线制作命令行: kubectl命令行工具优点: 90%以上的场景都可以满足 对资源的增#xff0c;删#xff0c;查比较方便#xff0c;对改不是很友好缺点:命令比较冗长#xff0c;复杂难记 声明方式#xff1a;k8s当中的yaml文件实现资源管理----声明式GUI:图形化工具的管理。
查看k8s的…命令行: kubectl命令行工具优点: 90%以上的场景都可以满足 对资源的增删查比较方便对改不是很友好缺点:命令比较冗长复杂难记 声明方式k8s当中的yaml文件实现资源管理----声明式GUI:图形化工具的管理。
查看k8s的版本
kubectl version 查看k8s的集群信息
kubectl cluster-info
查看所有api的资源对象的名称。
kubectl api-resources 查看当前master的节点状态
kubectl get cs 查看默认命名空间内的的pod的信息
kubectl get pod 查看当前集群所有的命名空间
kubectl get ns 要查看指定命名空间内的pod需要加-n 命名空间的名称
kubectl get pod -n kube-system 查看默认命名空间内pod的详细信息
kubectl get pod -o wide 查看指定命名空间的详细信息
kubectl get pod -o wide -n kube-system 查询节点的信息和状态
kubectl get node 查看node节点的详细信息
kubectl get node -o wide 查看已经部署好的pod详细信息
kubectl get pod
kubectl describe pod nginx-86cfbb5b5c-qzhf6 创建命名空间
kubectl create ns guoqi 删除命名空间
kubectl delete ns guoqi 删除pod中的容器
不是真正的删除是重启容器
kubectl delete pod nginx-6799fc88d8-fb64xpod名称 立刻停止pod
主要是用于结束卡在销毁状态的pod
kubectl delete pod nginx-6799fc88d8-7p2t9 --force --grace-period0
#--grace-period过度的存活期。默认是30秒。可以让pod优雅的结束容器内的进程然后退出pod
#0表示立即停止pod。必须要force实现。 如果是基于deployment方式创建的pod或者是daemonset方式创建的pod是由控制器创建的pod,使用delete删除pod是不删不掉的相当于重启pod.
要删除基于控制器创建的pod一旦删除deployment基于这个deployment创建的pod会被删除。 deployment的部署pod
陈述式部署:命令行 声明式: yaml文件部署
下述的功能必须是基于deployment创建的服务才可以。
滚动更新不是一次性的把所有pod全部部署而是一个个来。pod的更新时使用逐步的引入新的pod.逐步的减少旧的pod自我修复如果有pod节点发生故障deployment会自动启动新的pod来进行代替回滚如果更新有问题deployment会提供还原点可以手动还原到未更新的状态。扩容和缩容deployment可以随时调整pod的数量以适应流量的变化。
查看默认命名空间
kubectl get deployments 查看指定命名空间
kubectl get deployments.apps -n kube-system daemonset
daemonset:不能通过命令行创建只能通过yaml的创建daemonset后台运行创建只能在每个节点创建一个相同方式的相同版本的容器运行的pod一般都是依赖环境和重要组件一般也不会去对这些进行操作。
指定副本数
kubectl create deployment nginx --imagenginx --replicas3 指定deployment命名空间
kubectl create ns liu
kubectl create deployment nginx-liu --imagenginx --replicas3 -n liu
kubectl get pod
kubectl get pod -n liu 基于run创建的pod
不是基于控制器创建会被直接删除。
kubectl run --imagenginx liu
kubectl delete pod liu 在master节点进入node的容器
进入默认模式的容器
kubectl exec -it nginx-86cfbb5b5c-7cq5c bash
#docker的exec只能在本机内部使用不能跨主机。kubectl的exec可以跨主机进入容器 进入指定节点的容器
kubectl exec -it nginx-liu-647bbc5b77-7b77m bash -n liu
#远程进入指定命名空间内的pod节点容器 对deployment创建的pod进行扩缩容
扩容
kubectl scale deployment -n liu nginx-liu --replicas2 缩容
kubectl scale deployment -n liu nginx-liu --replicas1 server的类型
ClusterIP
ClusterIPserver时默认类型提供一个集群内部的虚拟ip地址这是service的默认类型。通过这个虚拟ip可以直接访问pod资源无法对外提供访问。
NodePort
NodePort会在每个node节点上都开放一个相同的端口外部可通过node的本机ip端口防护pod资源。集群外部访问service资源的一种方式四层代理代理。
nodeip:nodeport
会随机指派也可以指定。
端口会从30000-32767的固定范围随机指派一个端口或者可以指定一个这个范围内的端口。
基于deployment创建的pod可以使用的pod可以使用方式
kubectl expose deployment nginx --port80 --target-port80 --namenginx-service --typeNodePort
--port80 service集群的端口
--target-port80 pod内部容器的端口10.96.79.172 集群内部的ip地址外部是不可以访问这个ip地址的 80: 对应的是内部的service的端口 30859: 和内部的service的80端口做映射30000-32767 端口映射关系 修改本机
kubectl edit svc nginx-service LoadBalancer
如果service的类型设定为LoqdBalancer映射地址(云平台提供LoadBalancer的地址)这种用法仅限于公有云服务供应商在云平台上设置的service的场景外部来访问实现外来访问实现负载均衡。LoadBalancer这个地址是要付费的。
创建service指定类型为LoadBalancer会给你提供一个地址来带代理pod内部的ip地址。
kubectl expose deployment nginx1 --port8080 --target-port80 --namenginx2-server --typeLoadBalancer ExternalName
ExternalNameDNS映射给service分配一个域名来访问后端pod资源。ExternalName的service类型不能提供负载均衡必须要设置一个LoadBalancer的地址才可以实现。
kubectl edit svc nginx1-server
#进入service内直接修改 vim /etc/hosts 需要在hosts里做映射
四个类型我都知道
默认类型只对内访问
NodePort类型我配置过可以对外访问
LoadBalancer类型需要花钱
ExternalName类型需要配置域名 更新和回滚以及发布的方式
项目的生命周期: 创建------------发布------------更新----------回滚------------删除
滚动更新
无标志更新
kubectl set image deployment nginx nginxnginx:1.22.0
#滚动更新服务的版本 增加回滚点标识
先把新的pod拉起来在把旧的版本删掉
kubectl set image deployment nginx nginxnginx:1.22.0 --record 查看更新历史操作
kubectl rollout history deployment nginx
#查看回滚点信息
#数字的大小决定了距离上次操作的远近。数字越大就是最近的一次操作 回滚点
kubectl rollout undo deployment nginx --to-revision1 动态查看更新动态
kubectl get pod -w 静态查看
kubectl rollout status deployment nginx