Ubuntu 18.04 通过 Minikube 安装 Kubernetes v1.20

简介: 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 快速学习手册


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
20天前
|
Ubuntu Linux Python
Linux(15)Ubuntu安装ninja构建工具
Linux(15)Ubuntu安装ninja构建工具
93 0
|
5天前
|
Ubuntu Python
Ubuntu 安装Python3.8
Ubuntu 安装Python3.8
27 0
|
3天前
|
Ubuntu Unix Linux
在Ubuntu安装RPM文件
Ubuntu使用`apt`和`alien`工具安装软件。`deb`是Ubuntu的标准包格式,但通过`alien`可转换及安装`RPM`包。首先确保启用`Universe`源,然后安装`alien`。转换RPM包为DEB包,运行`sudo alien package_name.rpm`,接着用`sudo apt install package_name.deb`安装。直接安装RPM包可使用`sudo alien -i package_name.rpm`,但这种方法不推荐,可能导致依赖性冲突和系统不稳定。
22 10
|
3天前
|
Ubuntu
ubuntu软件包安装
ubuntu软件包安装
10 1
|
4天前
|
分布式计算 Ubuntu Java
PySpark安装及WordCount实现(基于Ubuntu)
现在,你已经成功安装了PySpark并实现了WordCount示例。你可以根据实际需求修改脚本以处理不同的文本数据。
10 0
|
6天前
|
Ubuntu 应用服务中间件 nginx
ubuntu编译安装nginx及安装nginx_upstream_check_module模块
以上是编译安装Nginx和安装 `nginx_upstream_check_module`模块的基本步骤。根据你的需求和环境,你可能需要进一步配置Nginx以满足特定的要求。
19 3
|
9天前
|
资源调度 JavaScript Ubuntu
Yarn介绍及快速安装Debian/Ubuntu Linux
现在,你已经成功安装了Yarn,可以在你的JavaScript项目中使用它来管理依赖。
49 3
|
9天前
|
Ubuntu
Ubuntu20.04安装SNMP服务
至此,你已经成功在Ubuntu 20.04上安装了SNMP服务。你可以使用SNMP工具来监视和管理你的系统,或者将其集成到网络管理系统中。
26 3
|
12天前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 20.04 + mysql8 安装以及配置大小写不敏感
Ubuntu 20.04 + mysql8 安装以及配置大小写不敏感
|
13天前
|
缓存 Ubuntu 数据库
ubuntu无法使用apt命令时怎么安装库
无论哪种方法,一旦成功安装了所需的库文件,你应该能够在Ubuntu系统上正常使用它们。如果问题仍然存在,可能需要进一步检查系统的包管理配置和依赖关系问题。
29 0