【Cloud】云原生安全环境搭建

毕设要搞个什么网络安全检测系统,干脆直接做ebpf开发,走容器安全,顺便研究研究云原生安全

环境为ubuntu22.04,架构为x86_64

kubernetes

使用curl安装kubectl

下载发行版

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

验证文件

curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check 

若输出为kubectl: OK则验证通过,否则sha256将以非零值退出

安装kubectl

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

说明:若你没有目标系统的root权限,仍然可以将kubectl安装到目录~/.local/bin目录中:

chmod +x kubectl
mkdir -p ~/.local/bin
mv ./kubectl ~/.local/bin/kubectl

执行测试

kubectl version --client
#或者
kubectl version --client --output=yaml

kubectl的可选配置和插件

启用shell自动补全功能

kubectl 为 Bash、Zsh、Fish 和 PowerShell 提供自动补全功能。由于我使用的是zsh,因而这里只记录zsh的设置方式,其他shell类型可以自行查询

kubectl 通过命令 kubectl completion zsh 生成 Zsh 自动补全脚本。 在 Shell 中导入(Sourcing)该自动补全脚本,将启动 kubectl 自动补全功能。因此,我们需要编辑~/.zshrc并写入添加如下内容:

source <(kubectl completion zsh)

重新加载 Shell 后,kubectl 自动补全功能将立即生效。

如果你收到 2: command not found: compdef 这样的错误提示,那请将下面内容添加到 ~/.zshrc 文件的开头:

autoload -Uz compinit
compinit

kubectl convert

一个 Kubernetes 命令行工具 kubectl 的插件,允许你将清单在不同 API 版本间转换。 这对于将清单迁移到新的 Kubernetes 发行版上未被废弃的 API 版本时尤其有帮助。 更多信息请访问迁移到非弃用 API

这里我并未安装,需要的话后续在补充

Minikube

目前有两个便捷工具,可以用来在本地创建kubernetes集群,KindMinikube,这里我选择Minikube。

选择Minikube的原因是chatGPT的解释,以下内容引用自chatGPT,仅供参考:

选择使用 Kind 还是 Minikube 可能取决于你的需求和偏好:

Kind (Kubernetes in Docker):

  • 轻量级: Kind 在本地以 Docker 容器的形式运行 Kubernetes,因此相对轻量级且易于安装和管理。
  • 快速启动: 它可以快速创建一个多节点的 Kubernetes 环境,非常适合测试和开发目的。
  • 与 CI/CD集成: Kind 也被广泛用于持续集成/持续部署 (CI/CD) 流水线中,因为它可以轻松地在 Docker 中创建临时的 Kubernetes 环境。

Minikube:

  • 全功能的本地 Kubernetes: Minikube 提供了一个完整的、单节点的 Kubernetes 集群,在本地可以进行开发和测试,模拟生产环境。
  • 多平台支持: 它支持 Windows、macOS 和 Linux,并提供了方便的命令行工具来管理和操作 Kubernetes 环境。
  • 功能更丰富: Minikube 提供了一些高级功能和配置选项,允许用户定制和配置 Kubernetes 集群。

如果你想要快速轻松地在 Docker 中运行一个本地 Kubernetes 环境,并且对多节点并不是特别需要,Kind 可能是个不错的选择。但如果你需要一个更加接近生产环境、全功能的本地 Kubernetes 环境,Minikube 可能更适合你的需求。最终,这取决于你的具体使用场景和偏好。

安装minikube

minikube需求:

稳定版安装:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

strat your cluster

minikube start

interact with your cluster

使用kubectl访问集群,如下等等

kubectl get po -A
kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0

如果使用kubectl出现类似 couldn’t get current server API group list: … read: connection reset by peer报错,可以查看我之前的文章尝试修复:Loora1N’s Blog鹭雨