毕设要搞个什么网络安全检测系统,干脆直接做ebpf开发,走容器安全,顺便研究研究云原生安全
环境为ubuntu22.04,架构为x86_64
kubernetes
使用curl安装kubectl
下载发行版
1 | curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" |
验证文件
1 | curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256" |
若输出为kubectl: OK
则验证通过,否则sha256
将以非零值退出
安装kubectl
1 | sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl |
说明:若你没有目标系统的root权限,仍然可以将kubectl安装到目录
~/.local/bin
目录中:
1
2
3 chmod +x kubectl
mkdir -p ~/.local/bin
mv ./kubectl ~/.local/bin/kubectl
执行测试
1 | kubectl version --client |
kubectl的可选配置和插件
启用shell自动补全功能
kubectl 为 Bash、Zsh、Fish 和 PowerShell 提供自动补全功能。由于我使用的是zsh,因而这里只记录zsh的设置方式,其他shell类型可以自行查询
kubectl 通过命令 kubectl completion zsh
生成 Zsh 自动补全脚本。 在 Shell 中导入(Sourcing)该自动补全脚本,将启动 kubectl 自动补全功能。因此,我们需要编辑~/.zshrc
并写入添加如下内容:
1 | source <(kubectl completion zsh) |
重新加载 Shell 后,kubectl 自动补全功能将立即生效。
如果你收到
2: command not found: compdef
这样的错误提示,那请将下面内容添加到~/.zshrc
文件的开头:
1
2 autoload -Uz compinit
compinit
kubectl convert
一个 Kubernetes 命令行工具 kubectl
的插件,允许你将清单在不同 API 版本间转换。 这对于将清单迁移到新的 Kubernetes 发行版上未被废弃的 API 版本时尤其有帮助。 更多信息请访问迁移到非弃用 API
这里我并未安装,需要的话后续在补充
Minikube
目前有两个便捷工具,可以用来在本地创建kubernetes集群,Kind 和 Minikube,这里我选择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需求:
- 2 CPUs or more
- 2GB of free memory
- 20GB of free disk space
- Internet connection
- Container or virtual machine manager, such as: Docker, QEMU, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation
稳定版安装:
1 | curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 |
strat your cluster
1 | minikube start |
interact with your cluster
使用kubectl访问集群,如下等等
1 | kubectl get po -A |
如果使用kubectl出现类似 couldn’t get current server API group list: … read: connection reset by peer报错,可以查看我之前的文章尝试修复:Loora1N’s Blog鹭雨