广告
返回顶部
首页 > 资讯 > 精选 >Ubuntu怎么搭建Kubernetes集群
  • 914
分享到

Ubuntu怎么搭建Kubernetes集群

2023-07-04 15:07:09 914人浏览 泡泡鱼
摘要

这篇文章主要介绍“ubuntu怎么搭建kubernetes集群”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Ubuntu怎么搭建Kubernetes集群”文章能帮助大家解决问题。关于 Kuberne

这篇文章主要介绍“ubuntu怎么搭建kubernetes集群”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Ubuntu怎么搭建Kubernetes集群”文章能帮助大家解决问题。

关于 Kubernetes

下面是一段来自维基百科的关于 Kubernetes 的解释:

Kubernetes(常简称为 k8s)是用于自动部署、扩展和管理「容器化(containerized)应用程序」的开源系统。该系统由 Google 设计并捐赠给 Cloud Native Computing Foundation(今属 linux 基金会)来使用。
它旨在提供“跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。它支持一系列容器工具,包括Docker等。

Kubernetes 可以为我们提供 服务发现和负载均衡、存储编排、自动部署和回滚、自动完成装箱计算、自我修复 和 密钥与配置管理 的能力。

基础环境准备

安装 VirtualBox

VirtualBox 是一种功能强大的虚拟机软件,而且是开源免费的,这是下载地址,安装 VirtualBox 非常简单,这里我就不赘述了。

下载 Ubuntu 16 系统镜像

这里我选择了 Ubuntu 16 作为系统镜像,当然你也可以使用其他系统,比如 Centos 等,Ubuntu 16 的下载地址。

虚拟机 x3

安装好了 VirtualBox,下载了 Ubuntu 16 的镜像后,我们首先需要搭建三台 Ubuntu 16 的虚拟机。这个新建虚拟机的过程也是比较简单的,一步一步往下走就可以了。新建完成后,我们需要对每台虚拟机进行相应的配置,配置时使用的用户应该是 root 用户。

虚拟机 IP

由于我们使用的是虚拟机,我们会给每台虚拟机配置网卡,让每台虚拟机都可以上网的,这里有两种方式:

  • 使用 桥接网卡,每台虚拟机的 IP 将会是宿主机网段的,支持虚拟机上网

  • 使用 NAT 网络 + 端口转发,网段自行设置,支持虚拟机上网

大家可以使用其中任意一种方式给虚拟机配置网卡,从而让虚拟机可以上网。

需要注意的是,在集群搭建完成后,集群中的每个节点的 IP 要求保持不变,否则节点需要重新加入。

简单的方式就是让虚拟机不关机,而是进入睡眠状态,下次只需唤醒即可。

在集群中,我们使用的是内网地址,可以通过 ifconfig 或者 ip addr 找到每台虚拟机对应的内网地址:

> ifconfigenp0s3    Link encap:Ethernet  HWaddr 08:00:27:6f:23:2a            inet addr:10.0.2.4  Bcast:10.0.2.255  Mask:255.255.255.0          inet6 addr: fe80::a00:27ff:fe6f:232a/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:3277016 errors:0 dropped:0 overruns:0 frame:0          TX packets:3385793 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000           RX bytes:1084480916 (1.0 GB)  TX bytes:2079122979 (2.0 GB)

这台虚拟机(master)的地址就是 10.0.2.4。

配置主机名

Kubernetes 的节点名称是由主机名决定的,所以我们可以分别设置三台虚拟机的主机名为 master、node1 和 node2,通过修改 /etc/hosts 文件来修改主机名,需要重启虚拟机:

# /etc/hosts10.0.2.4 master10.0.2.5 node110.0.2.6 node2

ssh 无密连接

在虚拟机运行起来后,我们要做的第一件事就是要连通这三台虚拟机,即配置 SSH 无密连接。
首先在其中的一台虚拟机上生成 SSH 的公私钥:

ssh-keygen -t rsa -C 'k8scat@gmail.com' -f ~/.ssh/id_rsa -q -N ''

关于 ssh-keygen 的参数说明:

  • -t rsa 指定加密算法为 RSA

  • -C 'k8scat@gmail.com' 用于提供一个备注,表明私钥的生成者

  • -f ~/.ssh/id_rsa 指定私钥生成的位置

  • -q -N '' 表示不对私钥加密码,以及使用静默的方式

将公私钥分发给另外两台虚拟机,并在三台虚拟机上都将公钥(~/.ssh/id_rsa.pub)的内容写进 ~/.ssh/authorized_keys 文件中,同时设置 ~/.ssh/authorized_keys 文件的权限为 400:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keyschmod 400 ~/.ssh/authorized_keys

配置完成后,我们将可以通过以下方式在其中一个虚拟机上连接另一台虚拟机了:

# 在 master 节点上ssh root@node1

Kubernetes 集群搭建

在弄好三台虚拟机后,我们便可以开始搭建一个拥有三个节点的 Kubernetes 的集群了。

