Kubernetes的原理及应用详解(三)

本系列文章简介:

        随着云计算和容器技术的迅猛发展,Kubernetes(简称K8s)作为一种开源的容器编排和管理平台,已经成为了目前最流行的容器编排工具之一。Kubernetes的出现大大简化了容器化应用的部署和管理,极大地提高了应用的弹性、可伸缩性和可靠性。

        本系列文章将介绍Kubernetes的原理和应用并进行详细解析。首先,我们将深入探讨Kubernetes的基础概念和架构,包括Master节点和Worker节点的角色分工、Pod、Replication Controller、Service等核心组件的功能和作用。接着,我们将详细讲解如何使用Kubernetes进行应用的部署、扩展和管理,包括使用YAML文件定义应用的配置和资源需求、使用Deployment和Service进行应用的更新和访问控制等。此外,我们还将介绍Kubernetes的高级特性,如水平扩展、自动伸缩和滚动更新等,并探讨Kubernetes在微服务架构和云原生应用中的应用场景和最佳实践。

        希望通过本系列文章的学习,大家能够全面了解Kubernetes的原理和应用,并能够熟练地使用Kubernetes进行应用的部署和管理。无论是开发者、运维人员还是架构师,都能够通过Kubernetes来构建可弹性、可伸缩、可靠的容器化应用系统,为企业业务的快速发展提供有力的支撑。

        欢迎大家订阅《Java技术栈高级攻略》专栏,一起学习,一起涨分!

目录

一、前言

二、Kubernetes的实践与操作

2.1 Kubernetes集群的搭建与配置

2.2 Pod的创建与管理

2.3 Service的创建与使用

2.4 Deployment的滚动更新与回滚

2.5 Ingress的配置与使用

2.6 持久卷与存储类的使用

2.7 自定义资源的创建与管理

三、Kubernetes的高级特性

四、Kubernetes的扩展与集成

五、Kubernetes的未来展望

六、总结与最佳实践

七、结语


一、前言

        Kubernetes是一个开源的容器编排和管理平台,用于自动化应用部署、扩展和管理。它最初由Google开发,现已由Cloud Native Computing Foundation(CNCF)进行维护。Kubernetes可以帮助用户在容器化的环境中有效地管理和运行应用程序。

        本文将跟随《Kubernetes的原理及应用详解(二)》的进度,继续介绍Kubernetes。希望通过本系列文章的学习,您将能够更好地理解Kubernetes的内部工作原理,掌握Kubernetes的使用技巧,以及通过合理的设计完成最佳实践,充分发挥优化Kubernetes的潜力,为系统的高效运行提供有力保障。

二、Kubernetes的实践与操作

2.1 Kubernetes集群的搭建与配置

Kubernetes是一个开源的容器编排和管理平台,可以帮助您在生产环境中管理多个容器化应用程序。下面我们将讨论如何搭建和配置一个Kubernetes集群。下面是一些步骤:

  1. 确保您的机器满足Kubernetes的最低要求。您需要至少两台运行Linux操作系统的机器,具有至少2GB的内存和2个CPU核心。您还需要在每台机器上安装Docker和kubelet。

  2. 在所有机器上安装和配置Docker。Docker是一个开源的容器化平台,可以帮助您轻松地创建、打包和分发应用程序。您可以按照Docker的官方指南安装和配置Docker。

  3. 在所有机器上安装kubelet。Kubelet是Kubernetes集群的一个重要组件,负责管理容器的生命周期和资源分配。您可以按照Kubernetes的官方文档安装和配置kubelet。

  4. 配置主节点。选择一个机器作为主节点,并为其配置必要的服务。您可以使用kubeadm工具来初始化主节点。在主节点上运行以下命令:

    $ sudo kubeadm init
    

    这将下载和安装所需的Kubernetes组件,并生成一个用于其他节点加入集群的令牌。

  5. 配置网络。Kubernetes需要一个网络插件来为集群中的容器提供网络连接。您可以选择使用Flannel、Calico或Weave等插件。按照所选插件的官方文档进行配置。

  6. 加入从节点。将其他机器加入集群,使其成为从节点。从节点上运行以下命令,并使用先前生成的令牌:

    $ sudo kubeadm join --token <令牌> <主节点的IP地址>:<端口>
    

    这将下载和安装所需的组件,并将从节点加入到集群中。

  7. 验证集群。在主节点上运行以下命令,确保所有节点都成功加入集群:

    $ kubectl get nodes
    

    这将显示集群中所有节点的状态。

  8. 配置kubectl命令行工具。kubectl是Kubernetes的命令行工具,用于管理和操作集群。您需要在本地机器上安装kubectl,并为其配置集群访问。运行以下命令:

    $ sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config
    $ sudo chown $(id -u):$(id -g) $HOME/.kube/config
    

    然后,您可以通过以下命令验证kubectl是否正常工作:

    $ kubectl get nodes
    

    这将显示集群中所有节点的状态。

