Ubantu k8s集群搭建(1个Master和2个Node节点)

1. 环境准备

虚拟机/服务器:
硬件配置:2核CPU、4G内存、20G硬盘。
Ubantu版本:ubuntu-20.04.6-desktop-amd64

来源:http://mirrors.aliyun.com/ubuntu-releases/20.04/

Ubantu版本:ubuntu-18.04.6-desktop-amd64

来源:http://mirrors.aliyun.com/ubuntu-releases/18.04/
查询三个虚拟机的IP

2. 初始化系统

以下操作在三台机器上都需要执行

2.1 更改主机名

sudo hostnamectl set-hostname k8s-master
sudo hostnamectl set-hostname k8s-node1
sudo hostnamectl set-hostname k8s-node2

2.2配置网卡ip

联网方式参考

https://blog.csdn.net/m0_46586460/article/details/141463889?spm=1001.2014.3001.5501

使用ifconfig查询各台虚拟机的IP
我的如下:

192.168.174.129 k8s-master
192.168.174.134 k8s-node1
192.168.174.133 k8s-node2

2.3 修改hosts文件

大型环境可以使用 DNS 的方式来使主机名和 ip 互相解析

sudo vim /etc/hosts

或者nano方式编辑,对hosts进行补充

sudo nano /etc/hosts

192.168.174.129 k8s-master
192.168.174.134 k8s-node1
192.168.174.133 k8s-node2

2.4 关闭防火墙

sudo systemctl stop ufw.service
sudo systemctl disable ufw.service   #开机禁用
sudo systemctl status ufw.service
ufw disable

测试网络是否正常
相互ping

192.168.174.129 k8s-master
192.168.174.134 k8s-node1
192.168.174.133 k8s-node2

2.6 禁用 swap

systemctl stop swap.target
systemctl status swap.target
systemctl disable swap.target   #开机禁用
systemctl stop swap.img.swap
systemctl status swap.img.swap

关闭虚拟交换分区
sudo nano /etc/fstab
将 包含swap 的一行注释掉

2.7 修改内核参数

安装 ipvsadm

apt install -y ipvsadm

sudo tee /etc/sysctl.d/k8s.conf << 'EOF'
net.ipv4.ip_forward = 1
EOF

sudo sysctl -p /etc/sysctl.d/k8s.conf 

这两条命令共同完成了在 Linux 系统上启用 IP 转发的任务,这对于 Kubernetes 集群中的节点来说是必要的。第一条命令创建了一个配置文件,将 net.ipv4.ip_forward 设置为 1(启用状态),第二条命令则应用了这个设置

2.8 时间同步
先查看时区是否正常,不正确则替换为上海时区

date
timedatectl set-timezone Asia/Shanghai   #设置时区
apt -y install ntp	 	#安装ntp服务
systemctl start ntp
systemctl enable ntp

2.9 安装 docker

apt install -y docker.io
systemctl status docker
systemctl enable docker:开机自启
#配置镜像下载加速

sudo mkdir -p /etc/docker
nano /etc/docker/daemon.json

{
  "registry-mirrors": ["https://docker.m.daocloud.io","https://p5lmkba8.mirror.aliyuncs.com","https://registry.docker-cn.com"]
}

sudo systemctl daemon-reload:重新加载配置文件
sudo systemctl restart docker:重启docker
docker info | grep -i “Cgroup Driver”:查看驱动是否更换
docker ps:测试docker命令是否可以正常使用

2.10 使用阿里云 kubernetes 镜像
Kubernetes 镜像配置
#下载安装源的gpg秘钥

apt  install curl 
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -

cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt update
sudo apt install -y kubeadm=1.20.8-00 kubelet=1.20.8-00 kubectl=1.20.8-00

查看版本

apt-mark hold kubeadm kubelet kubectl:为设置相应资源不自动更新,此处不执行
systemctl enable kubelet.service:开机自启
kubeadm version
kubelet --version
kubectl version --client

3.初始化Master节点

只在Master节点操作

sudo kubeadm init \
--kubernetes-version v1.23.6 \
--apiserver-advertise-address=192.168.10.97 \
--image-repository registry.aliyuncs.com/google_containers

在这里插入图片描述
将 kubeadm join 这一段命令记下来,后面加入节点时会用到。

