老高最近由于工作变动,需要开展K8S的学习和研究,如何快速搭建一个K8S集群成为了第一个要解决的问题。

刚好老高手头有一台配置还行的服务器,赶紧安装记录一下,省的服务器迁移后数据全丢,然后又要重头来。

安装

进入 https://minikube.sigs.k8s.io/docs/start/

minikube.png

老高比较喜欢RPM的安装方式,大家可以选择自己喜欢的方法。

安装完成后可以查看命令是否OK

minikube_version.png

# root @ VM-117-17-tencentos in ~ [23:42:47] C:1
$ minikube start
😄  Centos 8.4.2105 (amd64) 上的 minikube v1.32.0
✨  自动选择 docker 驱动。其他选项:none, ssh
🛑  The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force.
💡  如果您在VM中运行 minikube,请考虑使用 --driver=none:
📘    https://minikube.sigs.k8s.io/docs/reference/drivers/none/

❌  因 DRV_AS_ROOT 错误而退出:docker 驱动不应使用 root 权限。

改为minikube start --driver=none运行,报错

❌  因 GUEST_MISSING_CONNTRACK 错误而退出:Sorry, Kubernetes 1.28.3 requires conntrack to be installed in root's path

安装conntrack-tools

yum install conntrack-tools

继续运行minikube start --driver=none,报错

❌  因 GUEST_MISSING_CONNTRACK 错误而退出:Sorry, Kubernetes 1.28.3 requires crictl to be installed in root's path

安装crictl

VERSION="v1.29.0"
wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz
tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin

继续运行minikube start --driver=none,报错

因 NOT_FOUND_CRI_DOCKERD 错误而退出:

💡  建议:

    Kubernetes v1.24+ 和 docker 容器运行时的 none 驱动需要 cri-dockerd。

    请使用以下说明安装 cri-dockerd:

    https://github.com/Mirantis/cri-dockerd

安装cri-dockerd

wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.9/cri-dockerd-0.3.9-3.el8.x86_64.rpm
rpm -Uvh cri-dockerd-0.3.9-3.el8.x86_64.rpm

继续运行minikube start --driver=none,报错

因 NOT_FOUND_CNI_PLUGINS 错误而退出:


💡  建议:

    The none driver with Kubernetes v1.24+ requires containernetworking-plugins.

    Please install containernetworking-plugins using these instructions:

    https://minikube.sigs.k8s.io/docs/faq/#how-do-i-install-containernetworking-plugins-for-none-driver

安装containernetworking-plugins-for-none

CNI_PLUGIN_VERSION=v1.4.0
CNI_PLUGIN_TAR="cni-plugins-linux-amd64-$CNI_PLUGIN_VERSION.tgz" # change arch if not on amd64
CNI_PLUGIN_INSTALL_DIR="/opt/cni/bin"
curl -LO "https://github.com/containernetworking/plugins/releases/download/$CNI_PLUGIN_VERSION/$CNI_PLUGIN_TAR"
mkdir -p "$CNI_PLUGIN_INSTALL_DIR"
tar -xf "$CNI_PLUGIN_TAR" -C "$CNI_PLUGIN_INSTALL_DIR"
rm "$CNI_PLUGIN_TAR"

继续运行minikube start --driver=none,终于成功

find: ‘/etc/cni/net.d’: 没有那个文件或目录
    > kubelet.sha256:  64 B / 64 B [-------------------------] 100.00% ? p/s 0s
    > kubectl.sha256:  64 B / 64 B [-------------------------] 100.00% ? p/s 0s
    > kubeadm.sha256:  64 B / 64 B [-------------------------] 100.00% ? p/s 0s
    > kubeadm:  46.77 MiB / 46.77 MiB [--------------] 100.00% 1.08 MiB p/s 43s
    > kubectl:  47.56 MiB / 47.56 MiB [--------------] 100.00% 1.08 MiB p/s 44s
    > kubelet:  105.65 MiB / 105.65 MiB [----------] 100.00% 1.07 MiB p/s 1m39s

    ▪ 正在生成证书和密钥...
    ▪ 正在启动控制平面...
    ▪ 配置 RBAC 规则 ...
🔗  配置 bridge CNI (Container Networking Interface) ...
🤹  开始配置本地主机环境...

❗  The 'none' driver is designed for experts who need to integrate with an existing VM
💡  Most users should use the newer 'docker' driver instead, which does not require root!
📘  更多信息,请参阅:https://minikube.sigs.k8s.io/docs/reference/drivers/none/

❗  kubectl 和 minikube 配置将存储在 /root 中
❗  如需以您自己的用户身份使用 kubectl 或 minikube 命令,您可能需要重新定位该命令。例如,如需覆盖您的自定义设置,请运行:

    ▪ sudo mv /root/.kube /root/.minikube $HOME
    ▪ sudo chown -R $USER $HOME/.kube $HOME/.minikube

💡  此操作还可通过设置环境变量 CHANGE_MINIKUBE_NONE_USER=true 自动完成
🔎  正在验证 Kubernetes 组件...
    ▪ 正在使用镜像 gcr.io/k8s-minikube/storage-provisioner:v5
🌟  启用插件: default-storageclass, storage-provisioner
💡  kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
🏄  完成!kubectl 现在已配置,默认使用"minikube"集群和"default"命名空间

完成后老高建议把shell切换为zsh,因为有kubectl的插件,就不用额外去做alias了。

还没有安装zsh的同学可以移步 zsh + oh-my-zsh 默认shell的最佳替代品 还有 打造高效多环境zsh开发环境两篇文章。

标签: centos, zsh, docker, Kubernetes, Container-Runtime, k8s, minikube, Minikube-Installation, Minikube-Configuration, Container-Networking-Interface, conntrack-tools, crictl, cri-dockerd, Cluster-Deployment, Driver-Configuration, Shell-Environment, Oh-My-Zsh, Kubectl, Cluster-Management, Linux-Server, VM

添加新评论