这样,您就成功地搭建和配置了一个Kubernetes集群。您可以使用kubectl命令行工具来管理和操作集群中的容器化应用程序。更多关于Kubernetes的操作和实践,请参考Kubernetes的官方文档。


2.2 Pod的创建与管理

在Kubernetes中,Pod是最小的部署单元,它是一个或多个容器的组合。在本文中,我们将讨论如何创建和管理Pod。

  1. 创建一个Pod定义文件。Pod定义文件是一个YAML或JSON格式的文件,描述了Pod的配置和规范。例如,下面是一个简单的Pod定义文件的示例:
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
    - name: my-container
      image: nginx
      ports:
        - containerPort: 80

在这个示例中,我们定义了一个名为my-pod的Pod,其中包含一个名为my-container的容器。该容器使用nginx镜像,并将容器端口80映射到主机的随机端口。

        2. 使用kubectl命令创建Pod。使用以下命令来创建Pod:

kubectl create -f pod.yaml

其中,pod.yaml是您创建的Pod定义文件的名称。

        3. 验证Pod的创建状态。您可以使用以下命令来查看Pod的状态:

kubectl get pods

这将显示您创建的所有Pod的状态。在创建过程中,Pod的状态可能是“Pending”,表示正在等待容器创建和调度。

        4. 获取Pod的详细信息。要获取有关特定Pod的更多详细信息,可以使用以下命令:

kubectl describe pod my-pod

其中,my-pod是您要获取详细信息的Pod的名称。

        5. 删除Pod。如果您想删除一个Pod,可以使用以下命令:

kubectl delete pod my-pod

其中,my-pod是要删除的Pod的名称。

        6. 其他Pod操作。除了创建和删除Pod之外,还可以执行其他操作,例如使用kubectl命令来查看Pod日志、执行shell命令、调整Pod副本数量等。

# 查看Pod日志
kubectl logs my-pod

# 在Pod中执行shell命令
kubectl exec -it my-pod -- /bin/bash

# 调整Pod副本数量
kubectl scale deployment/my-deployment --replicas=3

以上是一些基本的Pod的创建和管理操作。Kubernetes还提供了更多高级特性,例如Pod之间的通信和调度策略等。您可以参考Kubernetes的官方文档以了解更多关于Pod的实践与操作的信息。


2.3 Service的创建与使用

在Kubernetes中,Service是一种用于暴露Pod或一组Pod的网络服务的抽象。Service提供了一种稳定的网络地址,以便其他应用程序可以通过该地址访问Pod。

以下是创建和使用Service的实践操作:

  1. 创建一个Service定义文件。Service定义文件是一个YAML或JSON格式的文件,用于描述Service的配置和规范。例如,下面是一个简单的Service定义文件的示例:
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: ClusterIP

在这个示例中,我们定义了一个名为my-service的Service,它将流量转发到具有标签app=my-app的Pod。该Service将容器端口80映射到Pod的端口8080,并使用ClusterIP类型,这意味着Service只能在Kubernetes集群内部使用。

        2. 使用kubectl命令创建Service。使用以下命令来创建Service:

kubectl create -f service.yaml

其中,service.yaml是您创建的Service定义文件的名称。

        3. 验证Service的创建状态。您可以使用以下命令来查看Service的状态:

kubectl get services

这将显示您创建的所有Service的状态。在创建过程中,Service的状态可能是“Pending”,表示正在等待加载和配置。

        4. 获取Service的详细信息。要获取有关特定Service的更多详细信息,可以使用以下命令:

kubectl describe service my-service

其中,my-service是您要获取详细信息的Service的名称。

        5. 使用Service。一旦Service创建并准备就绪,您可以使用Service的Cluster IP来访问Pod。如果您的Service是ClusterIP类型,您可以在Kubernetes集群内部使用以下命令访问Service:

kubectl run curl --image=radial/busyboxplus:curl -i --tty --rm

此命令会在一个临时的busybox容器中启动一个curl命令行,您可以使用该命令行向Service发送请求。例如,您可以使用以下命令向my-service发送HTTP GET请求:

curl http://my-service

        6. 删除Service。如果您想删除一个Service,可以使用以下命令:

kubectl delete service my-service

其中,my-service是要删除的Service的名称。

以上是一些基本的Service的创建和使用操作。Kubernetes还提供了更多高级特性,例如使用不同类型的Service(如NodePort、LoadBalancer、ExternalName等),以及使用Ingress来暴露多个Service等。您可以参考Kubernetes的官方文档以了解更多关于Service的实践与操作的信息。


2.4 Deployment的滚动更新与回滚

在Kubernetes中,Deployment是一种用于管理Pod副本的控制器。它允许您定义Pod副本的期望状态,并自动管理Pod的创建、删除和更新。滚动更新和回滚是Deployment的一些重要功能。

以下是滚动更新和回滚Deployment的实践操作:

  1. 创建一个Deployment。首先,您需要创建一个Deployment定义文件。Deployment定义文件是一个YAML或JSON格式的文件,用于描述Deployment的配置和规范。例如,下面是一个简单的Deployment定义文件的示例:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: my-app:v1
        ports:
        - containerPort: 8080

在这个示例中,我们定义了一个名为my-deployment的Deployment,它将创建3个副本的Pod。每个Pod使用label app=my-app,并运行一个名为my-app的容器,该容器使用my-app:v1镜像。

        2. 使用kubectl命令创建Deployment。使用以下命令来创建Deployment:

kubectl create -f deployment.yaml

其中,deployment.yaml是您创建的Deployment定义文件的名称。

        3. 验证Deployment的创建状态。您可以使用以下命令来查看Deployment的状态:

kubectl get deployments

这将显示您创建的所有Deployment的状态。在创建过程中,Deployment的状态可能是“Pending”,表示正在等待加载和配置。一旦Deployment创建并准备就绪,状态将变为“Available”。

        4. 执行滚动更新。要执行滚动更新,您可以使用以下命令:

kubectl set image deployment/my-deployment my-app=my-app:v2

其中,my-deployment是要更新的Deployment的名称,my-app:v2是要更新的镜像版本。

此命令将更新Deployment的Pod副本,逐步替换旧的Pod副本为新的Pod副本。Kubernetes会根据您的配置和策略控制滚动更新的速度和流量转移。

        5. 验证滚动更新状态。您可以使用以下命令来查看滚动更新的状态:

kubectl rollout status deployment/my-deployment

这将显示滚动更新过程中Deployment的状态。一旦滚动更新完成,状态将显示为“successfully rolled out”。

        6. 执行回滚操作。如果需要回滚Deployment,可以使用以下命令:

kubectl rollout undo deployment/my-deployment

此命令将回滚Deployment到上一个版本。

        7. 验证回滚状态。您可以使用以下命令来查看回滚的状态:

kubectl rollout status deployment/my-deployment

一旦回滚操作完成,状态将显示为“successfully rolled back”。

以上是滚动更新和回滚Deployment的基本操作。Kubernetes还提供了其他更高级的滚动更新和回滚策略和选项,以满足不同的需求。您可以参考Kubernetes的官方文档以获取更多关于滚动更新和回滚Deployment的实践与操作的信息。


2.5 Ingress的配置与使用

在Kubernetes中,Ingress是一种用于将外部流量路由到Kubernetes集群内部服务的资源。它提供了一种统一的入口点,并可以根据域名、路径和其他规则来将流量路由到不同的服务。在本指南中,我们将介绍如何配置和使用Ingress。

以下是Ingress的配置和使用的实践操作:

  1. 配置Ingress Controller。在使用Ingress之前,您需要先部署一个Ingress Controller。Ingress Controller是负责处理Ingress规则并将流量路由到相应服务的组件。有多种Ingress Controller可供选择,如Nginx Ingress Controller、Traefik Ingress Controller等。您可以根据自己的需求选择合适的Ingress Controller,并按照其官方文档进行部署和配置。

  2. 创建Ingress定义。接下来,您需要创建一个Ingress定义文件。Ingress定义文件是一个YAML或JSON格式的文件,用于描述Ingress的配置和规则。例如,下面是一个简单的Ingress定义文件的示例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress
spec:
  rules:
  - host: my-domain.com
    http:
      paths:
      - path: /app1
        pathType: Prefix
        backend:
          service:
            name: app1-service
            port:
              number: 8080
      - path: /app2
        pathType: Prefix
        backend:
          service:
            name: app2-service
            port:
              number: 8080

在这个示例中,我们创建了一个名为my-ingress的Ingress,它将根据主机名和路径将流量路由到不同的服务。对于主机名为my-domain.com的流量,路径以/app1开头的流量将路由到名为app1-service的服务的端口8080,路径以/app2开头的流量将路由到名为app2-service的服务的端口8080。

        3. 使用kubectl命令创建Ingress。使用以下命令来创建Ingress:

kubectl create -f ingress.yaml

其中,ingress.yaml是您创建的Ingress定义文件的名称。

        4. 验证Ingress的配置。您可以使用以下命令来查看Ingress的配置:

kubectl get ingress

这将显示您创建的所有Ingress的配置信息。

        5. 配置DNS解析。为了让外部流量能够访问Ingress,您需要将Ingress的域名解析到Kubernetes集群的IP地址。具体的配置方法取决于您的域名和DNS解析服务提供商,您可以参考相应指南或文档进行配置。

        6. 访问Ingress服务。一旦DNS解析配置完成,您就可以使用浏览器或其他HTTP客户端访问Ingress服务。例如,根据上述示例中的配置,您可以通过访问http://my-domain.com/app1来访问app1-service的服务,访问http://my-domain.com/app2来访问app2-service的服务。

以上是Ingress的基本配置和使用操作。除了基本的域名和路径规则外,Ingress还支持其他高级配置和功能,如TLS/SSL加密、负载均衡、路径重写等。您可以参考Ingress Controller的官方文档以获取更多关于Ingress的配置和使用的实践与操作的信息。


2.6 持久卷与存储类的使用

在Kubernetes中,持久卷和存储类是用于在容器化应用中存储和持久化数据的重要概念和组件。持久卷(Persistent Volume)是一块抽象的存储资源,而存储类(Storage Class)则定义了如何提供和配置这些存储资源。本指南将介绍如何在Kubernetes中使用持久卷和存储类。

以下是持久卷和存储类的使用实践操作:

  1. 创建持久卷。首先,您需要创建一个持久卷的定义。持久卷定义是一个YAML或JSON格式的文件,用于描述持久卷的属性和配置。例如,下面是一个简单的持久卷定义文件的示例:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  storageClassName: my-storage-class
  persistentVolumeReclaimPolicy: Retain
  hostPath:
    path: /data/my-pv

在这个示例中,我们创建了一个名为my-pv的持久卷,它具有10GB的存储容量,并且支持单主机读写。持久卷使用名为my-storage-class的存储类,并且在删除时会保留数据。这个持久卷是通过主机路径(host path)的方式实现的,具体路径是/data/my-pv。

        2. 创建存储类。接下来,您需要创建一个存储类的定义。存储类定义也是一个YAML或JSON格式的文件,用于描述存储类的属性和配置。例如,下面是一个简单的存储类定义文件的示例:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: my-storage-class
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer

在这个示例中,我们创建了一个名为my-storage-class的存储类,它使用了一个不存在的存储提供者(no-provisioner)并且等待第一个使用者来绑定卷。

        3. 使用kubectl命令创建持久卷和存储类。使用以下命令来创建持久卷和存储类:

kubectl create -f pv.yaml
kubectl create -f storage-class.yaml

其中,pv.yaml是您创建的持久卷定义文件的名称,storage-class.yaml是您创建的存储类定义文件的名称。

        4. 创建Pod并使用持久卷。在创建Pod的定义文件时,您可以使用持久卷来挂载数据卷,以便在容器中使用持久化存储。例如,下面是一个简单的Pod定义文件的示例:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: nginx
    volumeMounts:
    - name: my-volume
      mountPath: /data
  volumes:
  - name: my-volume
    persistentVolumeClaim:
      claimName: my-pvc