安装 Docker

apt-get update -yapt-get install -y \  apt-transport-https \  ca-certificates \  curl \  gnupg \  lsb-releasecurl -fsSL Https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-arcHive-keyring.gpgecho \  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# INSTALL DOCKER ENGINEapt-get update -yapt-get install -y docker-ce docker-ce-cli containerd.io# Configure Docker to start on bootsystemctl enable docker.servicesystemctl enable containerd.service# Start Dockersystemctl start docker

安装 kubeadm、kubelet 和 kubectl

这里使用的是阿里云的镜像源:

# 更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包apt-get update -yapt-get install -y apt-transport-https ca-certificates curl# 下载 Google Cloud 公开签名秘钥# curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpGCurl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -# 添加 Kubernetes apt 仓库# echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.listecho "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list# 更新 apt 包索引,安装 kubelet、kubeadm 和 kubectl,并定其版本apt-get update -yapt-get install -y kubelet kubeadm kubectlapt-mark hold kubelet kubeadm kubectl

关闭 SWAP

编辑 /etc/fstab 文件并注释掉 swap 分区的配置:

#/dev/mapper/master--vg-swap_1 none            swap    sw              0       0

预先下载镜像

获取 kubeadm init 需要使用到的镜像列表:

> kubeadm config images listk8s.gcr.io/kube-apiserver:v1.21.1k8s.gcr.io/kube-controller-manager:v1.21.1k8s.gcr.io/kube-scheduler:v1.21.1k8s.gcr.io/kube-proxy:v1.21.1k8s.gcr.io/pause:3.4.1k8s.gcr.io/etcd:3.4.13-0k8s.gcr.io/coredns/coredns:v1.8.0

k8s 的镜像源对于国内用户是可望而不可即的,但我们可以先拉到国内的镜像仓或者可以使用的镜像仓

我们可以新建一个 GitHub 代码仓,里面只有一个 Dockerfile,其内容如下:

FROM k8s.gcr.io/kube-apiserver:v1.21.0

然后在阿里云的容器镜像服务 ACR 中新建一个镜像,并关联这个 gitHub 代码仓,构建出来的镜像就是我们要的 k8s 镜像,比如上面的 k8s.gcr.io/kube-apiserver:v1.21.1,但在使用的时候需要重新给镜像打标签。

在 ACR 中构建好了所有需要的镜像后,使用下面这个脚本可以快速处理给镜像打标签的任务:

# Pull images from aliyun reGIStrykubeadm config images list | sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#registry.cn-shenzhen.aliyuncs.com/k8scat#g' -e 's#/coredns/coredns#/coredns#g' | sh -x# Tag imagesdocker images | grep k8scat | awk '{print "docker tag",$1":"$2,$1":"$2}' | sed -e 's#registry.cn-shenzhen.aliyuncs.com/k8scat#k8s.gcr.io#2' | sh -xdocker tag k8s.gcr.io/coredns:v1.8.0 k8s.gcr.io/coredns/coredns:v1.8.0# Remove imagesdocker images | grep k8scat | awk '{print "docker rmi",$1":"$2}' | sh -x

初始化 master 节点

10.0.2.4 是 master 节点的 IP 地址,设置 pod 网段为 192.168.16.0/20:

> kubeadm init --apiserver-advertise-address=10.0.2.4 --pod-network-cidr=192.168.16.0/20kubeadm join 10.0.2.4:6443 --token iOShf8.40n8i0rjsehpigcl \    --discovery-token-ca-cert-hash sha256:085d36848b2ee8ae9032d27a444795bc0e459f54ba043500d19d2c6fb044b065

加入 node 节点

kubeadm join 10.0.2.4:6443 --token ioshf8.40n8i0rjsehpigcl \    --discovery-token-ca-cert-hash sha256:085d36848b2ee8ae9032d27a444795bc0e459f54ba043500d19d2c6fb044b065

分发 kubectl 配置文件

scp master:/etc/kubernetes/admin.conf /etc/kubernetes/admin.confecho 'export KUBECONFIG="/etc/kubernetes/admin.conf"' >> /etc/profilesource /etc/profile

安装网络插件

这里我们使用的是 Weave Net:

# curl -L "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" > weave-net.yaml# With IPALLOC_RANGEkubectl apply -f https://gist.githubusercontent.com/k8scat/c6a1aa5a1bdcb8c220368dd2db69bedf/raw/da1410eea6771c56e93f191df82206be8e722112/k8s-weave-net.yaml

关于“Ubuntu怎么搭建Kubernetes集群”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Ubuntu怎么搭建Kubernetes集群

