注册网站账号违法吗,财务公司协会,做网站后端,it运维外包服务方案1、资源管理
#xff08;1#xff09;陈述式资源管理#xff08;常用——查、增#xff09;
使用kubectl工具进行命令行管理
①特点#xff1a;对资源的增删查比较方便#xff0c;对改不友好
②优点#xff1a;90%以上的场景都可以满足
③缺点#xff1a;命令冗长…1、资源管理
1陈述式资源管理常用——查、增
使用kubectl工具进行命令行管理
①特点对资源的增删查比较方便对改不友好
②优点90%以上的场景都可以满足
③缺点命令冗长、复杂
2声明式资源管理常用——部署资源
使用yml文件进行声明式资源管理
3GUI图形化资源管理
2、kubectl命令详解
1查看
kubectl命令大全网站http://docs.kubernetes.org.cn/683.html 查看版本信息 kubectl version 查看所有api的资源对象 kubectl api-resources 查看k8s的集群信息 kubectl cluster-info 自动补齐命令 基本信息查看 查看master节点的状态 kubectl get cs 查看默认命名空间内的pod信息 kubectl get pod 查看当前集群所有命名空间 kubectl get namespaces 查看指定命名空间里的pod kubectl get pod -n 命名空间名称 查看默认命名空间内pod的详细信息 kubectl get pod -o wide 查看指定命名空间内的pod详细信息 kubectl get pod -o wide -n 命名空间名称 查看node节点信息和状态 kubectl get node 查看node节点的详细信息 kubectl get node -o wide 查看已经部署好的pod的详细信息 kubectl describe pod pod名称 查看指定命名空间里的pod的详细情况 kubectl describe pod pod名称 -n 命名空间名称 动态查看pod日志 kubectl logs -f pod名称 动态查看指定命名空间的pod日志 kubectl logs -f pod名称 -n 命名空间名称 创建命名空间 kubectl create ns 名称 删除命名空间 kubectl delete ns 名称 删除pod没有真正删除 kubectl delete pod pod名称 生成一个新的pod
2部署
1deployment部署pod的两种方式
①陈述式部署命令行
②声明式部署yml
2特点
①滚动更新不是一次性把所有pod全部部署而是依次部署主要在pod更新时使用逐步引入新的pod逐步减少旧的pod
②自我修复若有pod节点发生故障deployment会自动启动新的pod进行代替
③回滚若更新有问题deployment会提供还原点可以手动还原到未更新前的状态
④扩容和缩容deployment可以随时调整pod的数量以适应流量的变化
注必须基于deployment创建的服务才能实现以上功能绝大多数都使用deployment创建 查看默认命名空间里基于deployment创建的pod kubectl get deployments.apps 查看指定命名空间里deployment创建的pod kubectl get deployments.apps -n kube-system 查看默认空间里daemonsets创建的pod kubectl get daemonsets.apps daemonset不能在命令行创建只能用yml文件来创建pod后台运行创建在每个节点上创建一个方式相同、版本相同的容器运行的pod。一般是依赖环境和重要组件不会对这些资源进行操作 创建pod 同一个命名空间pod不能重名 kubectl create deployment pod名称 --imagenginx (--replicas3) 注若是基于deployment方式创建的pod 或基于daemonset方式创建的pod均是由控制器创建的pod使用delete删除pod无法删除相当于重启pod。先删除控制器才能删除pod但删除控制器所有基于这个控制器的pod全部被删除慎用 kubectl delete deployments.apps nginx kubectl delete deployments.apps nginx 不是基于控制器创建的pod 可以直接删除很少用 kubectl run pod名称 --imagenginx 远程进入节点容器 kubectl exec -it 容器名称 bash 注docker的exec只能在本机使用kubectl的exec可以跨主机进入容器 指定命名空间进入容器 kubectl exec -it 容器名称 bash -n 命名空间名称 快速结束容器 用于结束卡在销毁状态的pod kubectl delete pod nginx-6799fc88d8-j4hxc --force --grace-period0 --grace-period表示过度的存活期默认30秒可以让pod优雅的结束容器内的进程然后退出pod --grace-period0表示立刻退出 对deployment创建的pod扩、缩容 仅限于deployment控制器 kubectl scale deployment nginx1 --replicas3 扩容 缩容 发布服务的service 查看当前命名空间的service kubectl get svc 删除service kubectl delete svc nginx service的类型 ①ClusterIP创建service的默认类型提供一个集群内部的虚拟IP地址通过这个虚拟IP可以直接访问pod的资源仅限于pod内部无法对外提供访问 ②NodePort常用在每个node节点上都开放一个相同的端口外部可以通过node的本机IP端口访问pod资源这是集群外部访问service资源的一种方式四层代理基于deployment创建的pod可以使用这种方式 nodeip:nodeportnodeport可随机指派也可指定范围30000~32767 对外暴露service端口 kubectl expose deployment nginx --port80 --target-port80 --namenginx-service --typeNodePort --port80 service集群的端口可随意指定 --target-port80 pod内部容器的端口服务固定的端口号 10.96.26.83集群内部的IP地址外部不可以访问 80对应的是内部的service 端口 30934和内部的service的80端口做映射 pod内部的容器的端口是固定的--port是service和容器映射端口可以随意指定 --target-port是容器内部的服务端口 修改service端口 kubectl edit svc service名称 ③LoadBalance若service类型设定为LoadBalance映射地址云平台提供LoadBalance的地址需要付费这种用法仅用于公有云服务供应商在云台上设置的service的场景外部访问实现负载均衡 创建service指定类型为LoadBalance ④ExternalName常用DNS映射给service分配一个域名通过域名来访问后端pod的资源ExternalName的service类型不能提供负载均衡必须设置一个LoadBalance地址才能实现负载均衡 注企业内部最常见的是NodePort和ExternalName结合一起使用
3更新、回滚、发布方式
项目的生命周期创建——发布——更新——回滚——删除 更新服务版本 kubectl set image deployment nginx nginxnginx:1.22.0 查看还原点 kubectl rollout history deployment nginx 数字越大就是最近的一次的操作 设置还原点时加上标识便于识别还原点 kubectl set image deployment nginx nginxnginx:1.15 --record 回滚 kubectl rollout undo deployment nginx --to-revision1 查看还原状态 ①kubectl rollout status deployment nginx ②kubectl get pod -w动态查看 查看默认命名空间集群内的所有信息 kubectl get all 看默认命名空间集群内的所有详细信息 kubectl get all -o wide 查看指定命名空间集群内的所有详细信息 kubectl get all -o wide -n 命名空间名称