当前位置: 首页 > news >正文

删除网站留言板功能企业文化墙

删除网站留言板功能,企业文化墙,河北建基官网,上海住房与建设部网站K8s —基础指南 K8s 是云上部署容器化应用的事实标准。它作为容器的强大编排器#xff0c;管理容器重启、负载均衡等任务。 理解 Kubernetes 架构 Kubernetes 的关键功能之一是为访问 Pod 提供稳定的端点#xff0c;尽管 Pod 本身是短暂的。Kubernetes 服务有效地弥补了这…K8s —基础指南 K8s 是云上部署容器化应用的事实标准。它作为容器的强大编排器管理容器重启、负载均衡等任务。 理解 Kubernetes 架构  Kubernetes 的关键功能之一是为访问 Pod 提供稳定的端点尽管 Pod 本身是短暂的。Kubernetes 服务有效地弥补了这一差距。 在 Docker Desktop 中启用 Kubernetes等待其启动。 要检查 kubectl 正在与哪个集群交互请使用 kubectl config current-context为什么使用 Pod  Pod 是 Kubernetes 的基本对象允许你充分利用 Kubernetes 的潜力。Pod 封装一个或多个容器并为它们提供统一的环境。 Pod 定义示例  apiVersion: v1 kind:Pod metadata: name:geeky labels:app.kubernetes.io/name:geeky           # 标准最广泛的标签app.kubernetes.io/component:frontend# 指定角色app.kubernetes.io/instance:frontend   # 细粒度控制 spec: containers: -name:geekyimage:Imageenv:-name:SERVICE_HOSTvalue:expected-url# 通过集群 IP 服务实现前后端通信resources:requests:              # 最小资源分配memory:128Mi      # 内存单位 Mebibytescpu:200m         # CPU单位 millicoreslimits:                # 资源上限memory:128Miports:-containerPort:3000关键 kubectl 命令  应用 Pod 配置 kubectl apply -f pod_config_name.yaml列出 Pod kubectl get pods描述 Pod 详情 kubectl describe pod pod_name查看日志 kubectl logs pod_name实时日志流 kubectl logs -f pod_name端口转发以本地访问 kubectl port-forward pod_name 8080:3000 # 访问地址localhost:8080按标签或名称删除 Pod kubectl delete pod -l app.kubernetes.io/namegeeky kubectl delete pod geeky删除所有 Pod kubectl delete pods --all网络隔离与通信  当你有多个 Pod 时Kubernetes 使用 网络命名空间 确保网络级隔离逻辑上分离资源。为了实现 Pod 之间的通信Kubernetes 使用 服务。这允许无缝交互同时在需要时保持严格的隔离。 服务持久端点  Kubernetes 服务为应用程序提供持久端点。它们通过提供稳定的虚拟 IP 地址来解决短暂 Pod 带来的挑战。主要有两种类型的服务NodePort 和 ClusterIP。 NodePort 服务  NodePort 服务将应用程序暴露在集群中每个节点的 IP 地址的特定端口上。虽然对原型开发有用但不适合生产环境因为暴露机器端口可能存在安全风险。NodePort 范围从 30000 到 32767。 NodePort 服务定义示例 apiVersion: v1 kind:Service metadata: name:geeky spec: type:NodePort selector:app.kubernetes.io/instance:frontend ports: -port:3000targetPort:3000nodePort:32000应用服务配置 kubectl apply -f service-definition.yaml这将在 localhost:32000 上本地暴露应用程序将请求转发到标记为 frontend 的 Pod。 ClusterIP 服务  ClusterIP 服务为集群内的应用程序提供稳定的内部 IP 地址和端口。这非常适合 Pod 之间的内部通信。 ClusterIP 服务定义示例 apiVersion: v1 kind:Service metadata: name:geeky spec: selector:app.kubernetes.io/component:frontend ports: -port:3000targetPort:3000该服务将所有流量转发到匹配标签 frontend 的任何 Pod。当流量到达 Pod 时它确保 Pod 内的目标端口可访问且响应。 列出服务 kubectl get services命名空间资源组织  Kubernetes 中的命名空间允许你逻辑上分离和分组资源便于管理和应用基于角色的访问控制RBAC。 关键 kubectl 命令  列出命名空间 kubectl get namespaces列出命名空间中的 Pod kubectl get pods -n default删除命名空间中的所有 Pod kubectl delete pods --all -n default创建命名空间 kubectl create namespace geeky-app将资源应用到命名空间 kubectl apply -f . -n geeky-app列出命名空间中的资源 kubectl get pods,services -n geeky-app在元数据中定义命名空间  在资源配置的元数据部分直接定义命名空间确保资源在指定的命名空间中创建。这通常更方便并防止在 kubectl 命令中手动指定命名空间。 Kubernetes 弹性幕后机制  Kubernetes 通过其控制器确保弹性和自愈 restartPolicy: 默认情况下restartPolicy 设置为 Always确保 Pod 在失败时自动重启。 内存不足OOM 当 Pod 超出其内存限制时它会被标记为 OOMKilled。Kubernetes 会重启此类 Pod 以保持弹性。 Kubernetes 控制器  期望状态 控制器比较 Pod 的当前状态与期望状态采取行动以调和任何差异。 持续监控 Kubernetes 持续监控容器的健康状况并在需要时采取纠正措施。 部署和 Pod 副本  Kubernetes 中的部署提供了一种声明式的方式来管理应用程序更新和扩展。当你创建部署时它会自动创建一个 ReplicaSet确保始终运行指定数量的 Pod 副本。 部署定义示例  apiVersion: apps/v1 kind:Deployment metadata: name:geeky namespace:geeky-ns spec: replicas:3 selector:matchLabels:app.kubernetes.io/instance:geeky-api template:metadata:labels:app.kubernetes.io/name:geekyapp.kubernetes.io/component:backendapp.kubernetes.io/instance:backendspec:containers:-name:geekyimage:Imageresources:requests:memory:128Micpu:200mlimits:memory:128Miports:-containerPort:3000部署的关键点  通过部署管理你的 Pod而不是独立的 Pod 原语。 列出命名空间中的部署 kubectl get deployments -n geeky-ns部署默认提供负载均衡使用轮询方式。 幕后机制  部署控制器根据部署规范创建 ReplicaSet。 ReplicaSet 确保运行所需数量的 Pod 副本。 ReplicaSet 控制器监控 Pod 的状态并在必要时重新创建它们。 部署控制器管理部署的整个生命周期包括更新和回滚。 通过在部署对象中声明期望状态Kubernetes 会处理其余部分确保你的应用程序按指定运行和扩展。 滚动更新和回滚  Kubernetes 部署使你能够使用 最小停机时间 无缝更新应用程序采用滚动更新策略。部署控制器逐步用新 Pod 替换旧 Pod确保更新过程中的持续可用性。 滚动更新策略  你可以使用部署规范中的 strategy 字段控制更新过程。例如 spec:strategy:type: RollingUpdaterollingUpdate:maxUnavailable: 1   # 更新期间最大不可用 Pod 数量maxSurge: 1         # 更新期间最大额外创建的 Pod 数量回滚更改  如果部署更新导致问题你可以轻松回滚到之前的稳定状态。 回滚到之前的版本 kubectl rollout undo deployment/name -n namespace探针确保应用程序健康  Kubernetes 提供 存活探针 和 就绪探针 来监控容器的健康和就绪状态。这些探针确保你的应用程序保持弹性和响应性。 存活探针 存活探针 检查容器是否正常运行。如果探针失败Kubernetes 会重启容器。 就绪探针 就绪探针 确定容器是否准备好处理流量。如果探针失败容器将从服务端点中排除。 探针配置示例 livenessProbe:httpGet:path:/healthzport:8080 initialDelaySeconds:25 periodSeconds:5 readinessProbe: httpGet:path:/readyport:8080 periodSeconds:5关键点 使用 存活探针 检测并重启不健康的容器。 使用 就绪探针 确定容器何时准备好开始接受流量。 这些探针共同帮助维护应用程序的健康和可用性。 Kubernetes 中的存储编排  Kubernetes 使用 持久卷PV 和 持久卷声明PVC 简化了有状态应用程序的存储管理。 带存储的 StatefulSet 示例 StatefulSet 非常适合管理有状态应用程序因为它们为每个 Pod 提供稳定的标识符和存储。 apiVersion: apps/v1 kind:StatefulSet metadata: name:database namespace:database-ns spec: serviceName:db replicas:2 selector:matchLabels:app.kubernetes.io/instance:db template:metadata:labels:app.kubernetes.io/name:geekyapp.kubernetes.io/component:dbapp.kubernetes.io/instance:dbspec:containers:-name:databaseimage:registry.k8s.io/nginx-slim:0.8volumeMounts:-name:db-persistent-storagemountPath:/data/db volumeClaimTemplates: -metadata:name:db-persistent-storagespec:accessModes:[ReadWriteOnce]resources:requests:storage:1Gi关键组件 持久卷PV 表示实际的存储资源。 持久卷声明PVC Pod 对存储的请求。 卷声明模板 自动为每个 StatefulSet Pod 生成 PVC。 存储编排的好处 自动配置和附加存储卷。 在 Pod 重启或重新调度时无缝保持数据持久性。 内置机制用于维护 Pod 身份和状态。 列出命名空间中的 PVC kubectl get pvc -n database-ns配置管理  ConfigMap 和 Secret ConfigMap 存储非机密的纯文本数据。 ConfigMap 定义示例 apiVersion: v1 kind:ConfigMap metadata: name:geeky-config namespace:geeky-ns data: player_initial_lives:3 ui_properties_file_name:user-interface.propertiesSecret 安全地存储敏感数据以 Base64 编码。 Secret 定义示例 apiVersion: v1 kind:Secret metadata: name:geeky-secret namespace:geeky-ns type:Opaque data:username:YWRtaW4# base64 编码的 adminpassword:dDBwLVMzY3IzdA# base64 编码的 t0p-S3cr3t水平 Pod 自动扩展  Kubernetes 支持根据观察到的指标如 CPU 或内存使用率自动扩展 Pod。 关键概念 Metrics Server Kubernetes 通过 metrics-server 收集资源使用指标。 kubectl top pods -n geeky-nsHorizontalPodAutoscaler 定义 apiVersion: autoscaling/v2 kind:HorizontalPodAutoscaler metadata: name:geeky namespace:geeky-ns spec: scaleTargetRef:apiVersion:apps/v1kind:Deploymentname:geeky minReplicas:1 maxReplicas:10 metrics: -type:Resourceresource:name:cputarget:type:UtilizationaverageUtilization:50获取 HPA 状态 kubectl get hpa -n geeky-ns注意事项 水平 Pod 自动扩展器根据观察到的 CPU 使用率最常见自动调整部署中的 Pod 数量。 自动扩展行为 HPA 将增加或减少副本数以维持目标 CPU 使用率。 扩展范围 Pod 数量将根据 CPU 使用率在 1 到 10 之间调整。 资源指标 虽然此示例使用 CPU但 HPA 也可以使用内存或自定义指标。 目标使用率 50% 的目标使用率是常见的起点但可以根据应用程序需求进行调整。 命名空间范围 HPA 是命名空间特定的允许在应用程序的不同部分应用隔离的扩展策略。 扩展算法 Kubernetes 使用控制循环定期根据观察到的指标调整副本数。 Kubernetes 中的 Ingress 控制器  Kubernetes 中的 Ingress 控制器充当反向代理管理外部 HTTP(S) 流量并将其路由到正确的内部服务。与 NodePort 不同NodePort 在每个节点上暴露服务而 Ingress 控制器集中路由过程使其更高效和可扩展。 设置 Ingress 控制器 要使用 Ingress请在 Kubernetes 集群中下载并安装 Ingress 控制器如 NGINX。 基本 Ingress 配置示例 以下 YAML 定义了一个基本的 Ingress 资源指定了如何将传入流量路由到内部服务。 apiVersion: networking.k8s.io/v1 kind:Ingress metadata: name:geeky labels:name:geekynamespace:geeky-ns spec: ingressClassName:nginx rules: -host:urlhttp:paths:-pathType:Prefixpath:/backend:service:name:frontendport:number:3000此设置将针对 url 的 HTTP 请求路由到端口 3000 上的 frontend 服务。 查看可用的 Ingress 类 要查看可用的 Ingress 类请运行 kubectl get ingressclass生产环境中的流量限制 在开发环境中配置通常是宽松的但在生产环境中你需要实施更严格的规则。 例如购买域名后你可以设置规则以限制流量到特定主机 spec:rules: -host:geeky.example.comhttp:paths:-path:/pathType:Prefixbackend:service:name:geekyport:number:3000此设置确保只有来自 geeky.example.com 的流量可以访问服务通过拒绝来自其他主机的请求提供额外的安全性。 Ingress 控制器和 AWS 中的负载均衡器 将 Ingress 控制器如 NGINX部署到 AWS 集群时会自动配置负载均衡器以处理外部流量。 NGINX Ingress 控制器设置示例 kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml kubectl get services -n nginx在生产环境中 设置负载均衡器后你可以通过指定主机创建更严格的 Ingress 规则。 Ingress 配置示例 apiVersion: networking.k8s.io/v1 kind:Ingress metadata: name:geeky-ingress namespace:geeky-ns spec: ingressClassName:nginx rules: -host:geeky.example.comhttp:paths:-pathType:Prefixpath:/backend:service:name:geekyport:number:3000这将限制对服务的访问仅限于 geeky.example.com。 Kubernetes 中的 Helm  Helm 是 Kubernetes 的强大包管理器简化了应用程序的部署、管理和扩展。通过使用 Helm Chart你可以将 Kubernetes 资源作为单个单元进行管理简化部署、升级和回滚。 Helm 基础 Helm Chart Helm Chart 是一组定义相关 Kubernetes 资源的文件。 Release Release 是 Helm Chart 的部署。你可以使用 Helm 命令安装或卸载 Release。 典型的 Helm Chart 结构 mychart/├── Chart.yaml          # 包含 Chart 信息├── values.yaml         # 默认配置值└── templates/          # 模板文件目录├── deployment.yaml├── service.yaml└── ingress.yamlvalues.yaml存储模板的值如 deployment.yaml 或 service.yaml。 Chart.yaml包含有关 Chart 的元数据。 安装和管理 Helm Chart 1. 安装 Helm Chart helm install geeky geeky-1.0.0.tgz2. 卸载 Helm Release helm uninstall geeky3. Helm 升级 要升级 Release请使用 helm upgrade geeky geeky-1.0.2.tgz或者从当前目录升级 helm upgrade geeky . -n geeky-ns4. 回滚 Helm Release 如果需要你可以回滚 Release helm rollback geeky 2 -n geeky-ns5. Helm 打包 要打包 Helm Chart helm package .6. 列出所有 Helm Release helm list -A使用外部 Helm 仓库 Helm 支持外部仓库如 Bitnami它提供了 Elasticsearch 和 MySQL 等流行服务的 Chart。 1. 添加 Helm 仓库 helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update2. 使用自定义值安装 Chart helm install geeky bitnami/mongodb --version 1x.x.1x -f values.yaml -n geeky-ns此命令使用自定义配置安装 MongoDB。 3. 移除 Helm 仓库 helm repo remove bitnamiKubernetes 中的 Operator  Kubernetes Operator 通过使用自定义资源管理复杂应用程序扩展了 Kubernetes 的功能。这些资源不是 Kubernetes 默认的一部分而是由 Operator 定义和控制。 核心概念 自定义资源CR Operator 引入了扩展 Kubernetes API 的新资源针对特定应用程序定制。 自定义控制器 Operator 实现控制器监控自定义资源并管理相应的 Kubernetes 资源如 Pod、服务、ConfigMap。 Operator 的工作原理 创建自定义资源 当你创建自定义资源如 PostgreSQL 集群时Operator 的控制器会检测到它并创建必要的 Kubernetes 资源。 监控资源 Operator 持续监控并调整资源以维持期望状态。 PostgreSQL 集群的自定义资源示例 apiVersion: database.example.com/v1 kind:PostgresCluster metadata: name:my-db spec: version:13 instances:3 storage:size:1Gi应用自定义资源 kubectl apply -f postgres-cluster.yaml监控自定义和原生资源 kubectl get postgresclusters kubectl get pods常见的 Operator 和用例 Operator 可用于管理各种软件系统包括 数据库 PostgreSQL、MongoDB、MySQL、Elasticsearch 消息队列 Apache Kafka、RabbitMQ 监控 Prometheus 服务网格 Istio 使用 eksctl 部署到 AWS  使用 eksctl 将 Kubernetes 部署到 AWS 提供了管理多个工作节点集群的灵活性。 1. 安装 eksctl choco install -y eksctl eksctl version2. 使用 eksctl 创建集群 创建集群的示例命令 eksctl create cluster \ --name my-cluster \ --region us-west-2 \ --node-type t3.medium \ --nodes 3此命令创建一个包含 3 个工作节点的集群并更新 kubectl 上下文以便轻松交互。 最终清理  完成 Kubernetes 集群和服务后执行适当的清理以释放资源并确保一切清理干净。 1. 删除 Kubernetes 集群 如果你使用 AWS 和 eksctl 管理集群可以使用以下命令删除整个集群 eksctl delete cluster --name my-cluster这将删除与集群关联的所有资源包括 EC2 实例、VPC 和其他托管服务。 2. Docker 清理 使用 Docker 后最好删除未使用的资源镜像、容器、网络等以释放空间。 要删除所有未使用的 Docker 对象包括未与容器关联的镜像、容器、卷和网络 docker system prune -a此命令将在删除这些资源之前请求确认因此请确保你不需要其中的任何资源。 3. 在本地机器上禁用 Kubernetes 如果你在本地使用 kubectl 与 Kubernetes 集群交互完成后你可能希望禁用它。 你可以简单地删除 Kubernetes 配置文件或使用以下命令重置 kubectl config unset current-context4. 从 Docker 中删除镜像和容器 要手动从 Docker 中删除镜像和容器可以使用以下命令 删除所有停止的容器 docker container prune删除所有未使用的镜像 docker image prune -a通过遵循这些清理步骤你可以确保没有不必要的资源被留下优化你的本地机器和云环境。
http://www.laogonggong.com/news/136946.html