本文链接: https://www.lsjlt.com/news/345777.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Ubuntu怎么搭建Kubernetes集群
    这篇文章主要介绍“Ubuntu怎么搭建Kubernetes集群”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Ubuntu怎么搭建Kubernetes集群”文章能帮助大家解决问题。关于 Kuberne...
    99+
    2023-07-04
  • Kubernetes集群怎么搭建
    本篇内容介绍了“Kubernetes集群怎么搭建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Kubernetes 是一个可移植的、可扩展的...
    99+
    2023-06-27
  • Minikube搭建Kubernetes集群
    Minikube 打开 https://github.com/kubernetes/minikube/releases/tag/v1.19.0 下载最新版本的二进...
    99+
    2022-11-13
  • Kubernetes 集群搭建(上)
    不知道各位对Kubernetes了解多少呢?如果还是有一些了解,建议你读一下这篇文章,或许对你有些许帮助 !阅读本文您需要具备一下知识点:1.Kubernetes2.kubeadm3.docker以上三点如过各位看官都知晓,那么请尽情食用,...
    99+
    2023-06-05
  • kubernetes集群怎么搭建和使用
    要搭建和使用Kubernetes集群,可以按照以下步骤进行操作:1. 安装Docker:Kubernetes需要在每个节点上安装Do...
    99+
    2023-08-24
    kubernetes
  • 怎样进行Kubernetes 集群搭建
    这期内容当中小编将会给大家带来有关怎样进行Kubernetes 集群搭建,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。yum安装需要的组件,我这里指定了具体的版本,我用的版本比较老,不过如果你是第一次用,...
    99+
    2023-06-05
  • kubernetes之statefulset搭建MySQL集群
    目录实现步骤具体代码创建一个 StatefulSet 对象来定义mysql创建一个 headless service实现步骤 在 Kubernetes 集群中创建一个 StatefulSet 对象。创建一个 headle...
    99+
    2023-04-19
    kubernetes statefulset搭建MySQL statefulset搭建MySQL集群
  • Minikube如何搭建Kubernetes集群
    这篇文章主要介绍了Minikube如何搭建Kubernetes集群,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Minikube打开 https://github....
    99+
    2023-06-29
  • Kubernetes集群的搭建方法
    本篇内容主要讲解“Kubernetes集群的搭建方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Kubernetes集群的搭建方法”吧!0. 概要使用kubeadm搭建一个单节点kuberne...
    99+
    2023-06-19
  • kubernetes集群搭建的方法是什么
    这篇文章主要介绍“kubernetes集群搭建的方法是什么”,在日常操作中,相信很多人在kubernetes集群搭建的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”kubernetes集群搭建的方法...
    99+
    2023-06-27
  • kubernetes中搭建spark集群的方式
    这篇文章主要讲解了“kubernetes中搭建spark集群的方式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“kubernetes中搭建spark集群的方式”吧!适用场景:linux系统,...
    99+
    2023-06-19
  • VirtualBox+Ubuntu16搭建Kubernetes集群的实现
    目录关于 Kubernetes基础环境准备安装 VirtualBox下载 Ubuntu 16 系统镜像虚拟机 x3虚拟机 IP配置主机名SSH 无密连接Kubernetes 集群搭建...
    99+
    2022-11-12
  • ubuntu 使用阿里云镜像源快速搭建kubernetes 1.15.2集群
    搭建k8s集群时,需要访问google,下载相关镜像以及安装软件,非常麻烦。正好阿里云提供了k8s的更新源,国内用户就可以直接使用了。 操作系统主机名IP地址功能配置ubuntu-16.04.5-server-amd64k8s-m...
    99+
    2023-01-31
    阿里 镜像 集群
  • 如何使用VirtualBox+Ubuntu16搭建Kubernetes集群
    小编给大家分享一下如何使用VirtualBox+Ubuntu16搭建Kubernetes集群,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Kubernetes 运...
    99+
    2023-06-15
  • 在Kubernetes集群中怎么搭建Istio微服务网格
    本篇内容介绍了“在Kubernetes集群中怎么搭建Istio微服务网格”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.使用sealos部...
    99+
    2023-06-30
  • kubernetes实践中的Etcd3集群搭建是怎样的
    这篇文章给大家介绍kubernetes实践中的Etcd3集群搭建是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一:Etcd简介ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统。类似于Zookeep...
    99+
    2023-06-04
  • kubernetes集群如何搭建Zabbix监控平台
    本篇内容介绍了“kubernetes集群如何搭建Zabbix监控平台”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、zabbix介绍1.z...
    99+
    2023-07-02
  • ubuntu集群搭建的方法是什么
    要搭建Ubuntu集群,可以按照以下步骤进行:1. 安装Ubuntu操作系统:在每个节点上安装Ubuntu操作系统。可以选择最新版本...
    99+
    2023-09-21
    ubuntu
  • centos6.9怎么搭建pxc集群
    这篇文章主要讲解了“centos6.9怎么搭建pxc集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“centos6.9怎么搭建pxc集群”吧!一:环境介绍:1.32.49 1.3...
    99+
    2023-06-05
  • docker怎么搭建redis集群
    要搭建Redis集群,可以使用Docker来简化部署过程。下面是一些搭建Redis集群的步骤: 首先,确保已经安装了Docker...
    99+
    2023-10-26
    docker redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作