在这个示例中,我们创建了一个名为my-pod的Pod,它使用了一个名为my-pvc的持久卷声明(PersistentVolumeClaim),并将其挂载到了容器的/data路径上。

        5. 创建持久卷声明(PVC)。持久卷声明是一个用于请求持久卷的资源,它可以根据存储类的定义来动态创建或绑定一个合适的持久卷。在上述示例中,我们使用了一个名为my-pvc的持久卷声明。您可以使用以下命令来创建持久卷声明:

kubectl create -f pvc.yaml

其中,pvc.yaml是您创建的持久卷声明文件的名称。

        6. 验证持久卷和存储类的配置。您可以使用以下命令来查看持久卷和存储类的配置:

kubectl get pv
kubectl get pvc
kubectl get storageclass

这将显示您创建的所有持久卷、持久卷声明和存储类的配置信息。

以上是持久卷和存储类的基本使用实践操作。除了静态配置持久卷和存储类外,Kubernetes还支持动态配置和分布式存储的使用。您可以根据具体的需求和存储提供商的文档进行更高级的配置和使用。


2.7 自定义资源的创建与管理

在Kubernetes中,自定义资源(Custom Resources)允许用户扩展Kubernetes API,以创建和管理自定义的资源类型。通过定义自定义资源,用户可以将应用程序特定的领域对象引入到Kubernetes中,并像管理内置资源一样管理它们。以下是自定义资源的创建和管理的实践操作:

  1. 创建自定义资源定义(CRD):首先,您需要创建一个自定义资源定义文件(CRD),用于定义自定义资源的结构和行为。CRD是一个YAML或JSON格式的文件,指定了自定义资源的API版本、类型、字段、验证规则等。例如,下面是一个简单的自定义资源定义文件的示例:
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: myresources.example.com
spec:
  group: example.com
  versions:
    - name: v1
      served: true
      storage: true
  scope: Namespaced
  names:
    plural: myresources
    singular: myresource
    kind: MyResource
    shortNames:
    - mr

在这个示例中,我们定义了一个名为myresource的自定义资源,它属于example.com组,并且使用了v1版本。我们还定义了这个自定义资源的复数形式(myresources)、单数形式(myresource)、Kind名称(MyResource)和简称(mr)。

        2. 使用kubectl命令创建CRD:使用以下命令来创建自定义资源定义:

kubectl create -f crd.yaml

其中,crd.yaml是您创建的CRD定义文件的名称。

        3. 创建自定义资源实例:一旦CRD定义被创建,您可以使用kubectl命令或YAML文件创建自定义资源的实例。例如,下面是一个创建自定义资源实例的示例:

apiVersion: example.com/v1
kind: MyResource
metadata:
  name: myresource-1
spec:
  foo: bar
  baz: qux

在这个示例中,我们创建了一个名为myresource-1的自定义资源实例,它具有foo和baz两个字段,并且分别设置为bar和qux。

        4. 使用kubectl命令创建自定义资源实例:使用以下命令创建自定义资源实例:

kubectl create -f myresource.yaml

其中,myresource.yaml是您创建的自定义资源实例文件的名称。

        5. 查看和管理自定义资源实例:您可以使用kubectl命令来查看、获取、删除和修改自定义资源实例。例如,使用以下命令来获取自定义资源实例的列表:

kubectl get myresources

使用以下命令获取特定自定义资源实例的详细信息:

kubectl get myresources myresource-1 -o yaml

使用以下命令删除自定义资源实例:

kubectl delete myresources myresource-1

使用以下命令修改自定义资源实例:

kubectl edit myresources myresource-1

        6. 使用自定义资源实例:自定义资源实例可以像其他Kubernetes资源一样与Pod、Service等进行关联和使用。您可以使用标签选择器、注解、控制器等机制来管理和操作自定义资源实例。

自定义资源的创建和管理使得用户可以根据特定需求扩展Kubernetes的功能和能力。您可以使用自定义资源来管理自定义的应用程序或领域对象,为特定的应用场景提供更灵活的资源管理。注意,使用自定义资源也需要遵循Kubernetes的最佳实践和安全策略。


三、Kubernetes的高级特性

        详见《Kubernetes的原理及应用详解(四)

四、Kubernetes的扩展与集成

        详见《Kubernetes的原理及应用详解(四)

五、Kubernetes的未来展望

        详见《Kubernetes的原理及应用详解(五)

