在Ubuntu20.04上安装Kubernetes-Kubeadm和Minikube

镜像下载、域名解析、时间同步请点击阿里云开源镜像站

在本文中,我们将了解如何在 Ubuntu 20.04 上安装 Kubernetes。在过去的几年里,容器化为开发人员提供了很大的灵活性。最常用的容器化应用程序之一是 Docker。

在Ubuntu20.04上安装Kubernetes-Kubeadm和Minikube

运行小型应用程序并不困难,但如果您想要扩展它们该怎么办?当您有数百台服务器时,扩展起来就不那么容易了。应该有一个自动化工具,完全负责将资源分配给我们在特定机器上的应用程序,不仅如此,而且还要持续监控和灵活性。

[En]

It’s not difficult to run small applications, but what if you want to extend them? When you have hundreds of servers, it’s not so easy to scale. There should be an automated tool that is fully responsible for allocating resources to our applications on specific machines, not only that, but also continuous monitoring and flexibility.

在容器上部署服务的主要原因之一是它们灵活、轻量级并且在部署在数百台机器上时易于扩展。但是,谁来管理所有这些容器?这就是 Kubernetes 发挥作用的地方。

什么是 Kubernetes?

Kubernetes(也称为”K8s”)是 Google 的一个开源项目,用于通过提供扩展、部署和维护等服务来管理集群上的容器化应用程序。

Kubernetes 目前是市场领导者,在大多数场景中击败了 Docker Swarm 和 Apache Mesos 等竞争对手。然而,Kubernetes 的一大缺点是设置困难。一些云供应商确实提供了预制集群供您使用,但它们是付费的。当您只想免费学习 Kubernetes 时该怎么办?

让我们看看如何在 Ubuntu 20.04 上运行 Kubernetes 集群。

Kubernetes 安装——使用 kubeadm

首先,有两个虚拟机设置。我们将其中一个用作主节点,另一个用作工作节点。

[En]

First, there are two virtual machine settings. We use one of them as our master node and the other as the work node.

安装 Docker

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install docker.io

启动Docker

linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl start docker

查看状态

linuxmi@linuxmi:~/www.linuxmi.com$ systemctl status docker.service

设置开机启动

linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl enable docker

查看 Docker 版本

linuxmi@linuxmi:~/www.linuxmi.com$ docker version

禁用交换内存

暂时禁止:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo swapoff -a

永久禁止:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo nano /etc/fstab

在此文件中,注释掉该 /swapfile 行。

设置主机名

linuxmi@linuxmi:~/www.linuxmi.com$ sudo hostnamectl set-hostname kubernetes-master
linuxmi@linuxmi:~/www.linuxmi.com$ sudo hostnamectl set-hostname kubernetes-worker

安装 Kubernetes

sudo apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl
linuxmi@linuxmi:~/www.linuxmi.com$ curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
OK
linuxmi@linuxmi:~/www.linuxmi.com$ sudo tee /etc/apt/sources.list.d/kubernetes.list < deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
> EOF
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-get update

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-get install -y kubelet kubeadm kubectl

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-mark hold kubelet kubeadm kubectl
kubelet &#x8BBE;&#x7F6E;&#x4E3A;&#x4FDD;&#x7559;&#x3002;
kubeadm &#x8BBE;&#x7F6E;&#x4E3A;&#x4FDD;&#x7559;&#x3002;
kubectl &#x8BBE;&#x7F6E;&#x4E3A;&#x4FDD;&#x7559;&#x3002;

初始化 Kubernetes 主服务器

在主节点上运行这些:

kubernetes-master:~$ sudo kubeadm init
kubernetes-master:~$ mkdir -p $HOME/.kube
kubernetes-master:~$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
kubernetes-master:~$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

部署 Pod 网络

kubernetes-master:~$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubernetes-master:~$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml
kubernetes-master:~$ kubectl get pods --all-namespaces

加入 Kubernetes 集群

从工作节点运行这些:

kubernetes-worker:~$ sudo kubeadm join 192.168.1.220:6443 --token 1exb8s.2t4k3b5syfc3jfmo --discovery-token-ca-cert-hash sha256:72ad481cee4918cf2314738419356c9a402fb609263adad48c13797d0cba2341
kubernetes-master:~$ kubectl get nodes

Kubernetes 安装 – 使用 minikube(本地)

对于这个演示,我们将使用一个名为minikube的应用程序。使用 Ctrl + Alt + T 打开终端并输入以下 命令

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube start

这将在本地启动一个 Kubernetes 集群。要停止集群,您可以:

要访问本地 Kubernetes 的仪表板:

minikube dashboard

OK,就这样

本文转自:https://blog.51cto.com/u_13510521/5167724

