周一见 | K8s 有哪些安全谣言?本周 K8s 开源项目推荐,10x 工程师是新的 996
新闻
作者:才云 Caicloud
译者:才云 Caicloud
2019-07-15 18:17

Kubernetes 资讯

1. K8s 安全谣言辟谣 

尽管 Kubernetes 确实存在一些未解决的安全问题,但随着它和容器在生产环境中的普及应用,其整体安全性已经得到行业证实。在社区关于 Kubernetes 各种安全问题的讨论中,我们经常会看到一些围绕身份管理的安全谣言,这些谣言无疑会误导开发者,需要时刻警惕、懂得分辨。

谣言一:Kubernetes 仪表板是一种安全风险

不,这种说法不准确,问题不在于仪表板,而是用户部署它的方式。综合仪表板安全事故,通常它们产生的原因是开发者为仪表板分配了服务帐户特权或集群管理员访问权限,没有锁定对其自身仪表板的访问权限。为了确保安全,以下是一些需要遵循的基本规则:

  • 设置仪表板以使用零权限服务帐户;
  • 使用可以将用户的 JWT 注入每个请求的身份验证反向代理;
  • 配置仪表板以将 TLS 用于内部和外部通信。

谣言二:Pod 安全策略很难

事实上,Pod 安全策略并不难,只要我们找到了优秀的公共托管容器。在企业中,绝大多数 Pod 都在运行应用程序,除非你是在系统级别做某事,常规情况下你的 Pod 不需要特权。请遵循容器中的一些简单规则:

  • 安装软件包后,切换到非特权用户;
  • 除非使用 emptyVolume 挂载进行设置,否则不要将数据写入你的 Pod。

以上规则可以解决 95% 的 Pod 安全策略问题,自动化是你的好帮手,不要临时创建名称空间和策略,遵循一致性。

谣言三:我可以使用服务帐户进行用户访问

不要这么做,你应该遵循以下规则:

  • 服务账户不是为人创建的,而是为自动化任务构建的;
  • 令牌是长期持有的令牌,这意味如果它被存储在 Git 仓库中或者在调试消息中记录它,它可能被滥用;
  • K8s 中的 ServiceAccount 对象不能是组的成员,这使得在 RBAC 中管理授权变得更加困难。

谣言四:JWT 令牌可以有长期使用寿命

你可以通过 kubectl 处理 OpenID 连接刷新,所以长使用寿命的 JWT 没有理由存在

  • JWT 是 Bearer Token,这意味着它对于使用人没有安全限制;
  • 企业通常在你和你的 API 服务器之间有多个网络层,这些层中的每一层都是令牌泄露的潜在点;
  • 如果你不小心把令牌签入公共 Git 存储库,即便它到期了,也很容易被快速破解。

更多辟谣:https://www.tremolosecurity.com/kubernetes-security-myths-debunked/?utm_content=buffer763fa&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

2. Kubernetes 对 HPC 的利弊 

在 IT 领域,Kubernetes 的崛起一直很难被忽视。在发布仅五年之后,Kubernetes 就已经成为开源的新宠,在人气上仅次于 Linux。而现在,Kubernetes 也迎来了与 HPC 结合的时间点。

相比传统 HPC 工作负载管理器,Kubernetes 的不同之处在于它的协调对象是由松散耦合的容器化服务组成的云原生应用程序。这种被称为微服务架构的软件设计是当前构建可扩展模块化应用程序服务的首选方式。

而在 HPC 中,用户会在工作负载管理器中查找特定功能。HPC 应用程序不会被容器化,甚至它们不会使用相同的容器运行时。虽然某些作业可能会长时间运行(如 Spark、TensorFlow),但不同作业的工作负载可能会有很大差异,包括参数扫描、MPI jobs、多步骤工作流程、长时间运行的服务等。HPC 用户往往需要回填调度、高级预留、抢占、拓扑感知调度等 Kubernetes 用户不熟悉的功能。

虽然有差别,但微服务架构还是使 HPC 用户对封装和可移植性产生了兴趣。例如在金融领域,由于企业对云原生技术与传统 HPC 的高接受度,开发人员非常重视 Kubernetes 中的 CI/CD 功能。

