轻量应用服务器部署k3s,并搭建可视化高性能网关 apisix

本文涉及的产品
轻量应用服务器 2vCPU 4GiB,适用于搭建Web应用/小程序
轻量应用服务器 2vCPU 4GiB,适用于网站搭建
轻量应用服务器 2vCPU 4GiB,适用于搭建容器环境
简介: k3s低资源占用集群,apisix 可视化高性能网关。小白教程

环境介绍

香港轻量 1核1G,此配置无法开启 ingress-controller,请禁用 tls,和ingress-controller 即无法使用 ApisixTls 配置证书

设置虚拟内存

mkdir swap && cd swap

# bs 为块的大小,count 创建多少个块
sudo dd if=/dev/zero of=swapfile bs=1M count=2048

# 修改权限
sudo chmod 0600 swapfile

#把生成的文件转换成 Swap 文件
sudo mkswap swapfile

# 激活文件
sudo swapon swapfile
不设置容易死机,这里我们设置 2G

安装 k3s

  • 安装目录
mkdir -p ~/softwares/k3s && cd ~/softwares/k3s && touch install_k3s.sh

主节点

#!/bin/sh

# 本地网卡设备号
export MY_ETH_DEV=eth0
# 自动获取本机IP
export MY_NODE_IP=`ip -o -4 addr list | grep $MY_ETH_DEV | awk '{print $4}' | cut -d/ -f1`

# k3s主服务器内网IP
# export MY_SERVER_IP=172.21.0.11
export MY_SERVER_IP=`ip -o -4 addr list | grep $MY_ETH_DEV | awk '{print $4}' | cut -d/ -f1`

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server \
    --disable traefik \
    --cluster-init \
    --node-ip $MY_NODE_IP \
    --node-external-ip $MY_SERVER_IP \
    --advertise-address $MY_SERVER_IP \
    --flannel-iface $MY_ETH_DEV \
    --write-kubeconfig ~/.kube/config \
    --write-kubeconfig-mode 644 \
    --node-label asrole=worker
  • 可选参数--disable traefik 禁用默认网关
  • 可选参数--cluster-init 初始化集群,为平行节点做准备
  • 可选参数--write-kubeconfig ~/.kube/config 配置路径

查看服务:cat /etc/systemd/system/k3s.service

参数请查看 https://rancher.com/docs/k3s/latest/en/installation/install-options/server-config/

基础命令

# 查看所有节点
kubectl get node
# 查看所有应用
kubectl get pod -A -o wide
# 查看所有服务
kubectl get service -A
# 查看所有入口
kubectl get ingress -A
# 查看节点运行的容器
crictl ps

安装 helm

脚本安装

mkdir -p $HOME/softwares/heml_tool && cd $HOME/softwares/heml_tool
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
bash get_helm.sh

二进制安装

  • 下载 需要的版本
  • 上传 scp helm-v3.9.0-linux-amd64.tar.gz root@127.0.0.1:/tmp/helm-v3.9.0-linux-amd64.tar.gz
  • 解压(tar -zxvf helm-v3.9.0-linux-amd64.tar.gz )
  • 在解压目中找到helm程序,移动到需要的目录中(mv linux-amd64/helm /usr/local/bin/helm)
查看结果 helm repo list

安装 apisix

安装主程序

mkdir -p $HOME/softwares/apisix_gateway && cd $HOME/softwares/apisix_gateway


helm repo add apisix https://charts.apiseven.com
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
kubectl create ns ingress-apisix
helm install apisix apisix/apisix \
  --set gateway.type=LoadBalancer \
  --set gateway.tls.enabled=true \
  --set ingress-controller.enabled=true \
  --set ingress-controller.config.apisix.serviceNamespace=ingress-apisix \
  --namespace ingress-apisix \
  --kubeconfig /etc/rancher/k3s/k3s.yaml
  • --set gateway.type=LoadBalancer 设置端口类型
  • 可选参数--set gateway.tls.enabled=true 激活 tls
  • 可选参数--set ingress-controller.enabled=true 激活ingress-controller
  • 可选参数--set ingress-controller.config.apisix.serviceNamespace=ingress-apisix 配置ingress-controller
查看资源 kubectl -n ingress-apisix get pods

安装面板

helm repo add apisix https://charts.apiseven.com
helm repo update
helm install apisix-dashboard apisix/apisix-dashboard --namespace ingress-apisix
  • 编辑服务
kubectl --namespace ingress-apisix edit service apisix-dashboard
  • 修改如下
  ports:                                        
  - name: http                                  
    port: 9000                              
    protocol: TCP                           
    targetPort: http                       
  selector:                                
    app.kubernetes.io/instance: apisix-dashboard
    app.kubernetes.io/name: apisix-dashboard    
  sessionAffinity: None                         
  type: LoadBalancer 
  • 修改用户名密码
kubectl -n ingress-apisix edit cm apisix-dashboard
  • 配置如下
    authentication:             
      secert: secert            
      expire_time: 3600         
      users:                    
        - username: admin        
          password: admin
  • 重启生效