Original: https://www.cnblogs.com/helong-123/p/16107375.html
Author: 萌褚
Title: 在Ubuntu20.04上安装Kubernetes-Kubeadm和Minikube

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/523874/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Docker安装及配置镜像加速

    Docker 支持 Mac Windows Linux 的三种安装 1、系统要求 官网提示如果要安装 Docker Engine, 需要一个CentOS 7 以及以上的稳定版本。 …

    Linux 2023年5月27日
    0113
  • Java List和Map遍历的方法,forEach()的使用

    注意: 不要在foreach循环里进行元素的remove/add操作。remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。 Java 8之前 …

    Linux 2023年6月7日
    0111
  • MySQL提示sql_mode=only_full_group_by解决办法

    MySQL异常sql_mode=only_full_group_by 原因:在MySQL 5.7后MySQL默认开启了SQL_MODE严格模式,对数据进行严格校验。会报sql_mo…

    Linux 2023年6月13日
    0129
  • 自动化集成:Pipeline流水语法详解

    前言:该系列文章,围绕持续集成:Jenkins+Docker+K8S相关组件,实现自动化管理源码编译、打包、镜像构建、部署等操作; 本篇文章主要描述Pipeline流水线用法。 一…

    Linux 2023年5月27日
    0125
  • 了解GFS

    参考: https://wenku.baidu.com/view/4392293517791711cc7931b765ce0508763275f2.html 论文翻译 https:…

    Linux 2023年6月7日
    0114
  • DDoS攻击–TCP攻击概述

    https://blog.csdn.net/qq_34777600/article/details/81945594 posted @2020-12-10 18:07 珠峰之梦 阅…

    Linux 2023年6月7日
    0104
  • 在Windows平台用Visual C++ 2022 (v143)编译PDCurses

    综述 PDCurses是一个开源的跨平台curses库,它提供了一组函数,开发者可以用这组函数在终端(Console、Terminal)上设置光标的位置和字符的显示样式。本文介绍在…

    Linux 2023年6月8日
    0121
  • Laxcus远程终端

    Laxcus集群操作系统的远程终端越来越象Linux的VIM了,除了界面风格之外,在用户使用的命令上也在向VIM靠近,原因嘛也不难理解,毕竟Laxcus是一个分布式的操作系统,处理…

    Linux 2023年6月6日
    0123
  • 安卓投屏助手(ARDC)最新版

    近几年安卓多屏协同非常火爆,以华为小米为首的各大手机厂商都推出了各自的多屏协同软件,打破手机、平板和VR等安卓设备与电脑的边界,通过多屏融合提高办公的生产力。国内安卓投屏软件有To…

    Linux 2023年6月7日
    0330
  • 搭建zabbix 4.0

    安装zabbix的依赖包 下载zabbix源码包 数据库导入数据的命令格式:mysql ­u用户名 ­p密码 数据库名称 < 要导入的数据 此时的路径是在databases/…

    Linux 2023年6月8日
    0120
  • 阿里云IoT流转到postgresql数据库方案

    之前写过一篇如使用阿里云上部署.NET 3.1自定义运行时的文章,吐槽一下,虽然现在已经2022年了,但是阿里云函数计算的支持依然停留在.NET Core 2.1,更新缓慢,由于程…

    Linux 2023年6月6日
    0112
  • IDEA 无法显示 Run Dashboard 的解决方法

    前言 最近开始接触微服务的项目,项目很多有时候本地调测需要启动多个项目,看到同事都是使用dashboard管理项目,服务和端口排列的整整齐齐。但是我dashboard里面啥都没有,…

    Linux 2023年6月14日
    0123
  • 【Example】C++ 回调函数及 std::function 与 std::bind

    回调函数是做为参数传递的一种函数,在早期C样式编程当中,回调函数必须依赖函数指针来实现。 而后的C++语言当中,又引入了 std::function 与 std::bind 来配合…

    Linux 2023年6月13日
    091
  • Kubernetes 安装Redis集群

    一、Operator 以集群模式安装 可以在service_account和 operator后面加-n 参数指定namespace 这个yaml文件中使用的资源较高,测试环境可能…

    Linux 2023年5月28日
    074
  • java程序使用ssl证书连接mysql

    bash;gutter:false; 1. 在mysql服务器上生成证书 openssl genrsa 2048 > ca-key.pem openssl req -new …

    Linux 2023年6月7日
    0105
  • 灵感来袭,基于Redis的分布式延迟队列(续)

    背景 上一篇(灵感来袭,基于Redis的分布式延迟队列)讲述了基于Java DelayQueue和Redis实现了分布式延迟队列,这种方案实现比较简单,应用于延迟小,消息量不大的场…

    Linux 2023年5月28日
    081
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球