当前位置: 首页 > news >正文

成都企业网站设计生物信息网站建设

成都企业网站设计,生物信息网站建设,爱ppt模板官网,海洋网站建设性价比高1 背景 运维新同学在预发环境操作删除pod的时候#xff0c;不知道什么原因把kubectl delete pod命令敲成了kubectl delete ns pre把预发环境删了#xff0c;几十个模块#xff0c;将近一个小时才恢复。幸亏是测试环境啊#xff0c;如果是生产可以可以跑路了。 2 解决方案…1 背景 运维新同学在预发环境操作删除pod的时候不知道什么原因把kubectl delete pod命令敲成了kubectl delete ns pre把预发环境删了几十个模块将近一个小时才恢复。幸亏是测试环境啊如果是生产可以可以跑路了。 2 解决方案 通过kubectl操作k8s资源把数据发给apiserver在apiserver把数据持久化到etcd之前我们可以通过MutatingWebhook修改、拦截相关资源的变更。 所以我们可以通过实现MutatingWebhook机制控制高危的操作。 方案一自己实现MutatingWebhook保护k8s资源不被删除这个具体实现大家参考作者之前写的文章实现。 方案二阿里开源的OpenKruise已经帮我们实现相关资源的删除保护。他的实现原理也是基于webhook实现。 下面我们重点实践基于OpenKruise资源删除保护。 2.1 OpenKruise 删除保护实践 2.1.1 OpenKruise架构 API所有 OpenKruise 的功能都是通过 Kubernetes API 来提供 ManagerKruise-manager 是一个运行 controller 和 webhook 中心组件它通过 Deployment 部署在 kruise-system 命名空间中。资源保护主要是kruise-controller-manager的实现的webhook功能。 DaemonDaemonSet 部署到每个 Node 节点上提供镜像预热、容器重启等功能。 2.1.2 k8s集群在线部署OpenKruise 建议采用 helm v3.5 来安装 Kruisehelm 是一个简单的命令行工具可以从 这里 获取。 # Firstly add openkruise charts repository if you havent do this. $ helm repo add openkruise https://openkruise.github.io/charts/# [Optional] $ helm repo update# Install the latest version. $ helm install kruise openkruise/kruise --version 1.5.0 通过上述办法可以在线部署OpenKruise。 大部分同学的线上环境是没有外网的下面我们看看离线部署方式。 2.1.3 k8s集群离线部署OpenKruise 下载最新稳定版OpenKruise作者没有大家helm仓库这里使用gitlab管理kruise # Firstly add openkruise charts repository if you havent do this. $ helm repo add openkruise https://openkruise.github.io/charts/# [Optional] $ helm repo update# download the latest version. $ helm pull openkruise/kruise --version 1.5.0在当前目录下有kruise-1.5.0.tgz解压缩并修改镜像地址为你仓库地址 tar kruise-1.5.0.tgz cd kruisevim values.yaml image:repository: yourharbor.domain.com/openkruise/kruise-managertag: v1.5.0注意作者这里kruise 上传到gitlab管理如果你有helm仓库可以放到自己的helm仓库。 下载镜像并上传自己的harbor仓库 docker pull openkruise/kruise-manager:v1.5.0docker tag openkruise/kruise-manager:v1.5.0 yourharbor.domain.com/openkruise/kruise-manager:v1.5.0 docker push yourharbor.domain.com/openkruise/kruise-manager:v1.5.0 在master节点上部署OpenKruise git clone yourgit.domain.com/kruise.githelm install kruise kruise/ 至此离线版安装OpenKruise就完成了。 部署完后效果如下有kruise-controller-manager和kruise-daemon kubectl  get pod -n kruise-system NAME                                         READY   STATUS    RESTARTS   AGE kruise-controller-manager-6d7bfd75wf-4s6jk   1/1     Running   0          4h23m kruise-controller-manager-6d7bfd75wf-dstl5   1/1     Running   0          6h21m kruise-daemon-tnfd8                          1/1     Running   0          6h21m 2.2 保护的资源类型 2.2.1 保护的资源都有哪些 目前支持的资源如下 KindGroupVersionCascading judgementNamespacecorev1namespaceCustomResourceDefinitionapiextensions.k8s.iov1beta1, v1CRD下是否还有存量的 CRDeploymentappsv1replicas 是否为 0StatefulSetappsv1replicas 是否为 0ReplicaSetappsv1replicas 是否为 0CloneSetapps.kruise.iov1alpha1replicas 是否为 0StatefulSetapps.kruise.iov1alpha1, v1beta1replicas 是否为 0UnitedDeploymentapps.kruise.iov1alpha1replicas 是否为 0 2.2.2 怎么开启资源保护 在以上资源上加上标签policy.kruise.io/delete-protectionAlways 或 policy.kruise.io/delete-protectionCascading即实现了对相应资源的的保护. Always: 这个对象禁止被删除除非上述 label 被去掉 Cascading: 这个对象如果还有可用的下属资源则禁止被删除 2.2.3 案例实战 2.2.3.1 Always(对象禁止被删除) test namespace 打上label policy.kruise.io/delete-protectionCascading后不管test namespace下是否有资源都不允许删除test除非把标签去掉。 kubectl  label ns nohost policy.kruise.io/delete-protectionAlways kubectl  delete ns testError from server: admission webhook vnamespace.kb.io denied the req 2.2.4 Cascading(当删除对象还有其他资源是不让删) test namespace下还有一个pod所以当设置label是policy.kruise.io/delete-protectionCascading删除test 不允许删除这样就对test namespace 起到保护的作用。 kubect label ns test policy.kruise.io/delete-protectionCascading --overwrite kubectl  delete ns testError from server: admission webhook vnamespace.kb.io denied the request: forbidden by ResourcesProtectionDeletion for policy.kruise.io/delete-protectionCascading and active pods 10 如果把test namespace 下的所有pod都删掉test 可以被delete掉。 2.3 OpenKruise 资源保护缺点 支持的资源有限通过 webhook configuration 的 objectSelector 字段 Kruise webhook 只会拦截处理带有 policy.kruise.io/delete-protection 标签的 Namespace/CustomResourceDefinition/Deployment/StatefulSet/ReplicaSet 资源。
http://www.yutouwan.com/news/80253/

