k8s基础练习环境搭建
k8s基础练习环境minikube搭建
参考链接:https://kubernetes.io/zh-cn/docs/tutorials/kubernetes-basics/
一、下载minikube包并安装
curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64 #虚拟机网络不好可以先浏览器下载然后再上传
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
二、创建minikube用户(非 root 用户)并加入 docker 组
#Minikube 默认不建议以 root 用户使用 Docker 驱动
现场环境已提前安装docker环境,目前使用方法一 创建非root用户处理
1. 通过国内软件源安装
对于 Debian/Ubuntu 系统,可以使用阿里云镜像源:bash
sudo apt-get update && sudo apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
sudo tee /etc/apt/sources.list.d/kubernetes.list <<-'EOF'
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
对于 CentOS/RHEL/Fedora 系统,可以使用阿里云镜像源:bash
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
sudo setenforce 0
sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable kubelet && sudo systemctl start kubelet
2. 直接下载二进制文件
你可以直接从国内镜像站下载所需的 kubectl 二进制文件。例如,下载特定版本的 kubectl (如 v1.10.3):bash
curl -LO https://mirrors.aliyun.com/kubernetes-release/release/v1.10.3/bin/linux/amd64/kubectl
📌 注意:你需要将 v1.10.3 替换为你实际需要的版本号。部分国内镜像源也可能提供 stable.txt 文件或其镜像,让你能像官方脚本一样获取最新稳定版本,但具体地址需查询该镜像站的文档。下载后,需要添加执行权限并移动到 PATH 目录:bash
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
kubectl version --client
3. 使用 Docker 容器运行 kubectl
如果不想在主机上直接安装,也可以通过 Docker 容器运行 kubectl。例如,使用 Kubesphere 提供的镜像:bash
docker run -it --rm docker.io/kubesphere/kubectl:v1.19.1 version
或者使用 Bitnami 提供的镜像:bash
docker run -it --rm docker.io/bitnami/kubectl:1.32.3-debian-12-r2 version
💡 提示:运行容器时,通常需要将本地的 kubeconfig 文件(如 ~/.kube/config )挂载到容器内,以便 kubectl 能够访问你的 Kubernetes 集群。例如:bash
docker run -it --rm -v ~/.kube/config:/.kube/config docker.io/kubesphere/kubectl:v1.19.1 get pods✨ 操作建议
版本匹配:安装或下载 kubectl 时,尽量保证其版本与你的 Kubernetes 集群版本相匹配(通常建议小版本号相差不超过1),以避免因版本不兼容而出现命令执行失败的问题。
网络安全:从任何来源下载软件后,建议验证文件的完整性(例如通过 SHA256 校验和,如果镜像站提供的话)。
配置权限:直接下载二进制文件后,别忘记使用 chmod +x kubectl 命令为其添加可执行权限。
环境变量:如果不想将 kubectl 移动到 /usr/local/bin/,可以将其放在任何你喜欢的目录,并将该目录添加到你的 PATH 环境变量中。
[root@node001 server]# docker --version
Docker version 20.10.9, build c2ea9bc
2.1创建一个新的非 root 用户(例如 minikube-user
)
sudo useradd -m -s /bin/bash minikube-user
2.2 为新用户设置密码
sudo passwd minikube-user
2.3 minikube-user 添加 sudo 权限
#切换root用户,安全地编辑 `/etc/sudoers` 文件
su - # 或者使用 'su - root',然后输入 root 用户的密码
visudo
#设置该用户使用 `sudo` 时**无需输入密码**找到类似下面一行
root ALL=(ALL) ALL
在这行下面添加
minikube-user ALL=(ALL) NOPASSWD: ALL
2.4 将新用户添加到 docker
组,使其有权管理Docker
sudo usermod -aG docker minikube-user
2.5 永久设置默认驱动,将 Docker 设置为该用户未来启动 Minikube 时的默认驱动
minikube config set driver docker
2.6 切换到新创建的用户
su - minikube-user
2.7 确保当前用户在 docker 组中,并刷新组信息
getent group docker
newgrp docker
#设置socket文件权限
sudo chmod 666 /var/run/docker.sock
2.8 配置阿里云镜像源
对于 Debian/Ubuntu 系统,可以使用阿里云镜像源:
sudo apt-get update && sudo apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
sudo tee /etc/apt/sources.list.d/kubernetes.list <<-'EOF'
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
对于 CentOS/RHEL/Fedora 系统,可以使用阿里云镜像源:
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
sudo setenforce 0
sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable kubelet && sudo systemctl start kubelet
#直接启动可能会出现拉取文件报错,如下
#❗ minikube cannot pull kicbase image from any docker registry, and is trying to download kicbase tarball from github release page via HTTP. ❗ It's very likely that you have an internet issue. Please ensure that you can access the internet at least via HTTP, directly or with proxy. Currently your proxy configure is: > kicbase-v0.0.47-amd64.tar: 10.00 MiB / 1.23 GiB 0.79% 19.46 KiB p/s 8m4 E0905 19:14:20.428756 11411 cache.go:225] Error downloading kicartifacts: failed to download kic base image or any fallback image#无法从 Google 的容器仓库([gcr.io](https://gcr.io/))拉取 `kicbase` 镜像,这通常是由于网络连问题导致的,拉取国内镜像并重新打标签
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.47
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.47 gcr.io/k8s-minikube/kicbase:v0.0.47
三、启动minikube
3.1 在新的用户会话中启动 Minikube(确保使用了 Docker 驱动)
minikube start --driver=docker
✅ 成功启动的标志
🏄 Done!
:这是最明确的成功提示!🔎 Verifying Kubernetes components...
:Minikube 检查了所有 Kubernetes 核心组件,并且都通过了验证。🌟 Enabled addons
:成功启用了一些默认的插件(如storage-provisioner
),这是集群功能完整的标志。kubectl is now configured to use "minikube" cluster
:你的kubectl
命令行工具已经自动配置好,可以和你刚创建的 Minikube 集群进行通信了。
3.2 验证 Minikube 集群状态
minikube status
kubectl get nodes
minikube service list
kubectl get pods -A