基于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、服务器准备
我使用的是Vmware虚拟机创建的Linux系统
系统版本:Centos7.9
系统配置:2核4G
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防火墙,避免导致一些错误
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地址
③ 使用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,监听中了。
④ 测试访问Apache
访问地址为:IP:80
成功访问apache
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
完成后,系统自动生成mysql服务管理脚本,systemctl可以去调用
也是我们通过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
安装完成
查看mysql服务的名字,已经启动mysql
初始化数据库
3、部署PHP
① 使用yum安装php即可
[root@yuchao-aliyun local]# yum install php -y
② 重启httpd
[root@yuchao-aliyun local]# systemctl restart httpd
1.在安装php之后,重启httpd
2.php能够自动和apache结合工作了。
③ 测试访问php
1.进入httpd,apache的网站根目录,也就是这个网页存放的地方。
[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.这里的意思是,我们访问apache,然后看到php脚本,脚本内的代码是打印一句话。
访问地址:IP:80/index.php
此时我们已经能够正确访问到
四、部署Discuz论坛
1、下载
官网下载地址:https://www.discuz.vip/download.html
点击下载简体中文
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论坛的代码,要放在哪里
3、访问论坛网站
1、访问地址:IP:80/install
点击 我同意
2、报错php版本低,需要升级php版本
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
2、执行下面的命令删除php
yum remove php-common
3、安装php 5.6版本(php56w-devel这个不是必需的)
yum install -y php56w php56w-opcache php56w-xml php56w-mcrypt php56w-gd php56w-devel php56w-MySQL php56w-intl php56w-mbstring
4、重启httpd
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
4、安装mysql连接驱动
上述问题,可以直接yum安装
[root@yuchao-aliyun html]# yum install php-mysqli -y
重启httpd
[root@yuchao-aliyun html]# systemctl restart httpd
再次访问Discuz安装界面,刷新即可。
添加权限
[root@yuchao-aliyun html]#
[root@yuchao-aliyun html]# chmod -R 777 /var/www/html/*
刷新浏览器,再次查看问题已解决
6、开始安装
这里默认全新安装即可
7、配置数据库
因为php和mysql部署在同一台服务器,这里数据库地址填:127.0.0.1即可
设置一个管理员账号及密码
正在和数据库建立连接
8、访问论坛网站
到这步已经提示你的论坛网站安装成功,点击直接访问站点即可!
使用刚才创建的管理员账号密码进行登录
至此,你的论坛网站已经全部部署完成,可以自由发帖!
如果对你有帮助请给予支持点赞关注,后续还会更新搭建各种环境
以上是关于基于Linux自己初步搭建Kubernetes(k8s)集群基础,详细教程的主要内容,如果未能解决你的问题,请参考以下文章
Kubernetes 初步认识 Kubernetes 的一些重要概念