相关文章:

  • pc网站如何做seo网站建设中 模版
  • 网站用excel做数据库吗服务平台登录
  • 做网站关键词加到什么位置优化方案化学
  • 网站欢迎页面代码莱芜如何选择网站建设
  • 吉安哪家网站建设公司好门户网站的含义
  • wordpress网站公告wordpress女性模板
  • 网站后台管理进不去了中国 网站服务器 租金
  • 北京智能网站建设哪里好怎么做才能使网站ip增多
  • 百度云 建网站网站建设听取需求
  • 学习网站建设有什么用沈阳网站搭建
  • 深圳好的网站建设公司哪家好邯郸公司网站建设
  • 微商怎么做自己的网站空间设计网站公司
  • 网站建设销售怎么做南宁伯才网络
  • 瑞昌市环保局网站建设肇庆网站设计
  • 海口网站建设q479185700棒西安营销型网站建站
  • 注册网站域名有什么用成都网站建设新网创想
  • wordpress新浪seo关键词推广话术
  • 格尔木哪里有做网站的wordpress伪静态规则访问失败
  • 北京建设企业网站营销技巧第二季
  • 广安商城网站建设新媒体内容营销
  • 品牌展示设计网站wordpress反弹攻击
  • 做淘宝素材网站哪个好用可以做动态图表的网站
  • 吴江seo网站优化软件网站建设主要包括那些部分
  • 兰州自媒体公司有哪些河北seo网络推广
  • 网站设计创意方案全屋设计装修效果图
  • Asp网站开发入门做招标代理应关注的网站
  • 北京做网站多少钱建设工程合同约定仲裁违反专属管辖吗
  • 信用中国 网站谁建设的广州高端网站建设公司
  • 深一网站建设成都互联网公司数量排名
  • 免费申请的网站做ipo尽调需要用到的网站