您的位置:首页 > 游戏 > 游戏 > crm系统价格_有没有免费制作视频的软件_新产品怎样推广_上海免费关键词排名优化

crm系统价格_有没有免费制作视频的软件_新产品怎样推广_上海免费关键词排名优化

2024/12/26 22:53:55 来源:https://blog.csdn.net/watermelonbig/article/details/143500229  浏览:    关键词:crm系统价格_有没有免费制作视频的软件_新产品怎样推广_上海免费关键词排名优化
crm系统价格_有没有免费制作视频的软件_新产品怎样推广_上海免费关键词排名优化

文章目录

  • 项目基础信息
    • 工具版本
    • 测试环境
  • 下载资源文件
    • 下载sealos二进制命令文件
    • 下载k8s安装镜像和组件资源
    • 下载docker离线安装包
    • 下载Docker Registry容器镜像
  • NFS共享配置
  • coredns服务的DNS解析配置
  • 安装配置sealos、k8s服务
    • 安装sealos工具
    • 导入k8s及相关组件镜像
    • 安装 K8s 集群
    • 部署ingress组件
    • 调整Ingress资源请求体大小限制
    • 部署NFS Provisioner组件
  • 安装docker registry本地镜像仓库
    • 离线安装docker
    • 安装Docker Registry本地镜像仓库
  • 参考资料

项目基础信息

在内部网络的离线环境中,通过使用sealos工具自动化部署一套高可用的k8s服务集群,配置使用NFS共享存储,以及搭建了一个Docker Registry本地镜像仓库的服务。

近期因工作所需,不得已又捡起放下了几年的k8s,在多方咨询后,确认sealos工具是可以满足我们部署一套高可用k8s服务集群需求的,也不致于影响到后续的长期运行维护与故障处理,于是使用了几天时间部署、验证并整理出这样一篇技术资料,发与大家共享。

工具版本

  • sealos v4.3.7
  • 集群镜像版本 labring/kubernetes:v1.27.16

测试环境

操作系统版本为RHEL7.9 64
测试机信息如下:

  • 172.16.10.52 k8s master节点
  • 172.16.10.53 k8s master节点
  • 172.16.10.54 k8s master节点
  • 172.16.10.55 k8s worker节点
  • 172.16.10.56 k8s worker节点
  • 172.16.10.57 k8s worker节点
  • 172.16.10.63 NFS共享节点
  • 172.16.10.64 docker image仓库

需要注意的是容器默认使用/var/lib作为数据存储路径,在开始安装服务前,务必检查下各主机节点的数据盘空间分配使用,或者是直接挂载到/var/lib路径,或者是将数据盘空间追加到/var分区均可。

在k8s集群所有主机节点上增加/etc/hosts映射配置如下:

cat << EOF >> /etc/hosts
172.16.10.52 test-APP-10-52
172.16.10.53 test-APP-10-53
172.16.10.54 test-APP-10-54
172.16.10.55 test-APP-10-55
172.16.10.56 test-APP-10-56
172.16.10.57 test-APP-10-57
EOF

下载资源文件

需要先找一个能访问互联网的linux主机,下载需要的资源文件。拷贝到内网中离线使用。

下载sealos二进制命令文件

以下命令均使用root用户执行。

VERSION=v4.3.7
export VERSION
wget https://mirror.ghproxy.com/https://github.com/labring/sealos/releases/download/${VERSION}/sealos_${VERSION#v}_linux_amd64.tar.gz

查看下载的文件:

ls -lh
-rw-r--r--. 1 root root  61M Oct 31  2023 sealos_4.3.7_linux_amd64.tar.gz

下载k8s安装镜像和组件资源

以下命令均使用root用户执行。

在有网络的环境中导出集群镜像:

sealos pull registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.16
sealos save -o kubernetes.tar registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.16sealos pull registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4
sealos save -o helm.tar registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4sealos pull registry.cn-shanghai.aliyuncs.com/labring/calico:v3.26.1
sealos save -o cilium.tar registry.cn-shanghai.aliyuncs.com/labring/calico:v3.26.1sealos pull registry.cn-shanghai.aliyuncs.com/labring/ingress-nginx:v1.11.2
sealos save -o ingress-nginx.tar registry.cn-shanghai.aliyuncs.com/labring/ingress-nginx:v1.11.2sealos pull registry.cn-shanghai.aliyuncs.com/labring/nfs-subdir-external-provisioner:v4.0.18
sealos save -o nfs-subdir-external-provisioner.tar registry.cn-shanghai.aliyuncs.com/labring/nfs-subdir-external-provisioner:v4.0.18

