基于Linux自己初步搭建Kubernetes(k8s)集群基础,详细教程

作者&投稿:杭顺 (若有异议请与网页底部的电邮联系)
~



k8s官方网站:https://kubernetes.io/zh/,可自行查看相关文档说明

k8s-master:Ubuntu--192.168.152.100

k8s-node01:Ubuntu--192.168.152.101

k8s-node02:Ubuntu--192.168.152.102



全部已安装docker,未安装可根据官方文档安装:https://docs.docker.com/get-docker/

1,禁止swap分区

K8s的要求,确保禁止掉swap分区,不禁止,初始化会报错。

在每个宿主机上执行:


2,确保时区和时间正确

时区设置


3,关闭防火墙和selinux

ubuntu 查看防火墙命令,ufw status可查看状态,ubuntu20.04默认全部关闭,无需设置。

4,主机名和hosts设置(可选)

非必须,但是为了直观方便管理,建议设置。

在宿主机分别设置主机名:k8s-master,k8s-node01,k8s-node02

hosts设置


1,更改docker默认驱动为systemd

为防止初始化出现一系列的错误,请检查docker和kubectl驱动是否一致,否则kubectl没法启动造成报错。版本不一样,docker有些为cgroupfs,而kubectl默认驱动为systemd,所以需要更改docker驱动。

可查看自己docker驱动命令:

更改docker驱动,编辑 /etc/docker/daemon.json (没有就新建一个),添加如下启动项参数即可:

重启docker

需要在每台机器上安装以下的软件包:

2,更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包

安装软件包以允许apt通过HTTPS使用存储库,已安装软件的可以忽略

3,下载公开签名秘钥、并添加k8s库

国外 :下载 Google Cloud 公开签名秘钥:

国内:可以用阿里源即可:

请注意,在命令中,使用的是Ubuntu 16.04 Xenial 版本, 是可用的最新 Kubernetes 存储库。所以而非20.04 的focal。


4,更新 apt 包索引,安装 kubelet、kubeadm 和 kubectl,并锁定其版本

锁定版本,防止出现不兼容情况,例如,1.7.0 版本的 kubelet 可以完全兼容 1.8.0 版本的 API 服务器,反之则不可以。


只需要在master上操作即可。


1,初始化错误解决(没有报错的可以跳过这条)

错误提示1:


原因:kubectl没法启动,journalctl -xe查看启动错误信息。


解决方案:k8s建议systemd驱动,所以更改docker驱动即可,编辑 /etc/docker/daemon.json (没有就新建一个),添加如下启动项参数即可:

重启docker和kubectel


错误提示2:


原因:初始化生产的文件,重新初始化,需要删除即可

错误提示3:


解决方法:重置配置


2,初始化完成

无报错,最后出现以下,表示初始化完成,根据提示还需要操作。


根据用户是root或者普通用户操作,由于大多环境不会是root用户,我也是普通用户,所以选择普通用户操作命令:

如果是root用户,执行以下命令:

初始化完成,用最后的提示命令 kubeadm join.... 在node机器上加入集群即可。


3,主节点pod网络设置

主节点支持网络插件:https://kubernetes.io/zh/docs/concepts/cluster-administration/addons/

这里安装Calico网络插件:https://docs.projectcalico.org/getting-started/kubernetes/self-managed-onprem/onpremises

Calico官网提供三种安装方式,1)低于50个节点,2)高于50个节点,3)etcd datastore(官方不建议此方法)。

这里选择第一种:

安装完成后, kubectl get node 可查看节点状态,由NotReady变成Ready则正常,需要等几分钟完成。


1,node加入master节点

在所有node节点机器操作,统一已安装完成 kubelet、kubeadm 和 kubectl,用master初始化完成后最后提示命令加入,切记要用root用户。

加入成功后,提示如下:


再次查看kubelet服务已正常启动。


2,需注意的坑

1:加入主节点,需要 root 用户执行词条命令,才可以加入master主节点。

node在没有加入主节点master之前,kubelet服务是没法启动的,是正常情况,会报错如下:


原因是缺失文件,主节点master初始化 `kubeadm init`生成。

node节点是不需要初始化的,所以只需要用root用户`kubeadm join`加入master即可生成。

2:如果加入提示某些文件已存在,如:

原因是加入过主节点,即使没成功加入,文件也会创建,所以需要重置节点,重新加入即可,重置命令:

3,在master查看节点

加入完成后,在master节点 kubectl get node 可查看已加入的所有节点:


这里k8s集群创建完成,下一步使用可参考我的下一篇文章:k8s初步熟悉使用介绍,实践搭建nginx集群




Linux基础教程目录
最后,Linux中的Shell编程部分提供了Shell脚本的基础知识、脚本执行、变量使用、控制提示符、测试命令、算术运算、内部命令、流程控制(如复合结构、条件判断、循环控制和无条件控制)以及函数的使用,同时还包括脚本调试技巧。这一部分不仅有助于提升Linux环境下的编程能力,也为自动化任务和系统管理提供了强大...

linux具体要学点什么,基础要学什么?
linux最先要学的是Linux基础知识,学完基础知识才算入门,之后还要学习综合架构、Shell编程、数据库、云计算以及网络安全方面的知识,以下是linux基础部分要学习的内容:1. 计算机硬件、组成原理、操作系统基础、Linux起源、核心介绍及Linux安装实战入门 2. Xshell远程网络连接Linux、基础优化、远程连接网络基础...

linux操作系统如何使用
可能谁也不能给出一个准确的数字,但是有一点是可以肯定的,linux正在变得越来越流行, 面对这么多的Linux 发行版,打算从其他系统转到linux系统来的初学者可能会感到困惑,即便是忠实的 Linux 用户也没有时间和精力去挨个尝试,因此初学者在学习linux的之前,需要有一个明确的方向,选择一个适合自己的系统开始学习linux至关...

linux是什么\/?
大多数系统还包括了像提供GUI界面的XFree86之类的曾经运行于BSD的程序。除了一部分专家之外,大多数人都不自己选择每一样组件或自行设置,而是直接使用Linux套件。Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。最初的设想中,Linux是一种类似Minix这样的...

我想学习LINUX,该如何开始?
为自己创造一个学习linux的环境--在电脑上装一个linux或unix。北美用redhat,欧洲用SuSE,桌面mandrake较多,而debian是技术最先进的linux开发人员中用debian的最多,其次是redhat,从全球linux各应用领域市场份额来看无疑redhat是最多的,此外还有很多出名的发行版本。对于初学linux的人来说,建议是使用redhat,...

学习linux需要什么基础
作为过来人,告诉你学习Linux相对比较容易,重实操,重经验;从业者,目前大专学历就可以,相对开发竞争压力小;1) Linux运维岗位及工作内容 互联网Linux运维工程师是一个融合多学科(网络、系统、开发、数据库、安全、存储等)的综合性技术岗位,甚至还需要沟通、为人处世、培训、销售、管理等非技术能力,这...

电脑系统有哪几种,目前最好的是哪一种
Android是一种以Linux为基础的开放原始码作业系统,主要使用于便携装置。[8] 尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android作业系统最初由Andy Rubin开发,最初主要支援手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩充套件到平板电脑及其他领域上。2011年第一季度,Android在全...

Linux是一种什么操作系统?
它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改和无...

什么是Linux系统啊?
但有些人只把操作系统叫做"Linux"。大多数系统还包括了像提供GUI界面的XFree86之类的曾经运行于BSD的程序。除了一部分专家之外,大多数人都不自己选择每一样组件或自行设置,而是直接使用Linux套件。Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。最初的设想中,Linux...

Linux系统都有哪些版本
采用滚动更新,Arch Linux没有版号区分(下载安装光碟时只有日期区分),系统更新后套件永远都是最新的。套件管理程式不是采用主流的APT或是RPM,但受收录的套件非常丰富,甚至连冷门的都有(通常要找AUR),套件相依性的问题,于其他套件管理程式比较起来,好处理多了。二、适合系统管理员 (1) Debian 特...

合山市15648557750: 如何在linux里创建虚拟机? -
国刘正心: 你好KuLa耶,1、打开VMware,点击创建新的虚拟机.2、选择典型安装,点击下一步.3、选择稍后安装操作系统,点击下一步.4、选择Linux,在下面的单选框中选择计划安装的Linux操作系统,这里以Ubuntu为例,点击下一步.5、修改虚拟机名称和虚拟机在真实机硬盘上的存放位置,点击下一步.6、设置磁盘大小和选择是否拆分为多个文件,这里可以根据自己的需要选择,如果仅仅用来学习那么默认的20GB已经足够,点击下一步.7、最后查看虚拟机的各项硬件参数,如果需要修改则点击自定义硬件,如果没有问题,则点击完成.这样一台Linux虚拟机就创建完成了.如果需要正常使用还需要在这台虚拟机上安装Linux操作系统.

