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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Linux自己初步搭建Kubernetes(k8s)集群基础,详细教程相关的知识,希望对你有一定的参考价值。

参考技术A



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基于LAMP架构搭建个人论坛网站

一、前言

什么是LAMP?

简单的说就是​Linux​+​Apache​+​MySQL​+​PHP​这是一个常规的 Web 服务器环境解决方案,使用其首字母缩写“LAMP”来引用。它是一个用于创建和管理 Web 应用程序的开源开发平台。Linux 用作后端操作系统(OS)。Apache 是Web 服务器,MySQL 是数据库,PHP 是脚本语言。

搭建自己的博客有几个好处:

  1. 发布的内容自己决定,不用别人监管
  2. 更好的推广个人品牌
  3. 自由设置域名

【Linux】基于LAMP架构搭建个人论坛网站_PHP


二、检查系统环境

1、服务器准备

我使用的是Vmware虚拟机创建的Linux系统

系统版本:Centos7.9

系统配置:2核4G 

【Linux】基于LAMP架构搭建个人论坛网站_ApaChe_02

2、配置阿里YUM源(非必须)

打开centos的yum文件夹

cd /etc/yum.repos.d/

用wget下载repo文件

wget http://mirrors.aliyun.com/repo/Centos-7.repo

注意: 如果提示​-bash: wget: 未找到命令​ 说明还没有安装wget工具

输入​yum -y install wget​ 回车进行安装。

备份系统原来的repo文件

cp CentOS-Base.repo CentOS-Base.repo.bak

替换系统原理的repo文件

mv Centos-7.repo CentOS-Base.repo

执行​​yum源​​更新命令

# 清除缓存:
yum clean all
# 生成缓存
yum makecache
# 更新
yum update && yum upgrade -y

现在你的就已经配置好了阿里云的环境了.

阿里镜像官方地址 ​​​​http://mirrors.aliyun.com/​

3、关闭内置防火墙

关闭SELINUX防火墙,避免导致一些错误

【Linux】基于LAMP架构搭建个人论坛网站_LAMP_03


4、查看是否安装apache


[root@yuchao-aliyun ~]# rpm -qa httpd


没有结果,表示未安装httpd服务,也就是没装apache这个web服务器。

5、查看是否安装MySQL


[root@yuchao-aliyun ~]# rpm -qa mysql

6、是否安装php


[root@yuchao-aliyun ~]# rpm -qa php

为什么检查,因为如果机器安装过这些软件,或者安装后,卸载了,但是没有卸载干净,导致一些依赖软件的残留。 我们再进行安装的时候,就会碰到依赖冲突的错误。 建议新手用新机器操作。


三、环境部署

1、部署Apache

① 使用yum命令安装httpd软件包

apache这个软件,在linux中软件包的名字,是叫做httpd,因此得通过yum安装这个httpd

[root@yuchao-aliyun ~]# yum install httpd -y

② 配置/etc/httpd/conf/httpd.conf文件

[root@yuchao-aliyun ~]# vim /etc/httpd/conf/httpd.conf


IP

【Linux】基于LAMP架构搭建个人论坛网站_PHP_04

③ 使用systemctl命令重启httpd服务,使用netstat -ntlp命令,查看是否有80端口监听

[root@yuchao-aliyun ~]# systemctl restart httpd
[root@yuchao-aliyun ~]#
[root@yuchao-aliyun ~]#
[root@yuchao-aliyun ~]# netstat -tnlp|grep 80
tcp6 0 0 :::80 :::* LISTEN 1334/httpd

有80端口存在,并且该httpd服务,网络连接状态已经是LISTEN,监听中了。

【Linux】基于LAMP架构搭建个人论坛网站_ApaChe_05

④ 测试访问Apache

访问地址为:IP:80

成功访问apache

【Linux】基于LAMP架构搭建个人论坛网站_PHP_06

2、部署MySQL

① 配置mysql的软件rpm源

https://dev.mysql.com/

http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

# 1.下载mysql的yum源
[root@yuchao-aliyun local]# cd /usr/local/
[root@yuchao-aliyun local]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

# 2.安装,查看mysql的yum源

[root@yuchao-aliyun local]# rpm -ivh mysql-community-release-el7-5.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-release-el7-5 ################################# [100%]

[root@yuchao-aliyun local]#
[root@yuchao-aliyun local]# ls -l /etc/yum.repos.d/
total 16
-rw-r--r-- 1 root root 675 Jan 18 17:00 CentOS-Base.repo
-rw-r--r-- 1 root root 230 Jan 18 17:00 epel.repo
-rw-r--r-- 1 root root 1209 Jan 29 2014 mysql-community.repo
-rw-r--r-- 1 root root 1060 Jan 29 2014 mysql-community-source.repo

# 3.此时可以安装mysql
yum -y install mysql-community-server

# 4.安装完毕后,启动mysql
mysqlsystemctl
systemctl

[root@yuchao-aliyun local]# systemctl start mysqld

# 5.查看mysql运行端口,进程
[root@yuchao-aliyun local]# netstat -tnlp|grep mysql
tcp6 0 0 :::3306 :::* LISTEN 1754/mysqld

[root@yuchao-aliyun local]# ps -ef|grep mysql
mysql 1587 1 0 18:43 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql 1754 1587 0 18:43 ? 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root 12022 1202 0 18:54 pts/0 00:00:00 grep --color=auto mysql

# 6.确保mysql启动后,初始化数据,进行使用
mysql使
[root@yuchao-aliyun local]# mysql_secure_installation