下载docker离线安装包

https://download.docker.com/linux/static/stable/x86_64/docker-20.10.24.tgz

下载Docker Registry容器镜像

找一个可以访问互联网的docker容器,执行下面命令下载并导出一份容器镜像文件:

docker pull registry
docker images
docker save IMAGE_ID > registry.tar

将上面下载的各种资源文件,拷贝到内网中做离线部署使用。

NFS共享配置

我们测试环境中没有nas共享网盘资源,所以在搭建该测试服务时改为使用一台测试机自行搭建一个NFS共享服务,管理信息如下:

  • 测试机地址 :172.16.10.64
  • 文件系统共享路径:/nfsdata

在这里跳过怎么配置上述linux系统下的nfs共享服务了,有不明白的可自行查找参考资料。
需要特别注意的一点是,需要调整nfs共享路径的属主权限如下:

## nfs 目录权限问题,执行命令修改权限:
chown nfsnobody:nfsnobody /nfsdata

coredns服务的DNS解析配置

由于目前测试环境没有dns解析服务,coredns容器会因找不到dns server而启动失败,解决方法有两种:
1)在k8s集群所有测试机上手工配置一条dns server地址
cat << EOF >> /etc/resolv.conf
nameserver 114.114.114.114
EOF

对于无法访问互联网的测试机来说,其实上面的nameserver地址可以随便写一个即可。需要注意的是,还需要手工修改下测试机网卡配置文件,增加DNS1=114.114.114.114的配置内容,以防测试机重启后会丢失resolv.conf中的配置信息。

2)执行命令kubectl edit cm coredns -n kube-system
在configmap配置文件中删除以下内容:

  forward . /etc/resolv.conf {max_concurrent 1000}

保存退出后,删除相应的coredns pod即可。

安装配置sealos、k8s服务

挑选第一个k8s master节点,使用root用户执行以下配置操作。

安装sealos工具