在数据分析和 AI 等领域,深度学习环境也会使用 HPC 调度程序进行模型训练,因为它具有出色的 GPU 感知调度能力和工作流自动化功能。同时,它也会使用 Kubernetes 来部署经过训练的模型,以便在云中进行可扩展的推理。

3. 本周 K8s 开源项目推荐 kube-capacity

kube-capacity 是一个简单的 CLI,它概述了 Kubernetes 集群中的资源请求、限制和利用率。它将 kubectl top 和 kubectl describe 的最佳部分组合到一个易于使用的 CLI 中,专注于集群资源。

详情请见:https://github.com/robscott/kube-capacity?utm_sq=g3k9qhvv67

kubectl-bindrole

kubectl-bindrole 是用于帮助查找绑定到指定 ServiceAccount、Group 或 User 的 Kubernetes 角色的工具。

详情请见:https://github.com/Ladicle/kubectl-bindrole?utm_sq=g3kcfheq14

kube-backup

kube-backup 是一个快速的 Kubernetes 状态备份脚本,旨在作为 Kubernetes Job 运行。它将 Kubernetes 资源状态同步到 Git。

详情请见:https://github.com/pieterlange/kube-backup?utm_sq=g3k8vci47w

Monday

Monday 是一个适用于微服务开发环境的 CLI 工具。它允许用户自定义配置以运行本地应用程序(Go、NodeJS、Rust等),并在 Kubernetes 上转发其他应用程序,以防用户不想在本地运行它们。

详情请见:https://github.com/eko/monday

Botkube

Botkube 是一个 Slack 机器人,它会密切关注你的 Kubernetes 资源并通知资源生命周期事件、错误和警告。你还可以要求 BotKube 在 K8s 集群上执行 kubectl 命令,帮助调试应用程序和集群。

详情请见:https://github.com/infracloudio/botkube?utm_sq=g3kb8d9oar

Rakkess

Rakkess 帮助审查对 Kubernetes 资源的访问,可以输出对 K8s 服务器资源的访问矩阵。它作为 kubectl 的插件发布,可以与 krew 一起安装(kubectl 插件管理器)。

详情请见:https://github.com/corneliusweig/rakkess?utm_sq=g3k93f1sq7

Reloader

Reloader 是一个 Kubernetes 控制器,用于观察 ConfigMap 和 Secrets 中的更改,然后重启 Deployment、StatefulSet、DaemonSet 和 DeploymentConfig 的 Pod。

详情请见:https://github.com/stakater/Reloader

docker-debug

docker-debug 是一个运行 Docker 容器的故障排除程序,它允许用户在 Docker 中运行新容器以进行调试。新的容器将加入 pid、network、user、filesystem 和 ipc 目标容器的命名空间,方便用户在无需预安装生产容器镜像的情况下使用故障排除工具。

详情请见:https://github.com/zeromake/docker-debug?utm_sq=g3kbfltacx

4. 将 Java EE 应用程序部署到 K8s 

Kubernetes 目前是在云中部署应用程序的事实标准,每个主要的云提供商都提供专用的 Kubernetes 服务(如 GCP 的 GKE 和 AWS 的 EKS),以便用户在 Kubernetes 集群中部署应用程序。

在这篇博客中,作者展示了如何把在 Payara 5.192 上运行的 Java EE 8 和 MicroProfile 2.2 应用程序部署到本地 Kubernetes 集群,只需对容器进行一些小调整,同样的做法也适用于把应用程序部署到云上的集群。

详情请见:https://rieckpil.de/howto-deploy-java-ee-applications-to-kubernetes/

5. K8s 和容器技术获澳洲情报机构重视 

澳大利亚安全情报组织(ASIO)是澳洲国家级安全及情报机构。为了更好地针对恐怖主义和间谍威胁,近日,ASIO 开启了新一轮的招聘狂潮,向全社会招募 ICT 网络和系统管理员、软件开发人员、IT 业务分析师、项目经理以及网络安全专家等高级管理人员。