# 7.连接mysql服务端
[root@yuchao-aliyun local]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \\g.
Your MySQL connection id is 13
Server version: 5.6.51 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type help; or \\h for help. Type \\c to clear the current input statement.

mysql>
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

mysql>
mysql> exit
Bye

安装完成

【Linux】基于LAMP架构搭建个人论坛网站_LAMP_07

查看mysql服务的名字,已经启动mysql

【Linux】基于LAMP架构搭建个人论坛网站_PHP_08

初始化数据库

【Linux】基于LAMP架构搭建个人论坛网站_LAMP_09

3、部署PHP

① 使用yum安装php即可

[root@yuchao-aliyun local]# yum install php -y

【Linux】基于LAMP架构搭建个人论坛网站_PHP_10

② 重启httpd

[root@yuchao-aliyun local]# systemctl restart httpd

1.phphttpd
2.phpapache

③ 测试访问php

1.httpdapache
[root@yuchao-aliyun local]# cd /var/www/html/
[root@yuchao-aliyun html]#
[root@yuchao-aliyun html]# vim index.php
[root@yuchao-aliyun html]# cat index.php
<?php
phpinfo();
?>
2.访apachephp

访问地址:IP:80/index.php

此时我们已经能够正确访问到

【Linux】基于LAMP架构搭建个人论坛网站_LAMP_11

四、部署Discuz论坛

1、下载

官网下载地址:​​https://www.discuz.vip/download.html​​​

点击下载简体中文

【Linux】基于LAMP架构搭建个人论坛网站_MySQL_12

2、上传ZIP文件到Linux

Linux里安装lrzsz软件,用于上传下载、或者用FTP。

[root@yuchao-aliyun html]# yum install lrzsz -y
# 输入rz命令,xshell自动弹出文件接收功能
# 后面传输大量文件,还是使用FTP工具,一般如XFTP
[root@yuchao-aliyun html]# rz

# 上传到apache的网页根目录,这个目录下,只要存放了HTML文件,php文件,就能访问到
[root@yuchao-aliyun html]# pwd
/var/www/html
[root@yuchao-aliyun html]# ls
DiscuzX-master.zip index.php

# 安装unzip
[root@yuchao-aliyun html]# yum install -y unzip

# 解压缩Discuz代码
[root@yuchao-aliyun html]# unzip Discuz_X3.5_SC_UTF8_20230316.zip

# 最后异步,需要把/var/www/html/upload下代码,全部移动到 /var/www/html 这个位置,且必须在这个位置

注意看,最终,Discuz论坛的代码,要放在哪里

【Linux】基于LAMP架构搭建个人论坛网站_ApaChe_13

3、访问论坛网站

1、访问地址:IP:80/install

点击 我同意

【Linux】基于LAMP架构搭建个人论坛网站_LAMP_14

2、报错php版本低,需要升级php版本

【Linux】基于LAMP架构搭建个人论坛网站_PHP_15

3、升级php版本

1
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
2php
yum remove php-common
3php 5.6php56w-devel
yum install -y php56w php56w-opcache php56w-xml php56w-mcrypt php56w-gd php56w-devel php56w-MySQL php56w-intl php56w-mbstring
4httpd
service httpd restart
5
[root@localhost html]# php -v
PHP 5.6.40 (cli) (built: Jan 12 2019 13:11:15)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

【Linux】基于LAMP架构搭建个人论坛网站_ApaChe_16

4、安装mysql连接驱动

上述问题,可以直接yum安装

[root@yuchao-aliyun html]# yum install php-mysqli -y

【Linux】基于LAMP架构搭建个人论坛网站_PHP_17

重启httpd

[root@yuchao-aliyun html]# systemctl restart httpd

再次访问Discuz安装界面,刷新即可。

【Linux】基于LAMP架构搭建个人论坛网站_MySQL_18

【Linux】基于LAMP架构搭建个人论坛网站_LAMP_19

添加权限

[root@yuchao-aliyun html]# 
[root@yuchao-aliyun html]# chmod -R 777 /var/www/html/*

【Linux】基于LAMP架构搭建个人论坛网站_PHP_20

刷新浏览器,再次查看问题已解决

【Linux】基于LAMP架构搭建个人论坛网站_LAMP_21

6、开始安装

这里默认全新安装即可

【Linux】基于LAMP架构搭建个人论坛网站_ApaChe_22

7、配置数据库

因为php和mysql部署在同一台服务器,这里数据库地址填:127.0.0.1即可

【Linux】基于LAMP架构搭建个人论坛网站_PHP_23

设置一个管理员账号及密码

【Linux】基于LAMP架构搭建个人论坛网站_ApaChe_24

正在和数据库建立连接

【Linux】基于LAMP架构搭建个人论坛网站_LAMP_25

8、访问论坛网站

到这步已经提示你的论坛网站安装成功,点击直接访问站点即可!

【Linux】基于LAMP架构搭建个人论坛网站_LAMP_26

使用刚才创建的管理员账号密码进行登录

至此,你的论坛网站已经全部部署完成,可以自由发帖!

如果对你有帮助请给予支持点赞关注,后续还会更新搭建各种环境

【Linux】基于LAMP架构搭建个人论坛网站_PHP_27





以上是关于基于Linux自己初步搭建Kubernetes(k8s)集群基础,详细教程的主要内容,如果未能解决你的问题,请参考以下文章

Kubernetes 初步认识 Kubernetes 的一些重要概念

自己搭建一个k8s环境

基于Kubernetes v1.24.0的集群搭建

实践出真知----k8s初步熟悉使用介绍,实践搭建nginx集群

基于Kubernetes v1.24.0的集群搭建

kubernetes基于kubeadm搭建集群