tar zxvf sealos_${VERSION#v}_linux_amd64.tar.gz sealos
chmod 744 /usr/bin/sealos
mv sealos /usr/bin

导入k8s及相关组件镜像

将 kubernetes.tar、helm.tar、calico.tar 拷贝到离线环境, 使用 load 命令导入镜像即可:

sealos load -i kubernetes.tar
sealos load -i helm.tar
sealos load -i calico.tar
sealos load -i ingress-nginx.tar
sealos load -i nfs-subdir-external-provisioner.tar

查看集群镜像是否导入成功:

sealos imagesREPOSITORY                                                                  TAG        IMAGE ID       CREATED         SIZE
registry.cn-shanghai.aliyuncs.com/labring/kubernetes                        v1.27.16   d8938a9ce5af   11 days ago     623 MB
registry.cn-shanghai.aliyuncs.com/labring/ingress-nginx                     v1.11.2    66a7671dfb5f   2 months ago    130 MB
registry.cn-shanghai.aliyuncs.com/labring/calico                            v3.26.1    1e8350ad92f0   14 months ago   340 MB
registry.cn-shanghai.aliyuncs.com/labring/nfs-subdir-external-provisioner   v4.0.18    379a90149496   16 months ago   18 MB
registry.cn-shanghai.aliyuncs.com/labring/helm                              v3.9.4     3376f6822067   2 years ago     46.4 MB

安装 K8s 集群

在所有节点上,预安装几个工具包如下:

yum -y install socat conntrack-tools ipvsadm nfs-utils

在所有节点上,配置支持ipvs:

mkdir -p /opt/k8s/
cat << EOF > /opt/k8s/ipvs.sh
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_sh
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- nf_conntrack_ipv4
EOFchmod +x /opt/k8s/ipvs.sh
echo "/opt/k8s/ipvs.sh" >>/etc/rc.local
chmod +x /etc/rc.localipvsadm -ln

在master1节点上面,通过sealos工具一键创建k8s服务集群:

sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.16 \registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 \registry.cn-shanghai.aliyuncs.com/labring/calico:v3.26.1 \--masters 172.16.10.52,172.16.10.53,172.16.10.54 \--nodes 172.16.10.55,172.16.10.56,172.16.10.57 -p change-to-your-password
## 查看配置结果,各节点应该是Ready状态
kubectl get nodes
## 查看容器Pod实例状态,STATUS应该是Running状态
kubectl get po -A -o wide

参数说明:
参数名 参数值示例 参数说明

  • –masters 192.168.64.2 # K8s master 节点地址列表
  • –nodes 192.168.64.1 # K8s node 节点地址列表
  • –ssh-passwd [your-ssh-passwd] # ssh 登录密码
  • kubernetes labring/kubernetes:v1.27.16 # K8s 集群镜像

在干净的服务器上直接执行上面命令,不要做任何多余操作即可安装一个高可用 K8s 集群。

查看最终的完整k8s集群配置结果:

[root@test-APP-10-52 sealos-k8s]# kubectl get nodes
NAME                  STATUS   ROLES           AGE   VERSION
test-app-10-52   Ready    control-plane   23h   v1.27.16
test-app-10-53   Ready    control-plane   23h   v1.27.16
test-app-10-54   Ready    control-plane   23h   v1.27.16
test-app-10-55   Ready    <none>          23h   v1.27.16
test-app-10-56   Ready    <none>          23h   v1.27.16
test-app-10-57   Ready    <none>          23h   v1.27.16

以下仅为参考,是节点增、删管理的更多方法:

## 增加master节点
$ sealos add --nodes 192.168.64.21,192.168.64.19 
$ sealos add --masters 192.168.64.21,192.168.64.19 ## 删除 K8s 节点
$ sealos delete --nodes 192.168.64.21,192.168.64.19 
$ sealos delete --masters 192.168.64.21,192.168.64.19  

部署ingress组件

生成一个ingress-nginx服务的ConfigMap配置文件:

cat << EOF > ingress-nginx-config.yaml
apiVersion: apps.sealos.io/v1beta1
kind: Config
metadata:creationTimestamp: nullname: ingress-nginx-config
spec:data: |controller:hostNetwork: truekind: DaemonSetservice:type: NodePortmatch: registry.cn-shanghai.aliyuncs.com/labring/ingress-nginx:v1.11.2path: charts/ingress-nginx/values.yamlstrategy: merge
EOF

创建ingress-nginx服务:

sealos run registry.cn-shanghai.aliyuncs.com/labring/ingress-nginx:v1.11.2  --config-file ingress-nginx-config.yaml
[root@test-APP-10-52 sealos-k8s]# kubectl get po -A -o wide|grep nginx
ingress-nginx      ingress-nginx-controller-5dj7c                    1/1     Running   0          19h   172.16.10.56      test-app-10-56   <none>           <none>
ingress-nginx      ingress-nginx-controller-6jbqk                    1/1     Running   0          19h   172.16.10.57      test-app-10-57   <none>         <none>
ingress-nginx      ingress-nginx-controller-cqb28                    1/1     Running   0          19h   172.16.10.55      test-app-10-55   <none>           <none>

调整Ingress资源请求体大小限制

在Kubernetes中,当使用Nginx Ingress Controller时,需要调整请求体大小限制,可以直接在Ingress资源中添加相应的annotations。
1、编辑Ingress资源
在Ingress资源的YAML文件中,添加或修改以下annotations:

apiVersion: networking.k8s.io/v1  
kind: Ingress  
metadata:  name: my-ingress  annotations:  # 这里注解用于指定请求体的最大大小,这里设置为200MB。nginx.ingress.kubernetes.io/proxy-body-size: 200m  
spec:  ...

2、应用配置变更
保存并更新Ingress资源

kubectl apply -f your-ingress.yaml

3、验证配置
检查Nginx Ingress Controller的日志或使用kubectl describe命令查看Ingress资源的详细信息,确保配置生效。

部署NFS Provisioner组件

在这里遇到一个问题是,在离线网络环境中,无法正常使用helm添加仓库并部署nfs provisioner组件,也未找到更简单的解决方法,下面提供了一种临时的解决方案,仅供参考吧。

## 1、先找到sealos nfs组件的下载文件路径
find / -name nfs-subdir-external-provisioner
## 该路径与右侧类似,路径中间部分会有差别,我们以右侧路径进行示例说明:/var/lib/sealos/data/default/applications/default-dom2h16c/workdir/charts/nfs-subdir-external-provisioner
## 2、修改nfs provisioner组件的部署参数
cd /var/lib/sealos/data/default/applications/default-dom2h16c/workdir/charts/nfs-subdir-external-provisioner/
vi values.yaml

下面是values.yaml文件中需要根据实际配置信息进行修改的内容,重点是replicaCount、nfs.server、nfs.path这几个参数值:

replicaCount: 2
strategyType: Recreateimage:repository: registry.k8s.io/sig-storage/nfs-subdir-external-provisionertag: v4.0.2pullPolicy: IfNotPresent
imagePullSecrets: []nfs:server: 172.16.10.63path: /nfsdatamountOptions:volumeName: nfs-subdir-external-provisioner-root# Reclaim policy for the main nfs volumereclaimPolicy: Retain

执行创建nfs provisioner服务的命令:

cd /var/lib/sealos/data/default/applications/default-dom2h16c/workdir
./nfs-subdir-external-provisioner.sh
Release "nfs-subdir-external-provisioner" has been upgraded. Happy Helming!
NAME: nfs-subdir-external-provisioner
LAST DEPLOYED: Wed Oct 30 17:16:58 2024
NAMESPACE: nfs-provisioner
STATUS: deployed
REVISION: 4
TEST SUITE: None

查看nfs 驱动组件配置结果:

## 查看nfs deployment:
[root@test-APP-10-52 sealos-k8s]# kubectl get deployment -A -o wide|grep nfs
## 查看nfs ReplicaSet:
[root@test-APP-10-52 sealos-k8s]# kubectl get ReplicaSet -A -o wide|grep nfs
## 查看nfs storageclass:
[root@test-APP-10-52 sealos-k8s]# kubectl get sc -A -o wide|grep nfs
## 查看nfs provisioner容器:
[root@test-APP-10-52 sealos-k8s]# kubectl get po -A -o wide|grep nfs
nfs-provisioner    nfs-subdir-external-provisioner-7fccc96d5-kwz5w   1/1     Running   0          44m   100.93.100.133    test-app-10-55   <none>           <none>
nfs-provisioner    nfs-subdir-external-provisioner-7fccc96d5-nq6t7   1/1     Running   0          70m   100.107.99.195    test-app-10-56   <none>           <none>
## 如果继续查看容器配置详情,可执行以下命令:
[root@test-APP-10-52 sealos-k8s]# kubectl describe pod nfs-subdir-external-provisioner-7fccc96d5-kwz5w -n nfs-provisioner

设置nfs-client为默认使用的storageclass类:

kubectl get sc -A -o wide
kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

安装docker registry本地镜像仓库

在镜像仓库主机节点上执行。

离线安装docker

tar -zxvf ./docker-20.10.24.tgz
cp docker/* /usr/bin/

配置docker服务管理:

cat << EOF > /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
EOF

配置docker服务启动管理:

systemctl daemon-reload
systemctl enable docker.service
systemctl start docker
systemctl status docker
## 查看docker版本信息:
docker -v

安装Docker Registry本地镜像仓库

以下配置,是在镜像仓库节点上面执行。
预先检查与配置:

  • 检查并为镜像仓库节点挂载数据盘 /data
  • 配置并开放系统防火墙端口:
systemctl enable firewalld
systemctl start firewalld
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.16.10.52" port protocol="tcp" port="5000" accept'
## 以上规则仅为示例,在实际部署时需按细粒度为所有访问镜像仓库的ip配置访问权限
firewall-cmd --reload

特别注意:该主机节点启动了firewalld系统墙服务后,轻易不可再做变更,否则会干扰docker容器的数据包转发链正常运行。如果一定要修改系统墙规则,那么在变更firewalld服务后,需要重启下服务systemctl restart docker。

导入registry离线镜像包:

docker load < registry.tar

运行docker私有仓库服务:

docker run -d -p 5000:5000 --restart always --name registry -v /data/registry/:/tmp/registry --privileged=true registry

登录与退出容器的方法:

docker exec -it container\_id /bin/sh

注意在退出容器时,不可执行exit,这会导致容器实例直接关停。正确退出容器的方法是连续执行以下两个命令的组合: Ctrl+P Ctrl+Q

查看仓库中的镜像信息:

curl -XGET http://172.16.10.64:5000/v2/_catalog

配置linux客户端使用http协议访问私有仓库并推送容器镜像,可参考以下方法:

注意在镜像仓库的服务器端是不需要调整配置的

vi /etc/docker/daemon.json
{"insecure-registries": ["0.0.0.0:5000"]
}

参考资料

  • https://sealos.io/zh-Hans/docs/category/quick-start-1
  • https://blog.csdn.net/weixin_37926734/article/details/123279987
  • https://www.cnblogs.com/netcore3/p/16982828.html

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com