【云原生Kubernetes项目部署】k8s集群+高可用负载均衡层+防火墙

目录

环境准备

拓朴图

项目需求

一、Kubernetes 区域可采用 Kubeadm 方式进行安装

1.1所有节点master、node01、node02

1.2所有节点安装docker

1.3所有节点安装kubeadm,kubelet和kubectl

1.4部署K8S集群

1.4.1复制镜像和脚本到 node 节点,并在 node 节点上执行脚本 

1.4.2初始化kubeadm

1.4.3master 开启集群,等待node节点加入

1.4.4提示成功,然后出现操作提示信息

在 node01和node02 节点上执行 kubeadm join 命令加入群集

1.4.5修改配置文件

1.5所有节点部署网络插件flannel

1.6查看安装

二、

2.1创建yaml文件

2.2使用yaml文件创建自主式Pod资源

2.3两个node节点的存储卷,写入不同的html文件内容

2.4验证访问网页

三、编写service对应的yaml文件,使用NodePort类型和TCP 30000端口将Nginx服务发布出去。

3.1编写service对应的yaml文件

3.2启动yaml文件

3.3访问测试

四、

4.1安装nginx服务

4.2安装keepalived服务

4.3修改keepalived的配置文件

4.4访问检测

4.5检测下是否高可用

五、

5.1防火墙服务器配置双网卡

5.1.1添加网卡

5.1.2修改地址

5.2开启路由转发

5.3客户端配置地址

5.4修改nginx+keepalived机器的网卡地址

5.5访问测试


环境准备

k8s集群
k8s集群node01192.168.246.11
k8s集群node02192.168.246.12
k8s集群master  192.168.246.10
k8s集群nginx+keepalive
负载均衡nginx+keepalive01(master)192.168.246.13
负载均衡nginx+keepalive02(backup)192.168.246.14
VIP 192.168.246.100
iptables防火墙服务器192.168.246.7
客户机12.0.0.12

拓朴图

项目需求

(1)Kubernetes 区域可采用 Kubeadm 方式进行安装。

(2)要求在 Kubernetes 环境中,通过yaml文件的方式,创建2个Nginx Pod分别放置在两个不同的节点上,Pod使用hostPath类型的存储卷挂载,节点本地目录共享使用 /data,2个Pod副本测试页面二者要不同,以做区分,测试页面可自己定义。

(3)编写service对应的yaml文件,使用NodePort类型和TCP 30000端口将Nginx服务发布出去。

(4)负载均衡区域配置Keepalived+Nginx,实现负载均衡高可用,通过VIP 192.168.10.100和自定义的端口号即可访问K8S发布出来的服务。

(5)iptables防火墙服务器,设置双网卡,并且配置SNAT和DNAT转换实现外网客户端可以通过12.0.0.1访问内网的Web服务。

一、Kubernetes 区域可采用 Kubeadm 方式进行安装

1.1所有节点master、node01、node02

关闭防火墙规则,关闭selinux,关闭swap交换

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -Xswapoff -a						#交换分区必须要关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab		#永久关闭swap分区,&符号在sed命令中代表上次匹配的结果#加载 ip_vs 模块
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done#修改主机名
hostnamectl set-hostname master01
hostnamectl set-hostname node01
hostnamectl set-hostname node02#所有节点修改hosts文件
vim /etc/hosts 
192.168.246.10 master01
192.168.246.11 node01
192.168.246.12 node02#所有节点调整内核参数

1.2所有节点安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2 
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
yum install -y docker-ce docker-ce-cli containerd.iomkdir /etc/dockercat > /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"}
}
EOF
#使用Systemd管理的Cgroup来进行资源控制与管理,因为相对Cgroupfs而言,Systemd限制CPU、内存等资源更加简单和成熟稳定。
#日志使用json-file格式类型存储,大小为100M,保存在/var/log/containers目录下,方便ELK等日志系统收集和管理日志。systemctl daemon-reload
systemctl restart docker.service
systemctl enable docker.service docker info | grep "Cgroup Driver"
Cgroup Driver: systemd

1.3所有节点安装kubeadm,kubelet和kubectl

#定义kubernetes源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOFyum install -y kubelet-1.20.11 kubeadm-1.20.11 kubectl-1.20.11#开机自启kubelet
systemctl enable kubelet.service
#K8S通过kubeadm安装出来以后都是以Pod方式存在,即底层是以容器方式运行,所以kubelet必须设置开机自启
systemctl enable kubelet.service

1.4部署K8S集群