相关文章:

  • 福建省建设系统网站站酷网怎么赚钱
  • scatter网站开发深圳财务小公司网站
  • 长春网站设计团队互动营销经典案例
  • 公司网站建设有哪些郑州网站制作公司哪家好
  • 网站开发范围佛山网站建设企业推荐
  • 网站备案更换深圳电器公司招聘信息
  • 福建省亿力电力建设有限公司网站上海徐汇区网站建设
  • 国外做化工网站今天上海最新新闻事件
  • 做彩网站网站标题优化 英文
  • 网站建设保定登陆Wordpress手机app
  • 网站建设实训课游戏网站建设项目规划书案例
  • 网站建设带后台怎样做自己的网页
  • 广州市网站网站前端程序制作开发
  • 中国亚马逊跨境电商江苏seo团队
  • 网站风格介绍怎么一个网站做的竞价
  • 怎样用FW做网站的首页做视频网站要申请什么许可证
  • 网站从新建设影响收录么男的和女的做那种事情网站
  • 佛山市门户网站建设公司京东网上商城官网下载
  • 景区网站建设的重要性wordpress控件图标
  • 自适应网站模板公司网址查询域名
  • 盐城北京网站建设新品发布会主题大全
  • 网站怎么做充值系统下载wordpress页面布局
  • 帝国网站免费模板品牌网站部门建设方案
  • 潍坊手机网站建设公司深圳网站建设方案外包
  • 文章类网站源码手机网页版登录入口
  • 湖南网站推广建设公司北京专业seo
  • 2019年建设什么网站好给wordpress公告
  • 莆田网站建设建站系统网页界面图
  • 一级做c爱片的网站新东方考研培训机构官网
  • 天津河东区网站建设wordpress同步发帖