kubectl get pods -l app.kubernetes.io/name=apisix-dashboard -o name -n ingress-apisix -o yaml | kubectl replace --force -f -

本地证书

  • eg: www.baidu.com
  • 目录如下
├── certs
│   ├── www.baidu.com.key
│   └── www.baidu.com.pem
├── create-tls-secret.sh
└── tls-www.baidu.com.yaml

1 directory, 4 files
  • 脚本
cat > create-tls-secret.sh <<-EOF
#!/usr/bin/env bash

kubectl create secret tls tls-www.baidu.com -n ingress-apisix \
  --cert=certs/www.baidu.com.pem \
  --key=certs/www.baidu.com.key
EOF

bash create-tls-secret.sh
  • 查看
kubectl get secret -n ingress-apisix
  • 创建 tls-www.baidu.com.yaml
# 定义 ApisixTls 对象
apiVersion: apisix.apache.org/v1
kind: ApisixTls
metadata:
  name: tls-www.baidu.com
  namespace: ingress-apisix
spec:
  hosts:
  - www.baidu.com
  secret:
    name: tls-www.baidu.com
    namespace: ingress-apisix
k3s文档 https://docs.rancher.cn/docs/k3s/quick-start/_index/
apisix文档 https://apisix.apache.org/zh/docs/ingress-controller/getting-started/
设置虚拟内存 https://blog.csdn.net/ChenZhC/article/details/118603442
目录
相关文章
|
21天前
|
弹性计算 安全 Linux
使用阿里云服务器安装Z-Blog博客网站流程,新手一键部署教程
本教程教你如何在阿里云99元服务器上,通过宝塔Linux面板一键部署Z-Blog博客。基于CentOS 7.9系统,从远程连接、安装宝塔面板、开放端口到部署Z-Blog全流程详解,操作简单,新手也能轻松搭建个人博客网站。
267 13
|
21天前
|
弹性计算 Devops Shell
用阿里云 DevOps Flow 实现 ECS 部署自动化:从准备到落地的完整指南
阿里云 DevOps Flow 是一款助力开发者实现自动化部署的高效工具,支持代码流水线构建、测试与部署至ECS实例,显著提升交付效率与稳定性。本文详解如何通过 Flow 自动部署 Bash 脚本至 ECS,涵盖环境准备、流水线搭建、源码接入、部署流程设计及结果验证,助你快速上手云上自动化运维。
81 0
监控 安全 Linux
45 0
|
2月前
|
监控 Java Linux
Apache NiFi项目的编译与部署于CentOS服务器
总而言之,Apache NiFi的编译和部署虽然涉及多个步骤,但这些操作步骤简明扼要,即使是不太熟悉Java或Maven的用户也能跟随指南完成。通过遵循上述步骤,您将能够在CentOS服务器上成功部署Apache NiFi,为您的数据流处理任务建立一个功能强大的平台。
143 16
|
2月前
|
资源调度 负载均衡 JavaScript
使用PM2工具部署Vue.js应用于服务器
以上步骤完成之后,你就成功利⽤ PM⼆工具将 Vuejs 应⽰程序部署至服 务 器,并且配合反向代理实现了高效稳定访问及负载均衡功能。
96 0
|
2月前
|
运维 数据可视化 数据库
一小时搞定服务器软件部署:资深工程师实测方案
本文分享了一位运维工程师在短时间内将30个不同软件部署到新服务器上的实战经验。面对全新 Rocky Linux 系统,传统手工部署方式效率低下且容易出错。作者尝试多种自动化方案后,最终选择使用自动化部署工具,通过其内置的 Docker Compose 模板和可视化界面,实现快速、批量部署,大幅提升效率,30个应用仅用约1小时完成,显著节省时间和人力成本。
|
2月前
|
Java 关系型数据库 应用服务中间件
零基础服务器搭建教程:30分钟快速部署你的第一台服务器
入职小白突遭“下马威”,首周被要求搭建包含 Odoo ERP、NGINX、MySQL 和 Java 应用的服务器,却从零基础开始摸索,历经系统配置、软件安装、服务部署等重重难关。在时间紧、技术难的困境中,意外发现一键部署工具 ,借助其自动化能力快速完成任务,不仅赢得老板认可,也开启了自主学习之路:从 systemd 到 NGINX 配置,从 Odoo 结构到 Shell 脚本编写,逐步成长为“能搭服务器的人”。
零基础服务器搭建教程:30分钟快速部署你的第一台服务器
|
2月前
|
运维 Prometheus 监控
3 年部署经验总结:用自动化工具轻松管理 300+ 服务器开源软件
三年前接手公司IT部门时,我满怀信心,却发现部署效率低下。尽管使用了GitLab、Jenkins、Zabbix等100+开源工具,部署仍耗时费力。文档厚重如百科,却难解实际困境。一次凌晨三点的加班让我下定决心改变现状。偶然看到一篇国外博客,介绍了自动化部署的高效方式,我深受启发。
126 0

热门文章

最新文章