六、总结与最佳实践

        详见《Kubernetes的原理及应用详解(五)

七、结语

        文章至此,已接近尾声!希望此文能够对大家有所启发和帮助。同时,感谢大家的耐心阅读和对本文档的信任。在未来的技术学习和工作中,期待与各位大佬共同进步,共同探索新的技术前沿。最后,再次感谢各位的支持和关注。您的支持是作者创作的最大动力,如果您觉得这篇文章对您有所帮助,请分享给身边的朋友和同事!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[集群聊天项目] muduo网络库

目录 网络服务器编程常用模型什么是muduo网络库什么是epoll muduo网络库服务器编程 网络服务器编程常用模型 【方案1】 &#xff1a; accept read/write 不是并发服务器 【方案2】 &#xff1a; accept fork - process-pre-connection 适合并发连接数不大&#xff0c;计算任…

Centos的一些基础命令

CentOS是一个基于开源代码构建的免费Linux发行版&#xff0c;它由Red Hat Enterprise Linux (RHEL) 的源代码重新编译而成。由于 CentOS是基于RHEL构建的&#xff0c;因此它与RHEL具有非常类似的特性和功能&#xff0c;包括稳定性、安全性和可靠性。并且大部分的 Linux 命令在C…

Apache Doris 2.x 版本【保姆级】安装+使用教程

Doris简介 Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库&#xff0c;以极速易用的特点被人们所熟知&#xff0c;仅需亚秒级响应时间即可返回海量数据下的查询结果&#xff0c;不仅可以支持高并发的点查询场景&#xff0c;也能支持高吞吐的复杂分析场景。基于…

COOIS 生产订单显示系统增强

需求说明&#xff1a;订单系统显示页面新增批量打印功能 增强点&#xff1a;CL_COIS_DISP_LIST_NAVIGATION -->TOOLBAR方法中新增隐式增强添加自定义打印按钮 增强点&#xff1a;BADI-->WORKORDER_INFOSYSTEM新增增强实施 实现位置&#xff1a;IF_EX_WORKORDER_INFOSYS…

频裂变加群推广强制分享引流源码

视频裂变加群推广强制分享引流源码&#xff0c;用户达到观看次数后需要分享给好友或者群,好友必须点击推广链接后才会增加观看次数。 引导用户转发QV分享,达到快速裂变引流的效果&#xff01; 视频裂变推广程序&#xff0c;强制分享链接&#xff0c;引导用户转发&#xff0c;…

数据库MySQL的初级基础操作

文章目录 1. 介绍2. 数据库相关概念3. 启动4. 数据模型5. SQL6. DDL数据库DDL-表操作DDL-表操作-数据类型DDL-表操作-修改DDL-表操作-删除 7. 图形化界面工具DataGrip8. DML(数据操作语言)DML-添加数据DML-修改数据 9. DQL&#xff08;数据查询语言&#xff09;基本查询条件查询…

MemFire案例-政务应急物联网实时监测预警项目

客户背景 党的十八大以来&#xff0c;中央多次就应急管理工作做出重要指示&#xff1a;要求坚持以防为主、防抗救相结合&#xff0c;全面提升综合防灾能力&#xff1b;坚持生命至上、安全第一&#xff0c;完善安全生产责任制&#xff0c;坚决遏制重特大安全事故。 面对新形势…

小白学习SpringCloud之Eureka

前言 需要搭建springcloud项目&#xff0c;eureka是其中的一个模块&#xff0c;依赖主要继承父依赖 学习视频&#xff1a;b站狂神说 便于理解,我修改了本地域名》这里!!! 127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.1 eureka7003.comEureka入门案例 eureka…

Maven的仓库、周期和插件

一、简介 随着各公司的Java项目入库方式由老的Ant改为Maven后&#xff0c;相信大家对Maven已经有了个基本的熟悉。但是在实际的使用、入库过程中&#xff0c;笔者发现挺多人对Maven的一些基本知识还缺乏了解&#xff0c;因此在此处跟大家简单地聊下Maven的相关内容&#xff0c…

如何把经验变成可以销售的“知识产品”?

知识付费&#xff0c;很多人想做&#xff0c;但是不知道如何把自己在某方面的“经验”&#xff0c;变成一个“知识产品”&#xff0c;那么这篇文章&#xff0c;我们就来聊聊如何从0打造一个知识产品 非常简单&#xff0c;一共六个步骤&#xff1a; 第一步&#xff1a;取名字&…

