1.MiniKube基本使用
我使用的是MiniKube进行学习k8s的第一步
首先看一下Minikube的特点
- 支持最新的 Kubernetes 版本(+6 个以前的次要版本)
- 跨平台(Linux,macOS,Windows)
- 部署为 VM、容器或裸机上
- 多个容器运行时(CRI-O、containerd、docker)
- 直接 API 端点,用于快速加载和构建映像
- 高级功能,如负载平衡器、文件系统挂载、功能门和网络策略
- 用于易于安装的 Kubernetes 应用程序的插件
- 支持常见的 CI 环境
在单机下,使用minikube是可以帮助学习k8s的人群作为一个入门。
安装minikube需要有以下条件
- 2 个或更多 CPU
- 2GB 可用内存
- 20GB 可用磁盘空间
- 互联网连接
- 容器或虚拟机管理器,例如:Docker,QEMU,Hyperkit,Hyper-V,KVM,Parallels,Podman,VirtualBox或VMware Fusion/工作站
1.1 安装docker
# 1.移除旧版本
sudo yum remove docker*
# 2.设置docker yum源
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 3.docker版本列表
yum list docker-ce --showduplicates | sort -r
# 4.下载docker 可以根据上面的命令进行版本替换
yum install -y docker-ce-20.10.20 docker-ce-cli-20.10.20 containerd.io
# 5.设置开机自动启动
systemctl start docker
systemctl enable docker
# 6.配置加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["可以去阿里云镜像服务进行配置"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
1.2安装kubectl
# 1.下载kubectl
curl -LO "https://dl.k8s.io/release/v1.23.8/bin/linux/amd64/kubectl"
# 2.安装kubectl
install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# 3.验证kubectl安装是否成功
kubectl version -o=yaml
# 输出 可以看到go版本和git版本等信息
clientVersion:
buildDate: "2023-02-22T13:39:03Z"
compiler: gc
gitCommit: fc04e732bb3e7198d2fa44efa5457c7c6f8c0f5b
gitTreeState: clean
gitVersion: v1.26.2
goVersion: go1.19.6
major: "1"
minor: "26"
platform: linux/amd64
kustomizeVersion: v4.5.7
1.3 安装minikube
# 1.安装minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# 2.查看minikube版本
sudo minikube version
# 输出
minikube version: v1.29.0
commit: ddac20b4b34a9c8c857fc602203b6ba2679794d3
# 3.启动minikube 需要耐心等待一段时间
# --kubernetes-version 指定k8s版本 这里不要用新版!!!新版太多坑了,我被坑麻了
# --image-repository 镜像源
# --image-mirror-country 使用国内源
# --driver=docker 使用docker
minikube start \
--kubernetes-version=v1.23.8 \
--image-mirror-country=cn \
--image-repository="registry.cn-hangzhou.aliyuncs.com/google_containers" \
--force \
--driver=docker
# 4.查看minikube状态
sudo minikube status
# 输出
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
# 5.访问minikube的dashboard 直接访问不了的 是需要加一层代理(云服务器情况下)
minikube dashboard
# 6.kubectl proxy代理
kubectl proxy --port=9527 --address='10.0.12.8' --accept-hosts='^.*' &
# 浏览器输入
http://ip:port/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/statefulset?namespace=default
1.4 Minikube常用集群命令
暂停 Kubernetes 而不影响已部署的应用程序:
sudo minikube pause
取消暂停暂停的实例:
sudo minikube unpause
停止集群:
sudo minikube stop
重新启动集群
sudo minikube start
更改默认内存限制(需要重新启动):
minikube config set memory 9001
浏览易于安装的 Kubernetes 服务插件目录:
sudo minikube addons list
#输出 可以看出有很多关于k8s的插件可以进行下载
|-----------------------------|----------|--------------|--------------------------------|
| ADDON NAME | PROFILE | STATUS | MAINTAINER |
|-----------------------------|----------|--------------|--------------------------------|
| ambassador | minikube | disabled | 3rd party (Ambassador) |
| auto-pause | minikube | disabled | Google |
| cloud-spanner | minikube | disabled | Google |
| csi-hostpath-driver | minikube | disabled | Kubernetes |
| dashboard | minikube | enabled ✅ | Kubernetes |
| default-storageclass | minikube | enabled ✅ | Kubernetes |
| efk | minikube | disabled | 3rd party (Elastic) |
| freshpod | minikube | disabled | Google |
| gcp-auth | minikube | disabled | Google |
| gvisor | minikube | disabled | Google |
| headlamp | minikube | disabled | 3rd party (kinvolk.io) |
| helm-tiller | minikube | disabled | 3rd party (Helm) |
| inaccel | minikube | disabled | 3rd party (InAccel |
| | | | [info@inaccel.com]) |
| ingress | minikube | disabled | Kubernetes |
| ingress-dns | minikube | disabled | Google |
| istio | minikube | disabled | 3rd party (Istio) |
| istio-provisioner | minikube | disabled | 3rd party (Istio) |
| kong | minikube | disabled | 3rd party (Kong HQ) |
| kubevirt | minikube | disabled | 3rd party (KubeVirt) |
| logviewer | minikube | disabled | 3rd party (unknown) |
| metallb | minikube | disabled | 3rd party (MetalLB) |
| metrics-server | minikube | disabled | Kubernetes |
| nvidia-driver-installer | minikube | disabled | Google |
| nvidia-gpu-device-plugin | minikube | disabled | 3rd party (Nvidia) |
| olm | minikube | disabled | 3rd party (Operator Framework) |
| pod-security-policy | minikube | disabled | 3rd party (unknown) |
| portainer | minikube | disabled | 3rd party (Portainer.io) |
| registry | minikube | disabled | Google |
| registry-aliases | minikube | disabled | 3rd party (unknown) |
| registry-creds | minikube | disabled | 3rd party (UPMC Enterprises) |
| storage-provisioner | minikube | enabled ✅ | Google |
| storage-provisioner-gluster | minikube | disabled | 3rd party (Gluster) |
| volumesnapshots | minikube | disabled | Kubernetes |
|-----------------------------|----------|--------------|--------------------------------|
创建运行旧 Kubernetes 版本的第二个集群:
minikube start -p aged --kubernetes-version=v1.16.1
删除所有minikube集群:
minikube delete --all