#查看初始化需要的镜像
kubeadm config images list#在 master01 节点上传 v1.20.11.zip 压缩包至 /opt 目录
unzip v1.20.11.zip -d /opt/k8s
cd /opt/k8s/v1.20.11
for i in $(ls *.tar); do docker load -i $i; done#复制镜像和脚本到 node 节点,并在 node 节点上执行脚本加载镜像文件
scp -r /opt/k8s root@node01:/opt
scp -r /opt/k8s root@node02:/opt

1.4.1复制镜像和脚本到 node 节点,并在 node 节点上执行脚本 

复制镜像和脚本到 node 节点,并在 node 节点上执行脚本加载镜像文件
scp -r /opt/k8s root@node01:/opt
scp -r /opt/k8s root@node02:/opt#然后到各个node节点执行
for i in $(ls *.tar); do docker load -i $i; done

1.4.2初始化kubeadm


初始化kubeadm方法一:
kubeadm config print init-defaults > /opt/kubeadm-config.yamlcd /opt/
vim kubeadm-config.yaml
......
11 localAPIEndpoint:
12   advertiseAddress: 192.168.246.10		#指定master节点的IP地址
13   bindPort: 6443
......
34 kubernetesVersion: v1.20.11				#指定kubernetes版本号
35 networking:
36   dnsDomain: cluster.local
37   podSubnet: "10.244.0.0/16"				#指定pod网段,10.244.0.0/16用于匹配flannel默认网段
38   serviceSubnet: 10.96.0.0/16			#指定service网段
39 scheduler: {}   #末尾再添加以下内容
--- 
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs									#把默认的kube-proxy调度方式改为ipvs模式kubeadm init --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.log#--experimental-upload-certs 参数可以在后续执行加入节点时自动分发证书文件,K8S V1.16版本开始替换为 --upload-certs
#tee kubeadm-init.log 用以输出日志  #查看 kubeadm-init 日志
less kubeadm-init.log#kubernetes配置文件目录
ls /etc/kubernetes/#存放ca等证书和密码的目录
ls /etc/kubernetes/pki	

1.4.3master 开启集群,等待node节点加入

kubeadm init --config=kubeadm-config.yaml --upload-certs| tee kubeadm-init.log
#--experimental-upload-certs 参数可以在后续执行加入节点时自动分发证书文件,K8S V1.16版本开始替换为 --upload-certs
#tee kubeadm-init.log 用以输出日志  less kubeadm-init.log   #查看 kubeadm-init 日志ls /etc/kubernetes/   #kubernetes配置文件目录ls /etc/kubernetes/pki	  #存放ca等证书和密码的目录

1.4.4提示成功,然后出现操作提示信息

Your Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configAlternatively, if you are the root user, you can run:export KUBECONFIG=/etc/kubernetes/admin.confYou should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 192.168.246.10:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:764f6f1c1cce7eef4fbfb1585c2e1353e04429de7c6163a4fab16a1f96a6b9a5#设定kubectl
kubectl需经由API server认证及授权后方能执行相应的管理操作,kubeadm 部署的集群为其生成了一个具有管理员权限的认证配置文件 /etc/kubernetes/admin.conf,它可由 kubectl 通过默认的 “$HOME/.kube/config” 的路径进行加载。mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
在 node01和node02 节点上执行 kubeadm join 命令加入群集
kubeadm join 192.168.246.10:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:764f6f1c1cce7eef4fbfb1585c2e1353e04429de7c6163a4fab16a1f96a6b9a5

1.4.5修改配置文件

如果 kubectl get cs 发现集群不健康,更改以下两个文件vim /etc/kubernetes/manifests/kube-scheduler.yaml vim /etc/kubernetes/manifests/kube-controller-manager.yaml
# 修改如下内容
把--bind-address=127.0.0.1变成--bind-address=192.168.246.10		
#修改成k8s的控制节点master01的ip把httpGet:字段下的hosts由127.0.0.1变成192.168.246.10(有两处)
#- --port=0			# 搜索port=0,把这一行注释掉systemctl restart kubelet

1.5所有节点部署网络插件flannel

​
cd /opt
上传安装包 kuadmin.zip 
unzip kuadmin.zip   #解压拷贝到node节点
scp flannel-cni-v1.2.0.tar flannel-v0.22.2.tar 192.168.246.11:/opt
scp flannel-cni-v1.2.0.tar flannel-v0.22.2.tar 192.168.246.12:/opt加载
docker load -i flannel-v0.22.2.tar
docker load -i flannel-cni-v1.2.0.tar​kubectl apply -f kube-flannel.yml

1.6查看安装

二、