kubeadm join 192.168.174.129:6443 --token 5f4gh7.wunr7hwt4dookojj --discovery-token-ca-cert-hash sha256:14441b1d641f55e42b8ac10b361edb360b66a9846a637f7c51250f52b7b7eaf8

按提示操作
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown ( i d − u ) : (id -u): (idu):(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf
kubectl get pods -A -o wide

4.加入节点

以下操作在 node1 和 node2 执行。
kubeadm join 192.168.174.129:6443 --token r3a55n.uejg90ywc13ffoke --discovery-token-ca-cert-hash sha256:14441b1d641f55e42b8ac10b361edb360b66a9846a637f7c51250f52b7b7eaf8
在这里插入图片描述
查看是否加入成功
可以看到 node1 和 node2 已经加入到集群中
在这里插入图片描述
执行下面的命令

echo “export KUBECONFIG=/etc/kubernetes/admin.conf” >> /etc/profile
source /etc/profile

5.部署Cilium

参考(参考方式一即可):

https://blog.csdn.net/m0_46586460/article/details/141469659?spm=1001.2014.3001.5502

部署成功后,节点全部Ready
在这里插入图片描述

6.构建自定义镜像

https://blog.csdn.net/m0_46586460/article/details/141470460?spm=1001.2014.3001.5502

7.在Node1 Node2部署自定义镜像的Pod

根目下 建立文件夹 mkdir Deployment_yaml
进入 文件夹后,建立yaml文件

nano multi-func-deployment.yaml

 apiVersion: apps/v1
kind: Deployment
metadata:
  name: multi-func-deployment
  labels:
    app: multi-func
spec:
  replicas: 3  # 部署3个Pod副本
  selector:
    matchLabels:
      app: multi-func
  template:
    metadata:
      labels:
        app: multi-func
    spec:
      containers:
      - name: multi-func
        image: 192.168.174.131:5000/multi_func:v1.0  #根据你的镜像地址填写
        ports:
        - containerPort: 80  # 根据你的应用需求修改

在这里插入图片描述

如果跟着步骤6,不是请忽略:

进入第一个pod后,curl另一个pod的http端口()
在这里插入图片描述

部分流程转载博客(修改流程和相关参数)

https://blog.csdn.net/weixin_60197334/article/details/136735056

好的,以下是在虚拟机上通过 Nginx 搭建 Web 服务器的步骤: 1. 安装 Nginx 在终端中使用以下命令安装 Nginx: ``` sudo apt-get update sudo apt-get install nginx ``` 2. 启动 Nginx 服务 安装完成后,使用以下命令启动 Nginx 服务: ``` sudo systemctl start nginx ``` 可以使用以下命令检查 Nginx 服务是否已经启动: ``` sudo systemctl status nginx ``` 如果 Nginx 服务已经启动,则终端中会显示 Active(运行中)。 3. 配置 Nginx Nginx 的默认配置文件位于 /etc/nginx/nginx.conf。可以使用以下命令打开该文件: ``` sudo nano /etc/nginx/nginx.conf ``` 在该文件中,可以配置 Nginx 的监听端口、服务器名称以及反向代理等信息。在这里,我们以配置一个简单的 Web 服务器为例。 在 http 部分中添加以下内容: ``` server { listen 80; server_name example.com; root /var/www/html; index index.html; } ``` 其中,listen 表示监听端口,server_name 表示服务器名称,root 表示 Web 服务器的根目录,index 表示默认打开的页面。 4. 创建 Web 服务器的根目录 根据上面的配置文件,Web 服务器的根目录位于 /var/www/html。使用以下命令创建该目录: ``` sudo mkdir -p /var/www/html ``` 可以在该目录下创建一个简单的 HTML 文件,用于测试 Web 服务器是否正常工作。使用以下命令创建 index.html 文件: ``` sudo nano /var/www/html/index.html ``` 在该文件中添加以下内容: ``` <!DOCTYPE html> <html> <head> <title>My Web Server</title> </head> <body> <h1>Welcome to my web server!</h1> </body> </html> ``` 5. 测试 Web 服务器是否正常工作 完成上述步骤后,可以使用浏览器访问 Web 服务器。在浏览器地址栏中输入服务器的 IP 地址或域名,例如 http://localhost 或 http://example.com,如果一切正常,应该能够看到显示“Welcome to my web server!”的页面。 以上就是在虚拟机上通过 Nginx 搭建 Web 服务器的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值