Ubuntu 18.04 通过 Minikube 安装 Kubernetes v1.20

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: Ubuntu 18.04 通过 Minikube 安装 Kubernetes v1.20

Ubuntu 18.04 通过 Minikube 安装 Kubernetes v1.20

tags: kubernetes,部署,minikube

文章目录

Ubuntu 18.04 通过 Minikube 安装 Kubernetes v1.20

1. 关闭swap

2. 安装依赖tools

3. 添加阿里云镜像

4. 安装 Docker、kubectl、kubeadm

5. 配置阿里云 Docker 镜像加速器

6. 安装 Minikube

7. 检查

8. 常用命令

9.异常

9.1 部署异常

10. 部署应用程序

11. 集群启动与停止

1. 关闭swap

swapoff -a

2. 安装依赖tools

sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common conntra

由于国内网络的不稳定性,我们需要将相关镜像源切换为国内阿里云的镜像

3. 添加阿里云镜像

curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
sudo apt-get update

4. 安装 Docker、kubectl、kubeadm

#查看docker版本
$ sudo apt-cache madison docker.io
 docker.io | 19.03.6-0ubuntu1~18.04.3 | http://cn.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages
 docker.io | 19.03.6-0ubuntu1~18.04.2 | http://cn.archive.ubuntu.com/ubuntu bionic-security/universe amd64 Packages
 docker.io | 17.12.1-0ubuntu1 | http://cn.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
sudo apt-get install -y docker.io kubectl kubeadm

5. 配置阿里云 Docker 镜像加速器

这里采用了阿里云的镜像加速器(需要阿里云账号进行登录),地址:阿里云 -> 容器镜像服务 -> 镜像工具 -> 镜像加速器

1035234-20181020215539574-213176954.png

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

以上配置是阿里云镜像加速器中的配置,本文中这一块儿是直接从阿里云镜像加速器中的配置说明复制的,大家根据自己的情况在阿里云镜像加速器中去复制。

6. 安装 Minikube

目前最新 v1.24.0,查看最新版:https://github.com/kubernetes/minikube/releases

如果curl无法下载,也可以通过手动下载并上传到服务器的形式

curl -Lo minikube https://github.com/kubernetes/minikube/releases/download/v1.17.1/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

使用 Minikube 创建 Kubernetes

格式1

minikube start --vm-driver=none --apiserver-ips=<your-server-ip> --image-mirror-country cn \
 --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.17.1.iso \
 --registry-mirror=https://xxxxxx.mirror.aliyuncs.com \
 --image-repository=https://registry.aliyuncs.com/google_containers

此处的 registry-mirror 是阿里云的镜像加速器的 mirror,换成你自己的即可; apiserver-ips 则是你服务器的IP,我的是https://q2hy3fzi.mirror.aliyuncs.com,因为如果需要远程访问的话,需要将服务器的IP进行暴露,同样换成你自己的服务器IP即可.

执行命令:

minikube start --vm-driver=none --apiserver-ips=192.168.211.55 --image-mirror-country cn

输出内容:

* minikube v1.17.1 on Ubuntu 18.04
* Using the none driver based on existing profile
X The requested memory allocation of 1970MiB does not leave room for system overhead (total system memory: 1970MiB). You may face stability issues.
* Suggestion: Start minikube with less memory allocated: 'minikube start --memory=1970mb'
* Starting control plane node minikube in cluster minikube
* Restarting existing none bare metal machine for "minikube" ...
* OS release is Ubuntu 18.04.5 LTS
* Preparing Kubernetes v1.20.2 on Docker 19.03.6 ...
  - kubelet.resolv-conf=/run/systemd/resolve/resolv.conf
  - Generating certificates and keys ...
  - Booting up control plane ...
  - Configuring RBAC rules ...
* Configuring local host environment ...
* 
! 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!
* For more information, see: https://minikube.sigs.k8s.io/docs/reference/drivers/none/
* 
! kubectl and minikube configuration will be stored in /root
! To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:
* 
  - sudo mv /root/.kube /root/.minikube $HOME
  - sudo chown -R $USER $HOME/.kube $HOME/.minikube