要求在 Kubernetes 环境中,通过yaml文件的方式,创建2个Nginx Pod分别放置在两个不同的节点上,Pod使用hostPath类型的存储卷挂载,节点本地目录共享使用 /data,2个Pod副本测试页面二者要不同,以做区分,测试页面可自己定义。

2.1创建yaml文件

[root@master01 ~]#kubectl run mynginx --image=nginx:1.14 --port=80 --dry-run=client -o yaml > nginx-pod.yaml
[root@master01 ~]#cd /opt
[root@master01 opt]#mkdir /opt/kaoshi
[root@master01 opt]#cd 
[root@master01 ~]#mv nginx-pod.yaml /opt/kaoshi/
[root@master01 ~]#cd /opt/kaoshi/
[root@master01 kaoshi]#ls
nginx-pod.yaml
[root@master01 kaoshi]#vim nginx-pod.yaml
apiVersion: v1
kind: Pod
metadata:labels:run: nginxname: nginx01
spec:nodeName: node01containers:- image: nginxname: nginxports:- containerPort: 80volumeMounts:- name: node01-htmlmountPath: /usr/share/nginx/htmlreadOnly: falsevolumes:- name: node01-htmlhostPath:path: /datatype: DirectoryOrCreate---
apiVersion: v1
kind: Pod
metadata:labels:run: nginxname: nginx02
spec:nodeName: node02containers:- image: nginxname: nginxports:- containerPort: 80volumeMounts:- name: node02-htmlmountPath: /usr/share/nginx/htmlreadOnly: falsevolumes:- name: node02-htmlhostPath:path: /datatype: DirectoryOrCreate

2.2使用yaml文件创建自主式Pod资源

[root@master01 kaoshi]#kubectl apply -f nginx-pod.yaml 
pod/nginx01 created
pod/nginx02 created

查看调度

#查看创建的两个pod,被调度到了不同的node节点

[root@master01 kaoshi]#kubectl get pods -o wide|grep nginx
nginx01                            1/1     Running   0          3m46s   10.244.1.14   node01   <none>           <none>
nginx02                            1/1     Running   0          3m46s   10.244.2.9    node02   <none>           <none>

2.3两个node节点的存储卷,写入不同的html文件内容

2.4验证访问网页

三、编写service对应的yaml文件,使用NodePort类型和TCP 30000端口将Nginx服务发布出去。

3.1编写service对应的yaml文件

[root@master01 kaoshi]#vim pod-nginx-service.yaml
apiVersion: v1
kind: Service
metadata:labels:run: nginxname: nginx-service
spec:type: NodePortports:- protocol: TCPport: 80targetPort: 80nodePort: 30000selector:run: nginx

3.2启动yaml文件

3.3访问测试

四、

负载均衡区域配置Keepalived+Nginx,实现负载均衡高可用,通过VIP 192.168.10.100和自定义的端口号即可访问K8S发布出来的服务。

k8s集群nginx+keepalive
负载均衡nginx+keepalive01(master)192.168.246.13
负载均衡nginx+keepalive02(backup)192.168.246.14

两台机器都要操作

4.1安装nginx服务

cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
EOFyum install nginx -y

这边也可以使用nginx的七层负载均衡upstream模块,此文章采用stream模块做四层负载均衡

stream {log_format  main  '$remote_addr $upstream_addr - [$time_local] $status $upstream_bytes_sen
t'; access_log  /var/log/nginx/k8s-access.log  main;upstream k8s-nodes {server 192.168.246.11:30000;server 192.168.246.12:30000;}   server {listen 30000;proxy_pass k8s-nodes;}   
}
nginx -t   systemctl start nginx
systemctl enable nginx
netstat -natp | grep nginx

4.2安装keepalived服务

yum install keepalived -y

4.3修改keepalived的配置文件

