基于Ubuntu-22.04安装K8s-v1.28.2实验(四)使用域名访问网站应用

ubuntu,k8s,v1 · 浏览次数 : 0

小编点评

**安装 MetalLB** 1. 创建一个名为 `config.yaml` 的 YAML 文件,配置 MetalLB。 2. 创建一个名为 `config.yamlapiVersion` 的 YAML 文件,定义 Kubernetes 中 MetalLB 的版本。 3. 将 `config.yaml` 和 `config.yamlapiVersion` 文件应用到 Kubernetes 集群中。 4. 验证 MetalLB 安装成功,可以使用 `kubectl get pods -n metallb-system` 命令检查。 **验证安装** 1. 使用 `kubectl get pods -n metallb-system` 命令检查 MetalLB 中的 Pod 列表。 2. 确保 `LoadBalancer` 类型的 service 获取到外部地址安装 `ingress-nginx` 应用。 3. 使用 `http`域名访问网站应用创建 Kubernetes Secret。 4. 使用 `kubectl apply -f nginx-ingress.yaml# nginx-ingress.yamlapiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: nginx-ingressspec: ingressClassName: \"nginx\"` 创建 Kubernetes Secret。 5. 使用 `curl`或`wget`命令从证书和私钥中获取证书和私钥。 6. 创建一个名为 `wxy-secret` 的 Secret,存储证书和私钥。 7. 使用 `kubectl apply -f nginx-ingress.yaml# nginx-ingress.yamlapiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: nginx-ingressspec: ingressClassName: \"nginx\"` 创建 Kubernetes Secret。 **其他说明** * `config.yaml` 文件中需要包含 MetalLB 的配置参数,例如地址池、端口和证书路径。 * `config.yamlapiVersion` 文件中需要指定 MetalLB 的版本。 * `nginx-ingress.yaml` 文件中的 `rules`属性定义了如何匹配域名并指向 MetalLB 服务。 * 请确保 Kubernetes 集群已配置成 `ingress-nginx` 服务。

正文

安装负载均衡metalb

安装metalb

kubectl create namespace metallb-system

配置metalb

#kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"
kubectl apply -f config.yaml
#config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.215.100-192.168.215.199 #改成IP分配的范围

3. 部署 MetalLB:使用以下命令将 MetalLB 部署到 Kubernetes 集群中。

kubectl apply -f metallb.yaml

4. 验证安装

kubectl get pods -n metallb-system

安装成功如下图,我们可以看到LoadBalancer类型的service获取到外部地址
image

安装ingress-nginx

应用ingress,我们会发现没有外部IP,因为需要安装ingress-nginx

image

部署ingress-nginx

kubectl apply -f deploy.yaml #deploy.yaml我把镜像传到阿里云镜像服务器,不然国外镜像无法访问

2. 验证安装:运行以下命令,确保 Ingress-Nginx 正常运行。

image

使用http域名访问网站应用

#nginx-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
spec:
  ingressClassName: "nginx" #这个参数没有的ingress将分配不到IP
  rules:
    - host: test.wxy.kim
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: nginx-service
                port:
                  number: 80

使用https访问网站应用

创建 Kubernetes Secret:将证书和私钥存储在 Kubernetes Secret 中。使用以下命令创建一个 Secret:

 kubectl create secret tls wxy-secret --cert=/root/cert/fullchain.pem --key=/root/cert/privkey.pem

kubectl apply -f nginx-ingress.yaml

# nginx-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
spec:
  ingressClassName: "nginx" #这个参数没有的ingress将分配不到IP
  tls:
    - hosts:
        - test.wxy.kim
      secretName: wxy-secret
  rules:
    - host: test.wxy.kim #你的域名
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: nginx-service
                port:
                  number: 80

文章中的配置文件

与基于Ubuntu-22.04安装K8s-v1.28.2实验(四)使用域名访问网站应用相似的内容:

基于Ubuntu-22.04安装K8s-v1.28.2实验(四)使用域名访问网站应用

安装负载均衡metalb 安装metalb kubectl create namespace metallb-system 配置metalb #kubectl create secret generic -n metallb-system memberlist --from-literal=secr

Ubuntu22.04 安装单机版kubernetes

# 前言 上期讲到要实现.net 6框架下的EF Core操作数据库基本增删改查,没有及时兑现。没有兑现的原因就是因为安装kubernetes。安装kubernetes的过程是灾难性的,也是十分顺利的。灾难性是因为在安装kubernetes过程中误操作,在/etc下执行了一个重置的命令导致我的工作站

基于Canal实现MySQL 8.0 数据库数据同步

前言 服务器说明 | 主机名称 | 操作系统 | 说明 | |--|--| | | 192.168.11.82 | Ubuntu 22.04 | 主库所在服务器 | | 192.168.11.28 | Oracle Linux Server 8.7 | 从库所在服务器 | 版本说明 MySQL版本:

使用 Docker 部署 WebTop 运行 Linux 系统

1)项目介绍 GitHub:https://github.com/linuxserver/docker-webtop WebTop 它是一个基于 Linux ( Ubuntu 和 Alpine 两种版本)的轻量级容器,具有在浏览器中运行的完整桌面环境,具有基本的窗口管理器、像素完美的渲染分辨率、音频

关于sar的学习

# 关于sar的学习 ## 背景 ``` 公司一套基于某冷门Python架构的系统前几天出现异常卡顿. 当时安装的时候必须使用ubuntu系统. 所以当时默认安装的ubuntu1804, 本来想尝试使用一下sar查看卡顿时期的系统状况 但是发现没有默认安装. 并且最近虽然有node-exporter

Docker 基础 - 3

Web 服务器与应用 Nginx 我的Nginx Docker镜像 ## 设置继承自己创建的 sshd 镜像 FROM caseycui/ubuntu-sshd ## 维护者 LABEL maintainer="CaseyCui cuikaidong@foxmail.com" ## 安装 nginx

[转帖]Linux基础命令---mysql

https://www.cnblogs.com/wj78080458/p/10848990.html mysql mysql是一个简单的sql shell,它可以用来管理mysql数据库。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora。 1、语法 mysql [

[转帖]Linux基础命令---echo打印内容到标准输出

https://www.cnblogs.com/wj78080458/p/11027763.html echo echo指令可以输出内容到标准输出,以空白分割字符串,并且后面增加换行。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora。 1、语法 echo [-ne

[转帖]基本系统调用性能lmbench测试方法和下载

简介 Lmbench是一套简易,可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具。一般来说,它衡量两个关键特征:反应时间和带宽。 Lmbench旨在使系统开发者深入了解关键操作的基础成本。 本文以银河麒麟/Ubuntu为例。 文末获取【lmbench】工具下载地址 测试方法

[转帖]ubuntu开启sar记录日志

https://www.cnblogs.com/ishmaelwanglin/p/16955227.html 背景 之前一直用CentOS系统,最近换到了ubuntu的,sar日志对分析系统状态和基本性能比较有帮助,发现在ubuntu上默认是不记录sar日志的 安装 apt-get install