TSF介绍

TSF部署微服务
2.1 新建集群

2.2 新建命名空间

2.3 集群和命令空间关联

2.4 制作微服务镜像
1)制作基础基础镜像
docker load -i ubuntu-22.10.tgz
tar -xf jdk1.8.0_391.tgz

# 基础镜像使用ubuntu
FROM harbor.shsnc.project.support.local:8443/cmdb/ubuntu:22.10_zh_CN_v2
# 创建普通用户作为服务运行用户
RUN useradd --create-home --shell bin/bash -p '$1$Ty.' appuser
# 工作目录/app,服务运行文件放到/app
RUN mkdir -p app && chown -R appuser:appuser /app
# 添加jdk
ADD --chown=appuser:appuser jdk1.8.0_391 /opt/jdk1.8.0_391
# 添加环境变量
RUN echo 'export JAVA_HOME=/opt/jdk1.8.0_391' >> /etc/bash.bashrc
RUN echo 'export PATH=${PATH}:/opt/jdk1.8.0_391/bin' >> /etc/bash.bashrc
ENV PATH=${PATH}:/opt/jdk1.8.0_391/bin \
JAVA_HOME=/opt/jdk1.8.0_391 \
LANG=zh_CN.UTF-8 \
C_OPTS=${C_OPTS} \
JAVA_OPTS=${JAVA_OPTS}
# JVM 监控组件要和您的 Dockerfile 位于同一级目录,并创建 JVM 监控数据采集目录
ENV agentjar TencentCloudJvmMonitor-1.3.1-RELEASE.jar
# 若容器的基础版本为 非 gnu-libc 版本,如 Alpine,请添加如下语句
# RUN ln -sf /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
ADD --chown=appuser:appuser ${agentjar} /app/${agentjar}
RUN mkdir -p /data/tsf_apm/monitor/jvm-metrics/
# 解决时间问题
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezoneENV metricsdata /data/tsf_apm/monitor/jvm-metrics
docker build -t sncjdk8:1.
2)制作微服务镜像
docker build -t 仓库地址/服务名:版本号 . 例:docker build . -t 仓库地址/snc-platform-node:4.0
# 基础镜像使用jdk8
FROM sncjdk8:1
# 添加java服务的jar,lib,config到工作目录
ADD --chown=appuser:appuser lib /app/lib
ADD --chown=appuser:appuser config /app/config
# 建议把所有jar名称都改成app.jar,后面的启动命令就可统一java -jar app.jar
ADD --chown=appuser:appuser app.jar /app/app.jar
USER appuser
WORKDIR /app
# 容器运行建议把所有的服务统一改成8080端口
EXPOSE 8080
#CMD nohup sh -c " java ${JAVA_OPTS} -jar /app/app.jar ${C_OPTS}"
CMD nohup sh -c " java -Xloggc:${metricsdata}/gclog.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails -verbose:gc -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=8 -XX:GCLogFileSize=50M -javaagent:${workdir}/${agentjar}=hascontroller=true ${JAVA_OPTS} -Xshare:off -jar /app/app.jar ${C_OPTS}"
3)上传微服务镜像
docker push 仓库地址/服务名:版本号 例:docker push 仓库地址/snc-platform-node:4.0
3.5 新建TSF应用

3.6 TSF新建部署组

3.7 TSF容器挂载nfs
# 主机新建共享文件夹
echo "/data/nfs *(rw,sync,no_root_squash)" > /etc/exports
# 重新加载nfs配置
exportfs -rv
#查看nfs服务器挂载情况
showmount -e
3.8 部署组配置

1)TSF应用端口映射

2)查看部署组服务容器日志

3)查看集群所用微服务运行情况

优缺点
1)隔离性 提供良好的隔离运行环境,保证了服务间的安全和稳定性; 2)扩展性 能够快速进行水平扩展,存在流量高峰时,根据策略自动调整实例以满足高并发等; 3)版本控制 控制服务更新和回滚变得更加可控和简单; 4)可用性 某台节点宕机后,能自动进行检测可活实例数量与预期一致,保障服务的可用性。
1)复杂性 容器的微服务管理相比传统的架构更为复杂,提高了运维门槛; 2)资源消耗 一方面同样的服务可能需要比传统部署服务需要更多资源; 另一方面不合理的资源分配可能导致某些微服务过载,而其他服务则是资源闲置; 3)监控和日志 随着微服务数量的增加,监控系统的复杂性和和开销也会随之增加,增加相应的运维成本; 4)数据持久化管理 对一些有状态的服务需要解决需要数据的持久化和一致性。

本文作者:刘德云(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




