上海家装设计网站,关于加强企业门户网站建设通知,百度网页版浏览器,部门网站建设目的#xff08;一#xff09;k8s的陈述式资源管理
1、命令行#xff1a;kubectl命令行工具——用于一般的资源管理
#xff08;1#xff09;优点#xff1a;90%以上ce场景都可以满足
#xff08;2#xff09;特点#xff1a;对资源的增、删、查比较方便#xff0c;对…一k8s的陈述式资源管理
1、命令行kubectl命令行工具——用于一般的资源管理
1优点90%以上ce场景都可以满足
2特点对资源的增、删、查比较方便对改不是很友好
3缺点命令比较冗长复杂难记
2、声明式k8s当中的yaml文件来实现资源管理——用于配置部署服务
3、GUI图形化工具的管理
二kubectl命令的详解查看、部署、查看pod的情况详细信息和日志发布和回滚 kubectl命令的详解 kubectl命令行大全http://docs.kubernetes.org.cn/683.html 先声明动作create、delete、get、describe 对象ns、pod、service 对象的名称hyde nginx 查看 查看版本 kubectl version 查看所有api的资源对象的名称 kubectl api-resources 查看k8s的集群信息 kubectl cluster-info 基本信息查看 查看master节点的状态 kubectl get cs 查看默认命令空间内的pod信息 kubectl get pod/pods 查看当前集群的所有命名空间 kubectl get ns 查看指定命名空间内的pod信息 kubectl get pod -n kube-system命名空间的名称 查看默认命名空间内pod的详细信息IP、节点信息 kubectl get pod -o wide 查看指定命名空间内pod的详细信息 kubectl get pod -o wide -n kube-system 查看node节点的信息和状态 kubectl get nodes/node 查看node节点的详细信息 kubectl get node -o wide 查看已经部署好的pod的详细信息 kubectl describe pod nginx-6799fc88d8-89g2npod的名称 查看指定命名空间内pod的详细信息 kubectl describe pod -n kube-system etcd-master 查看pod的日志 kubectl logs nginx-6799fc88d8-89g2n 动态查看pod的日志 kubectl logs -f nginx-6799fc88d8-89g2n 查看指定命名空间内的日志 kubectl logs -n kube-system etcd-master 创建命名空间 kubectl create ns hyde 删除命名空间 kubectl delete ns hyde 删除pod kubectl delete pod nginx-6799fc88d8-89g2npod名称——实际上并没有删除 deployment的部署pod deployment部署的方式陈述式部署命令行、声明式部署yml文件 deployment部署的特点 ①滚动更新不是一次性的把所有pod全部部署而是一个一个来pod更新时使用逐步的引入新的pod逐步的减少旧的pod ②自我修复如果有pod节点发生故障deployment会自动启动新的pod来进行代替如果更新有问题deployment会提供还原点可以手动还原到未更新前的状态 ③扩容和缩容deployment可以随时调整pod的数量以适应流量的变化 * 上述的功能必须是基于deployment创建的服务才可以大多数的pod都是使用deployment创建的 * 基于deployment创建的pod或者是daemonset方式创建的pod是由控制器创建的pod使用delete删除pod是删除不掉相当于重启pod 查看命名空间内通过deployment创建的pod kubectl get deployments 查看指定命名空间内通过deployment创建的pod kubectl get deployments -n kube-system 查看命名空间内通过daemonset创建的pod kubectl get daemonsets 查看指定命名空间内通过daemonset创建的pod kubectl get daemonsets -n kube-system * daemonset部署不能通过命令行创建只能在yml文件中定义这种创建方式。 * daemonset后台运行创建在每个节点上都创建一个相同方式的相同版本的容器运行的pod一般都是依赖环境和重要组件一般也不会对这些资源进行操作 创建deployment副本 kubectl create deployment nginx-dn --imagenginx 在指定命名空间创建deployment kubectl create deployment nginx-dn --imagenginx --replicas3 -n hyde 删除pod一旦删除deployment基于deployment创建的pod都会被删除——慎用 kubectl delete deployments.apps nginx-dn -n hyde 不是基于控制器deployment创建的pod用delete可以直接删除 kubectl run nginx2 --imagenginx很少使用 kubectl delete pod nginx2 远程进入节点容器 kubectl exec -it nginx-6799fc88d8-blx25 bash docker的exec只能在本机内部使用不能跨主机kubectl的exec可以跨主机进入容器 指定命名空间进入容器 kubectl exec -it nginx-6799fc88d8-4zqld bash -n hyde kubectl delete pod nginx1-6f54f4bd96-gmkdb --force --grace-period0 主要用于结束卡在Terminating销毁状态的pod grace-period 表示过度的存活期默认是30秒可以让pod优雅的结束容器内的进程然后退出pod0表示立刻停止pod必须要force 对基于deployment创建的pod进行扩容和缩容 扩容 kubectl scale deployment nginx-dn --replicas3 缩容 kubectl scale deployment nginx-dn --replicas1 发布服务的service service的类型生产中用ExternalName做域名映射NodePort对外提供访问 ClusterIP 创建service的默认类型提供一个集群内部的虚拟IP地址这是service的默认类型通过这个虚拟IP可以直接访问pod 的资源无法对外提供访问 NodePort 会在每一个node节点上都开放一个相同的端口外部可以通过node的本机IP端口访问pod资源集群外部访问service的一种方式四层代理方式访问方式是nodeipnodeportnodeport可以随机指派也可以指定范围30000-32767 LoadBalancer 如果service的类型设定为LoadBalancer映射地址云平台提供LoadBalancer的地址这种用法仅用于公有云服务供应商在云平台上设置的service的场景外部来访问实现负载均衡LoadBalancer的地址是要付费的。创建好了service指定类型为LoadBalancer会给你提供一个地址来代理pod内部的IP地址 ExternalName DNS映射给service分配一个域名通过域名来访问后端的pod资源ExternalName的service类型不能提供负载均衡必须要设置一个LoadBalancer的地址才能实现 查看集群中的service kubectl get svc 删除service kubectl delete svc nginx 查看指定命名空间的service kubectl get svc -n kube-system ①创建podkubectl create deployment nginx --imagenginx:1.10 --replicas3 ②基于deployment创建service kubectl expose deployment nginx --port80 --target-port80 --namenginx-service --typeNodePort * --port80service集群内部的端口是service和容器映射的端口任意 * --target-port80pod内部容器的端口 NodePort 10.96.112.70集群内部的IP地址外部可不易访问这个IP地址 80:32168/TCP * 80对应的内部的service的端口 * 32168和内部的service的80端口做映射本机的端口 ③实现负载均衡 ④修改service中nodeport的地址 更新和回滚以及发布的方式 项目的生命周期创建——发布——更新——回滚——删除 更新 kubectl set image deployment nginx nginxnginx:1.20 curl -I 20.0.0.71:31000 回滚 ①查看回滚点kubectl rollout history deployment nginx ②记录回滚点变更kubectl set image deployment nginx nginx:1.15 --record ③回滚kubectl rollout undo deployment nginx --to-revision2 查看回滚的状态 ①kubectl rollout status deployment nginx ②kubectl get pod -w动态查看pod的更新情况 查看集群内部的所有信息 kubectl get all