* 
* This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true
* Verifying Kubernetes components...
* Enabled addons: storage-provisioner, default-storageclass
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

如果不出意外的话,由 minikube 创建的单机 Kubernetes 环境就成功了。

7. 检查

root@spectre:~# kubectl get nodes
NAME      STATUS   ROLES                  AGE   VERSION
spectre   Ready    control-plane,master   68s   v1.20.2
root@spectre:~# kubectl get pods -A
NAMESPACE     NAME                              READY   STATUS    RESTARTS   AGE
kube-system   coredns-7f89b7bc75-774mp          1/1     Running   0          5m53s
kube-system   etcd-spectre                      1/1     Running   0          6m7s
kube-system   kube-apiserver-spectre            1/1     Running   0          6m7s
kube-system   kube-controller-manager-spectre   1/1     Running   0          6m7s
kube-system   kube-proxy-swbhc                  1/1     Running   0          5m53s
kube-system   kube-scheduler-spectre            1/1     Running   0          6m7s
kube-system   storage-provisioner               1/1     Running   0          6m6s
root@spectre:~# kubectl cluster-info
Kubernetes control plane is running at https://192.168.211.55:8443
KubeDNS is running at https://192.168.211.55:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

8. 常用命令

# 进入集群节点
minikube ssh
# 查看节点 IP
minikube ip
# 停止集群
minikube stop
# 删除集群
minikube delete

9.异常

9.1 部署异常

storage-provisioner Pod镜像名称错误

解决方法

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5 registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-minikube/storage-provisioner:v5
minikube image load registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-minikube/storage-provisioner:v5

10. 部署应用程序

创建一个示例部署并在端口 8080 上公开它:

kubectl create deployment hello-minikube --image=registry.aliyuncs.com/google_containers/echoserver:1.4
deployment.apps/hello-minikube created
kubectl expose deployment hello-minikube --type=NodePort --port=8080
kubectl get services hello-minikube

11. 集群启动与停止

当我们需要修改docker配置等需要集群停止的需求可以执行命令:

minikube stop

当修改完配置

minikube start

参考:


kind 部署 kubernetes 集群

Minikube 在ubuntu 部署 Kubernetes

Minikube 在 Centos 7 部署 Kubernetes

kubeadm 部署 kubernetes 集群

更多Minikube细节请参考官方

kubernetes 快速学习手册


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
12天前
|
Ubuntu 开发工具 git
Ubuntu安装homebrew的完整教程
本文介绍了如何在没有公网的情况下安装 Homebrew。首先访问 Homebrew 官网,然后通过阿里云的镜像克隆安装脚本,并创建普通用户进行安装。接着修改 `install.sh` 文件指向国内镜像,执行安装命令。最后配置环境变量并更换 Homebrew 源为国内镜像,确保安装顺利。
120 50
|
1月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
131 4
Linux系统之Ubuntu安装cockpit管理工具
|
1月前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
147 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
12天前
|
Kubernetes Ubuntu Linux
我应该如何安装Kubernetes
我应该如何安装Kubernetes
|
1月前
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
148 1
|
1月前
|
Ubuntu Linux
软件安装(五):Ubuntu 18.04安装Teamviewer 看一遍就会
这篇文章介绍了在Ubuntu 18.04系统上通过图形界面和命令行两种方法安装TeamViewer远程控制软件的步骤。
32 2
|
21天前
|
消息中间件 Ubuntu Java
Ubuntu系统上安装Apache Kafka
Ubuntu系统上安装Apache Kafka
|
27天前
|
Ubuntu Linux
Ubuntu 16.04下无法安装.deb的解决方法
希望以上策略能有效协助您克服在Ubuntu 16.04中安装.deb文件时遇到的挑战。
27 0
|
6天前
|
Kubernetes 监控 Cloud Native
Kubernetes集群的高可用性与伸缩性实践
Kubernetes集群的高可用性与伸缩性实践
27 1
|
27天前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景
下一篇
无影云桌面