合山市15648557750: 在linux上面如何用命令行创建kvm虚拟机? -
国刘正心: 你好,在centos里面用命令行创建kvm: virt-install --name=rhel7 --disk path=/mnt/personal-data/SPool1/SVol1.img --graphics spice --vcpu=1 --ram=1024 --location=/run/media/dos/9e6f605a-f502-4e98-826e-e6376caea288/rhel-server-7.0-x86_64-...

合山市15648557750: 如何分分钟创建Linux虚拟集群 -
国刘正心: 很多小型组织使用了KVM虚拟化,但却无法在主机发生故障时采取相关措施保证高可用性.本文介绍如何采取简单的方式确保虚拟机的高可用性.你可以使用任一Linux发行版的KVM,但是这些Linux发行版在集群功能方面存在差异.Pacemaker...

合山市15648557750: 如何在linux系统下搭建ftp服务器 -
国刘正心: 在linux中一般使用vsftp这个软件搭建FTP服务器. 首先要看你的是什么linux系统,对于ubuntu、debian可通过apt-get install vsftpd命令安装,对于centos、redhat等系统可通过yum install vsftpd命令安装. 安装成功后,需要修改/etc/vsftpd.conf配置文件.这个配置文件包含登录ftp的用户、密码、访问目录的设置. 修改了配置文件后,执行/etc/init.d/vsftpd restart命令重启ftp服务器.那么ftp服务器就搭建完成了.

合山市15648557750: 如何在Linux下搭建apache服务器 -
国刘正心: 有两种安装方式 第一种 yum 源的安装方式:yum -y install httpd linux自带的apache服务 第二种源码安装如下:下载httpd-2.2.6.tar.bz2 把httpd-2.2.6.tar.bz2放到/soft 下 [root@localhost ~]#cd /soft [root@localhost soft]#tar jxvf httpd-2.2.6.tar.bz2 //解压...

合山市15648557750: 如何架设Linux无盘工作站? -
国刘正心: LINUX无盘工作站的建立,需要作客户端和服务器端两方面的工作,本文将详细叙述一下建立linux无盘工作站的步骤. 一.无盘工作站客户端 这部分的主要任务是做一个EPROM的启动文件,还包括一个处理Linux内核的工具mknbi-linux.有两...

合山市15648557750: arm - linux开发环境搭建 -
国刘正心: Linux下驱动开发 | Linux下驱动开发要自己配置编译内核,因为服务商提供的Linux内核环境可能不满足驱动程序要求,所以一般需要重新制作.准备好一个可用的Linux环境,GCC(交叉)编译器,工具链,Linux源码,驱动源码,各种实用程序...

合山市15648557750: linux 下如何搭建tomkan
国刘正心: 安装Tomcat 1)下载apache-tomcat-6.0.10.tar.gz 2) tar -zxvf apache-tomcat-6.0.10.tar.gz //解压 3) cp -R apache-tomcat-6.0.10 /usr/local/tomcat //拷贝apache-tomcat-6.0.10到/usr/local/下并重命名为tomcat 4) /usr/local/tomcat/bin/startup.sh //启动...

合山市15648557750: 怎样在linux下搭建javaweb所需的环境 -
国刘正心: 一.项目必备软件及基本思路 项目必备:虚拟机:VMware Workstation (已安装linux的 CentOS6.5版本) 项目:java web项目 (必须在本地部署编译后选择项目的webRoot,改为ROOT(ROOT包含下面四个关键文件),放到tomcat下的webapps...

合山市15648557750: 怎样在 Ubuntu 上安装 Linux Kernel 4.4 -
国刘正心: 第一步:在Linux上安装VirtualBox1、大多数的Linux发行版中,官方源都有VirtualBox,例如在Ubuntu中安装$ sudo apt-get install virtualbox第二步:下载并在VirtualBox中安装Android 4.4 kitkat2、这步挺简单的,只是需要去androud ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网