! Configuration File for keepalivedglobal_defs {                     # 接收邮件地址notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.loc     # 邮件发送地址smtp_server 127.0.0.1    #修改smtp_connect_timeout 30  router_id NGINX_MASTER  # #nginx01节点的为NGINX_MASTER,nginx02节点的为NGINX_BACKUP
}vrrp_script check_nginx {              #添加一个周期性执行的脚本script "/etc/nginx/check_nginx.sh"   #指定检查nginx存活的脚本路径
}vrrp_instance VI_1 {state MASTER              #nginx01节点的为 MASTER,nginx02节点的为 BACKUPinterface ens33           #指定网卡名称 ens33virtual_router_id 51      #指定vrid,两个节点要一致priority 100              #nginx01节点的为 100,nginx02节点的为 80advert_int 1authentication {auth_type PASSauth_pass 1111}
virtual_ipaddress {           #指定虚拟ip地址192.168.246.100/24}track_script {                   #指定vrrp_script配置的脚本check_nginx}
}
#!/bin/bash
killall -0 nginx
if [ $? -ne 0 ];thensystemctl stop keepalived
fi


chmod +x /etc/nginx/check_nginx.sh
#重启服务
systemctl restart keepalived.service
systemctl enable keepalived.service

4.4访问检测

4.5检测下是否高可用

虚拟ip又回到主7-7上面了

五、

iptables防火墙服务器,设置双网卡,并且配置SNAT和DNAT转换实现外网客户端可以通过12.0.0.1访问内网的Web服务。

iptables防火墙服务器192.168.246.7

5.1防火墙服务器配置双网卡

5.1.1添加网卡

5.1.2修改地址

systemctl restart network

5.2开启路由转发

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

[root@localhost network-scripts]#iptables -t nat -A POSTROUTING -o ens36 -s 192.168.246.0/24 -j SNAT --to 12.0.0.1
[root@localhost network-scripts]#iptables -t nat -A PREROUTING -i ens36 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.246.100:30000

5.3客户端配置地址

客户机12.0.0.12

systemctl restart network

5.4修改nginx+keepalived机器的网卡地址

修改nginx+keepalived机器的网卡地址,指向iptables机器的ip地址

开启路由转发

vim /etc/sysctl.confnet.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0sysctl -p

5.5访问测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/24977.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel数据自动检测,语音报警VBA代码,语音提醒

要实现这个功能&#xff0c;你可以使用以下VBA代码&#xff1a; 1. 首先&#xff0c;在Excel中插入一个ActiveX控件&#xff08;如"Microsoft Sound Control 6.0 (Spinner.Sound)"&#xff09;&#xff0c;并将其命名为"SoundControl"。 2. 然后&#xff0…

html--酷炫背景引导主页

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>ZZVIPS酷炫背景引导主页</title><meta name"viewport" content"widthdevice-width,initial-scale1,maximum-scale1,user-scala…

Python 模块完全指南:从基础语法到高级应用的全方位解析

基本语法 在 Python 中&#xff0c;模块是一种包含 Python 代码的文件&#xff0c;用于组织和重用代码。模块可以包含变量、函数、类等&#xff0c;并且可以被其他 Python 程序导入和使用。 1. 导入模块 要使用一个模块&#xff0c;需要使用 import 关键字将其导入到当前的 …

jquery.datetimepicker控件不弹出的问题

项目场景&#xff1a; CRM项目&#xff0c;在项目中涉及日期类输入框&#xff0c;打算采用平常见到的点击选择日期的方式。在浏览了网页后&#xff0c;目前比较好的解决方案是jquery.datetimepicker和flatpicker两种&#xff0c;flatpicker的缺点是官网是英文版的&#xff0c;…

Android 13.0 Launcher3单层模式workspace中app列表页排序功能实现

1.概述 在13.0的定制化开发中,对于Launcher3的功能定制也是好多的,而对于单层app列表页来说排序功能的开发,也是常有的功能这就需要了解加载app数据的流程,然后根据需要进行排序就可以了,接下来就来实现这个功能 如图: 2. Launcher3单层模式workspace中app列表页排序功能…

【漏洞复现】Apache OFBiz 路径遍历导致RCE漏洞(CVE-2024-36104)

0x01 产品简介 Apache OFBiz是一个电子商务平台&#xff0c;用于构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类应用系统。是美国阿帕奇(Apache)基金会的一套企业资源计划(ERP)系统。该系统提供了一整套基于Java的Web应用程序组件和工具。 0x02 …

EntitiesSample_7. EnableableComponents

该示例只要表达的是关闭和激活组件&#xff0c;之前的示例我们知道对于一个ECS组件需要继承IComponent接口,说明这个是一个组件&#xff0c;数组的话需要继承IBufferElementData接口&#xff0c;说明这个是一个数组元组组件&#xff0c;如果需要组件的激活控制&#xff0c;结构…

How to: Add and Customize the Ribbon Skin List and Skin Gallery

皮肤列表和皮肤库允许用户选择皮肤。本文介绍如何在功能区中显示“皮肤列表”或“皮肤库”并对其进行自定义。 DevExpress演示中心中的大多数应用程序都允许您选择皮肤。例如&#xff0c;运行XtraGrid演示并导航到皮肤功能区页面以更改当前皮肤。 在功能区UI中显示皮肤列表或…

谁能赢?阿里的通义 VS 百度的文心

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 国产AI大模型领域&#xff0c;当前有两大阵营&#xff1a; (1)以百度文心一言为代表的闭源大模型。李彦宏曾说过&#xff1a;AI大模型开源意义不大&#xff0c;百度绝不抢开发者饭碗。 (2)以阿里通义AI为代表的开…

Python怎么配置环境变量:深度探索与实战指南

Python怎么配置环境变量&#xff1a;深度探索与实战指南 在Python编程的世界中&#xff0c;环境变量的配置是一个至关重要的步骤。它不仅影响着Python解释器的运行&#xff0c;还关系到各种第三方库和工具的使用。本文将带你深度探索如何配置Python的环境变量&#xff0c;并为…

猜排列 题解

推荐在 cnblogs 上阅读 猜排列 题解 差 eps 步想到正解。 题意描述 有 m m m 个长为 n n n 序列 a 1 , … , a n a_1,\dots,a_n a1​,…,an​&#xff0c;还有 m m m 个长为 n n n 序列 b 1 , … , b n b_1,\dots,b_n b1​,…,bn​。 其中 b i b_i bi​ 是由 a i …

ipc-test.bk and mmap is also similar.

1.config tab-4 vi /etc/virc或者 1.配置文件中如果要添加注释&#xff0c;不能用#&#xff0c;要使用” 2.u命令回退上次的操作 3.复制不带行号&#xff0c;在/etc/virc的末尾添加se mousea " add tab spaceset ts4 "只设置这个就能把tab缩进为4&#xff0c;加上…

Ubuntu24.04基本配置

目录 0. 前言1. 连接网络2. 更新源3. 安装并配置vim4. 设置用户sudo免密5. 同步双系统时间6. 设置终端颜色主题7. 设置中文输入法8. 调整Dock位置等9. 设置Grub10. 其它美化设置10.1 夜灯10.2 壁纸10.3 终端加强gnome-tweaks10.4 字体 11. 常用工具11.1 邮箱配置11.2 翻译工具1…

如何微调 Llama 3 进行序列分类?

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…

图像滤波算法 python

1. 平均滤波 (Mean Filtering) 平均滤波是一种简单的线性滤波方法&#xff0c;通过取邻域内像素的平均值来平滑图像&#xff0c;从而去除噪声。 import cv2 import numpy as np# 读取图像 image cv2.imread(image.jpg)# 应用平均滤波 mean_filtered cv2.blur(image, (5, 5)…

极域卸载不干净导致无法重新安装问题:独家解决方案

文章目录 一、问题二、解决1.网上常规方法2.本贴特殊之处 三、致谢 一、问题 极域卸载不干净&#xff0c;导致无法重新安装。 二、解决 1.网上常规方法 1.regedit命令注册表删除 topdomain、mythware、{5FB4EEDF-6A79-45C3-B049-EF327CA03FCD} 2.删除极域对应tmp文件 网上…

迫在眉睫的革命:通用人工智能(AGI)与超级智能的竞赛

技术领域正处于一场将重新定义人类能力和理解边界的革命边缘。随着我们站在这一新时代的十字路口,开发通用人工智能(AGI)及其随后向超级智能的飞跃,不仅仅是一项科学努力,而是我们历史上的一个关键时刻。在这篇博客文章中,我们将深入探讨Leopold Aschenbrenner的文件《态…

Go微服务: 分布式之通过可靠消息实现最终一致性

通过可靠消息实现最终一致性 可靠消息&#xff0c;就是靠普消息&#xff0c;还是基于之前的这个案例 比如这个订单服务&#xff0c;无论你是先发送消息&#xff0c;还是先新建订单&#xff0c;它其实都是发送的不可靠消息就是说如果这个消息&#xff0c;像mysql事务那样&#…

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第七周) - 结构化预测

结构化预测 0. 写在大模型前面的话1. 词法分析 1.1. 分词1.2. 词性标注 2.2. 句法分析 2.3. 成分句法分析2.3. 依存句法分析 3. 序列标注 3.1. 使用分类器进行标注 4. 语义分析 0. 写在大模型前面的话 在介绍大语言模型之前&#xff0c;先把自然语言处理中遗漏的结构化预测补…

【机器学习】机器学习与医疗健康在智能诊疗中的融合应用与性能优化新探索

文章目录 引言机器学习与医疗健康的基本概念机器学习概述监督学习无监督学习强化学习 医疗健康概述疾病预测诊断辅助个性化治疗方案制定 机器学习与医疗健康的融合应用实时健康监测数据预处理特征工程 疾病预测与优化模型训练模型评估 诊断辅助与优化深度学习应用 个性化治疗方…