在招聘细则中,ASIO 希望应聘者对“Agile、DevOps、CI/CD 及容器化和编排技术(如 Docker 和 Kubernetes)”感兴趣,着重考察应聘者在技术收集、数字取证、网络分析(和支持)、软件逆向工程这四项技术上的实践能力。

同时,ASIO 要求应聘者以视频的形式展示自己的 K8s 和 Docker 运用能力。这意味着对于高度安全的系统,Kubernetes 和容器似乎已经成为破解不可预测问题和挑战的一大工具。

AI 资讯 

1. 8 天成就史上最强德州扑克 AI 

上周,CMU 和 Facebook 人工智能团队合作研发的 AI 机器人“Pluribus”在六人无限制德州扑中击败人类职业选手,这是 AI 首次在超过两人的复杂对局中击败顶级人类玩家

几十年来,德州扑克一直是人工智能领域最难以攻克的重大问题之一。因为扑克对局涉及“隐藏信息”。你不知道对手的牌是什么,要想在牌局中获胜,需要成功运用 bluff 和其他多种策略,这些策略并不适用于国际象棋、围棋等对局。这使得德州扑克成为 AI 难以攻克的堡垒之一。

Pluribus 采用了一种新的在线搜索算法,可以通过前面的几个步骤有效评估策略选择。它还针对涉及“隐藏信息”的对战使用新的、更快的自对弈算法。

根据官方数据,Pluribus 的蓝图策略在 64 核 CPU 的服务器上训练了 8 天,使用 512 GB 的 RAM,没有使用 GPU。在一般的云计算实例价格下,训练费用不到 150 美元

其他 

1. 996 ICU 国际版:10x 工程师 

上周,印度创业者 Shekhar Kirani 在 Twitter 上发表了一则关于“10x 工程师”的言论,引发各国程序员愤慨。在原始推文中,他表示:“创始人们,如果你遇到 10x 工程师,请务必抓住他们。如果你有一个 10x 工程师作为公司的前几号员工,你创业的成功率会显著提高。”

他认为一名合格的 10x 工程师通常具备以下特征:

  • 10x 工程师通常不喜欢开会,他们认为这是在浪费时间;
  • 10x 工程师的工作时间极其不规律,他们更喜欢在人少的时候工作,比如深夜;
  • 10x 工程师电脑桌面的背景一般为黑色(默认),他们键盘上的 i、f、x 通常比 a、s、e(发邮件常用)磨损得更严重;
  • 10x 工程师知道投入生产的代码的每一行,如果出现 Bug,他们能准确知道 Bug 在哪儿,并用几小时修复;
  • 大多数 10x 工程师是全栈工程师,他们不关心前端、后端、API、数据库、无服务器等,也基本不做 UI 工作;
  • 10x 工程师可以在脑海中将“思想”转换为“代码”,并以迭代的方式编写。给他们一杯咖啡,他们就能用 4 到 6 个小时帮你实现整个功能而不会分心;
  • 10x 工程师很少查看帮助文档,他们可以从记忆中回忆起来,编写代码就像拼写英文一样简单,不用休息,只是码代码
  • 10x 工程师不怕任何新事物,他们总是赶在所有同事前学习新的框架、语言;
  • 10x 工程师是糟糕的导师,他们不会手把手教人工作,觉得与其教导别人,不如亲力亲为。同样的,他们也是糟糕的面试官;
  • 10x 工程师不会注释任何东西。他们编写高质量代码,明确知道代码的迭代方式,并在脑中拥有整体代码结构的模型;
  • 10x 工程师很少找工作或跳槽,除非公司的办事流程、会议、培训等非增值活动把他们的生活搅得一团糟。

虽然这 11 条特征中涵盖了优秀程序员必备的部分特征,比如热爱编码和学习,但总体而言,“10x 工程师”更多表现出了社会对程序员的病态偏见,希望程序员们都是工作狂,是“程序猿”

在评论中,不少工程师和企业高管也表示,对于一个开发团队,没有人愿意与无法沟通的人合作,更何况他们自以为是,不和同事交流,不参加面试和会议,连工作时间都不可预测。如果世界上真的存在“10x 工程师”,那大概长这样:


926 comCount 0