【深度学习】StabelDiffusion,Lora训练过程,秋叶包,Linux,SDXL Lora训练

文章目录 一、环境搭建指南二、个性化安装流程三、启动应用四、打开web五、开始训练 19.27服务器 一、环境搭建指南 打造一个高效且友好的开发环境&#xff0c;我们推荐使用以下简洁明了的中文资源&#xff1a; 项目源码获取&#xff1a; 通过以下命令轻松克隆项目及所有子模…

(一)Dataframes安装与类型 #Julia数据分析 #CDA学习打卡

目录 一. Julia简介 二. Dataframe构造方法 1&#xff09;访问列的方式 &#xff08;a&#xff09;判断严格相等 i. 切片严格相等是true ii. 复制严格相等是false &#xff08;b&#xff09;判断相等 i. 切片相等是true ii. 复制相等是true 2&#xff09;获取列名称 …

【Camera KMD ISP SubSystem笔记】CAM SYNC与DRQ③

DRQ什么时候调度Node去填写dependency ::Pipeline调度Node的sequenceId 0执行 Pipeline::ProcessRequest() { for (UINT nodeIndex 0; nodeIndex < m_orderedNodeCount ; nodeIndex) m_pDeferredRequestQueue->AddDef…

ROM修改进阶教程------如何去除安卓机型系统的开机向导 几种操作步骤解析

在和很多工作室定制化系统中。手机在第一次启动的时候系统都会进入设置向导,虽然可以设置手机的基本配置。但有很多客户需要去除手机的开机向导来缩短开机时间。确保手机直接进入工作状态。那么今天的教程针去除对开机向导的几种方法做个解析。机型很多版本不同。操作也有不同…

JS实现对用户名、密码进行正则表达式判断,网页跳转

目标&#xff1a;使用JS实现对用户名和密码进行正则表达式判断&#xff0c;用户名和密码正确时&#xff0c;进行网页跳转。 用户名、密码的正则表达式检验 HTML代码&#xff1a; <button type"submit" id"login-btn" /*onclick"login();alidate…

四川易点慧电子商务:抖音小店引领潮流,先进模式打造电商新标杆

在当下数字化浪潮中&#xff0c;电子商务行业如日中天&#xff0c;四川易点慧电子商务有限公司以其独特的视角和前瞻性的战略布局&#xff0c;成功在抖音小店领域崭露头角&#xff0c;成为行业内的佼佼者。本文将深入剖析四川易点慧电子商务的成功秘诀&#xff0c;以及其在抖音…

【openLooKeng-1.10.0集群环境安装部署】

openLooKeng-1.10.0集群环境安装部署 一、摘要二、正文1. 环境说明2. 集群拓扑图3. 安装过程(以root用户安装)3.1 在Coordinator和Worker两个节点都需要安装jdk1.8+3.2 在Coordinator上安装配置openLooKeng3.3 在Worker节点上进行配置openLooKeng3.4 在Coordinator节点上先启…

Spring Boot集成Redisson实现延迟队列

项目场景&#xff1a; 在电商、支付等领域&#xff0c;往往会有这样的场景&#xff0c;用户下单后放弃支付了&#xff0c;那这笔订单会在指定的时间段后进行关闭操作&#xff0c;细心的你一定发现了像某宝、某东都有这样的逻辑&#xff0c;而且时间很准确&#xff0c;误差在1s内…

OceanBase单机版安装体验

前情提要 上周OceanBase开发者大会过后&#xff0c;作为观察员也来体验一下OB的安装。业内有某个国产安装用了两周&#xff0c;这种其实有点劝退了。话说就是10年前&#xff0c;没搞过Oracle的人也不用两周安装一个数据库啊。今天看看OB的&#xff08;一体化&#xff09;安装。…

【震撼揭秘】Sentinel:一文读懂,那些让开发者“拍案叫绝”的核心特性!

关注微信公众号 “程序员小胖” 每日技术干货&#xff0c;第一时间送达&#xff01; 引言 在微服务架构中&#xff0c;流量治理是确保系统稳定性和高可用性的关键。Sentinel作为一项强大的流量控制组件&#xff0c;为我们提供了完善的解决方案。本文将带您走进Sentinel的世界…