怎么做网站优化 sit/河南郑州网站推广优化外包

怎么做网站优化 sit,河南郑州网站推广优化外包,设计创意广告,商丘网站建设略奥网文章目录 介绍Kubernetes 核心组件k8s安装环境安装组件 常用命令测试1. 创建一个测试应用程序2. 检查 Pod 是否运行 3. 暴露应用让外部访问4. 查看服务的暴露端口5. 访问 nginx 服务6. 验证节点调度 如有错误,敬请指针,谢谢! 介绍 Kubernetes&#xff0…

文章目录

      • 介绍
      • Kubernetes 核心组件
      • k8s安装
          • 环境
          • 安装组件
      • 常用命令
      • 测试
          • 1. 创建一个测试应用程序
            • 2. 检查 Pod 是否运行
          • 3. 暴露应用让外部访问
          • 4. 查看服务的暴露端口
          • 5. 访问 nginx 服务
          • 6. 验证节点调度
      • 如有错误,敬请指针,谢谢!

介绍

Kubernetes,是一个由Google开源的容器集群管理系统,旨在自动化部署、扩展和管理容器化应用程序。

Kubernetes 核心组件

Pod:Kubernetes 中最小的可部署单位, 表示一个或多个紧密相关的容器的集合。Pod 中的容器共享网络和存储资源,并且总是一起部署、调度和管理
Node:Kubernetes 集群中的一台物理或虚拟机器,用于运行 Pod。一个集群由多个节点组成。
容器: 实际运行应用程序的单位
Service:为一组 Pod 提供稳定的网络服务。通过 Service,Pod 可以动态扩展,而不影响客户端的访问。
Namespace:用于对资源进行逻辑隔离,可以用于区分不同的环境或团队。
Deployment:管理 Pod 的声明性更新,负责管理应用的版本、扩展和滚动更新。确保指定数量的 Pod 副本始终在运行。这意味着如果某个 Pod 出现故障或被删除,Deployment 会自动创建新的 Pod 来替代它。 持滚动更新功能,允许你逐步升级应用程序的版本 。 ,
YAML 文件是用来定义和创建 Deployment 的配置文件,而 Deployment 本身是 Kubernetes 中负责实际管理应用程序的控制器。 包括要部署的应用镜像、Pod 副本数量、资源限制、调度策略等。
● 通过 YAML 文件创建 Deployment:你使用 kubectl apply -f .yaml 命令将 YAML 文件提交给 Kubernetes,Kubernetes 会根据 YAML 文件的定义创建并管理相应的 Deployment 对象。
Deployment 管理 Pod:Kubernetes 中的 Deployment 负责管理 Pod 的生命周期,包括创建、删除和更新 Pod。

节点与 Pod 的关系类似于服务器与应用程序的关系:一个服务器(节点)可以运行多个应用程序(Pod),而每个应用程序(Pod)可以包含多个进程(容器)。

k8s安装

环境

我们需要准备一台 Ubuntu 20.04 服务器作为主节点(控制平面),并准备多台 Ubuntu 20.04 服务器作为工作节点(Worker Nodes)。确保服务器已经安装了 Ubuntu 20.04 操作系统,并更新到了最新版本。
1.1更新系统

首先,确保系统是最新的。
sudo apt update
sudo apt upgrade -y

1.2 关闭 Swap

Kubernetes 需要关闭 Swap 以正常工作。
sudo swapoff -a
#修改/etc/fstab,注释掉swap那行,持久化生效
sudo vi /etc/fstab

1.3确保每个节点有唯一的主机名,并且可以通过主机名解析彼此。

在宿主机分别设置主机名:k8s-master,k8s-node01

sudo vim /etc/hostname

hosts设置

sudovim /etc/hosts
#添加内容
192.168.47.138 k8s-master
192.168.47.137 k8s-node01

1.4确保时区和时间正确
时区设置

sudo timedatectl set-timezone Asia/Shanghai
#同时使系统日志时间戳也立即生效
sudo systemctl restart rsyslog

安装组件

1,更改docker默认驱动为systemd
为防止初始化出现一系列的错误,请检查docker和kubectl驱动是否一致,否则kubectl没法启动造成报错。版本不一样,docker有些为cgroupfs,而kubectl默认驱动为systemd,所以需要更改docker驱动。
可查看自己docker驱动命令

sudo docker info|grep Driver

在这里插入图片描述
更改docker驱动,编辑 /etc/docker/daemon.json (没有就新建一个),添加如下启动项参数即可:

#编辑创建文件
sudo vim  /etc/docker/daemon.json
#添加内容
{"exec-opts": ["native.cgroupdriver=systemd"]
}

重启docker

sudo systemctl restart docker.service 

2,更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包
安装软件包以允许apt通过HTTPS使用存储库,已安装软件的可以忽略:

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl

执行第一条命令时候报错:在这里插入图片描述
执行以下:

sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc# Add the repository to Apt sources:
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

发现docker报错解决了,还有这报错:

错误:6 https://packages.cloud.google.com/apt kubernetes-xenial InRelease
无法发起与 packages.cloud.google.com:443 (2404:6800:4012:4::200e) 的连接 - connect (101: 网络不可达) 无法连接上 packages.cloud.google.com:443 (142.250.217.110)。 - connect (111: 拒绝连接)
正在读取软件包列表… 完成
W: 无法下载 https://apt.kubernetes.io/dists/kubernetes-xenial/InRelease 无法发起与 packages.cloud.google.com:443 (2404:6800:4012:4::200e) 的连接 - connect (101: 网络不可达) 无法连接上 packages.cloud.google.com:443 (142.250.217.110)。 - connect (111: 拒绝连接)

从阿里云的 Kubernetes 镜像源安装 Kubernetes 组件。这包括设置必要的软件源、添加签名密钥、更新索引,并最终安装 kubelet、kubeadm 和 kubectl,以便你可以设置和管理 Kubernetes 集群。

apt-get update && apt-get install -y apt-transport-https
curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/deb/Release.key |gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/deb/ /" |tee /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y kubelet kubeadm kubectl

常用命令

kubectl get node 是用来查看 Kubernetes 集群中所有节点的状态信息  
kubectl get pods 验证 Pod 状态:  
kubectl get deployments 查看所有的deployments
kubectl get deployments --all-namespaces
kubectl delete pod <pod-name>   删除指定pod
kubectl delete pods --all  删除所有pod
kubectl delete pods --all -n <namespace> 删除命名空间的所有pod
kubectl delete po pod名称 --force --grace-period=0 -n 名称空间     强制删除pod,速度比较快
kubectl delete pods --all --grace-period=0 --forcekubectl logs d10001 查看pod日志
kubectl describe pod <pod-name>  查看 Kubernetes Pod 的详细信息  kubectl create deployment nginx --image=nginx    创建一个新的 Deployment,让 Kubernetes 部署一个基于 nginx 镜像的应用程序,这个应用会被分配到集群中的工作节点运行
kubectl get services  查看 Kubernetes 集群中所有 Service 的命令  

在这里插入图片描述

kubectl apply -f your-pod-definition.yaml  应用 YAML 配置:  
kubectl exec -it d10001 -- /bin/sh 进入k8s管理的docker

测试

1. 创建一个测试应用程序

部署一个简单的 nginx 应用程序,Kubernetes 会把它调度到工作节点上运行
执行以下命令创建 nginx 部署:

kubectl create deployment nginx --image=nginx

创建一个新的 Deployment,让 Kubernetes 部署一个基于 nginx 镜像的应用程序,这个应用会被分配到集群中的工作节点运行。 nginx 是 Deployment 的名称 ,–image=nginx 是 Docker Hub 上的 nginx 官方镜像 .
该行命令执行后 Deployment 会根据指定的镜像(nginx)创建一个或多个 Pod。这些 Pod 将运行 nginx 容器,并绑定到集群中的节点上。
使用 kubectl create deployment 命令创建 Deployment 时, 即使你没有手动编写 YAML 文件,Kubernetes 仍然会根据默认参数来配置和管理资源。类似下 :

apiVersion: apps/v1             # API 版本,指定使用 apps/v1 API 版本来创建 Deployment 对象
kind: Deployment               # 资源类型,Deployment 控制器用于管理应用程序的副本
metadata:name: nginx                  # Deployment 的名称,这里是 nginx
spec:replicas: 1                  # 希望运行的 Pod 副本数量,这里指定 1 个副本,一个pod类似于一个应用程序selector:matchLabels:app: nginx               # 标签选择器,用于匹配 Pod 的标签,确保 Deployment 管理正确的 Podstemplate:metadata:labels:app: nginx             # Pod 的标签,用于标识 Pods,使其与 Deployment 匹配spec:containers:- name: nginx            # 容器的名称,这里是 nginximage: nginx:latest    # 使用的容器镜像,这里是 nginx:latestports:- containerPort: 80    # 容器监听的端口号,这里是 80
2. 检查 Pod 是否运行

部署完 nginx 之后,你需要确认 Pod(运行中的应用实例)是否正常启动。

kubectl get pods

如果一切正常,你应该看到类似下面的输出,显示 Pod 处于 Running 状态:
在这里插入图片描述
这说明 nginx 应用()已经成功运行在集群的某个节点上。

3. 暴露应用让外部访问

创建一个 Kubernetes Service 来暴露这个 nginx 应用,让你能够从外部访问它。
执行以下命令创建一个 NodePort 类型的服务:

kubectl expose deployment nginx --type=NodePort --port=80

这条命令会创建一个 NodePort 服务,使得集群外部的用户可以通过 Kubernetes 节点(worker节点)的 IP 和一个随机分配的端口来访问 nginx。

4. 查看服务的暴露端口

执行以下命令查看服务的详细信息:

kubectl get services

会看到类似下面的输出:

NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
nginx        NodePort    10.104.142.159   <none>        80:32481/TCP     2m
5. 访问 nginx 服务

现在,可以从命令行通过 curl 访问 nginx。假设节点的 IP 地址是 192.168.74.129,可以通过如下命令访问:

curl http://192.168.74.129:32481

如果一切正常,你会看到 nginx 默认的欢迎页面的 HTML 内容。

6. 验证节点调度

通过以下命令,查看 Pod 被调度到哪个节点上

kubectl get pods -o wide

如有错误,敬请指针,谢谢!

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

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

相关文章

说下JVM中一次完整的GC流程?

大家好&#xff0c;我是锋哥。今天分享关于【说下JVM中一次完整的GC流程?】面试题。希望对大家有帮助&#xff1b; 说下JVM中一次完整的GC流程? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 JVM中的一次完整的垃圾回收&#xff08;GC&#xff09;流程可以概括为…

dnslog+sqlmap外带数据

目录 爆库 爆表 爆列 爆数据 sqlmapDNSlog 外带参数 –dns-domain参数注入 –dns-domain参数为dnslog平台的域名&#xff08;我们也可以使用本地&#xff09; 爆库 python sqlmap.py -u "http://127.0.0.1/sqli/less-8/index.php/?id1" -techniqueB -dns-dom…

提升顾客转化率:融合2+1链动模式AI智能名片与S2B2C商城小程序的创新策略

摘要&#xff1a;在数字化转型的背景下&#xff0c;零售商面临着提升顾客转化率的巨大挑战。本文旨在探讨如何通过整合顾客行为数据、21链动模式、AI智能名片及S2B2C商城小程序等新兴技术与商业模式&#xff0c;来精准定位顾客需求&#xff0c;优化营销策略&#xff0c;从而提高…

以若依移动端版为基础,实现uniapp的flowable流程管理

1.前言 此代码是若依移动端版为基础&#xff0c;实现flowable流程管理&#xff0c;支持H5、APP和微信小程序三端。其中&#xff0c;APP是在安卓在雷电模拟器环境下完成的&#xff0c;其他环境未测试&#xff0c;此文章中所提及的APP均指上述环境。移动端是需要配合若依前后端分…

细说STM32F407单片机RTC的备份寄存器原理及使用方法

目录 一、备份寄存器的功能 二、示例功能 三、项目设置 1、晶振、DEBUG、CodeGenerator、USART6 2、RTC 3、NVIC 4、GPIO 及KEYLED 四、软件设计 1、main.h 2、main.c 3、rtc.c 4、keyled.c、keyled.h 五、运行调试 本实例旨在介绍备份寄存器的作用。本实例继续使…

建筑行业安全技能竞赛流程方案

一、比赛时间&#xff1a; 6月23日8&#xff1a;30分准时到场&#xff1b;9&#xff1a;00&#xff0d;10&#xff1a;00理论考试&#xff1b;10&#xff1a;10-12:00现场隐患答疑&#xff1b;12:00-13&#xff1a;30午餐&#xff1b;下午13&#xff1a;30-15&#xff1a;30现场…

解锁机器学习核心算法 | 线性回归:机器学习的基石

在机器学习的众多算法中&#xff0c;线性回归宛如一块基石&#xff0c;看似质朴无华&#xff0c;却稳稳支撑起诸多复杂模型的架构。它是我们初涉机器学习领域时便会邂逅的算法之一&#xff0c;其原理与应用广泛渗透于各个领域。无论是预测房价走势、剖析股票市场波动&#xff0…

JAVA生产环境(IDEA)排查死锁

使用 IntelliJ IDEA 排查死锁 IntelliJ IDEA 提供了强大的工具来帮助开发者排查死锁问题。以下是具体的排查步骤&#xff1a; 1. 编写并运行代码 首先&#xff0c;我们编写一个可能导致死锁的示例代码&#xff1a; public class DeadlockExample {private static final Obj…

解决DeepSeek服务器繁忙问题

目录 解决DeepSeek服务器繁忙问题 一、用户端即时优化方案 二、高级技术方案 三、替代方案与平替工具&#xff08;最推荐简单好用&#xff09; 四、系统层建议与官方动态 用加速器本地部署DeepSeek 使用加速器本地部署DeepSeek的完整指南 一、核心原理与工具选择 二、…

机器学习 - 大数定律、可能近似正确学习理论

一、大数定律&#xff1a; 大数定律是概率论中的一个基本定理&#xff0c;其核心思想是&#xff1a;当独立重复的随机试验次数足够大时&#xff0c;样本的平均值会趋近于该随机变量的期望值。下面从直观和数学两个角度来说明这一概念&#xff1a; 1. 直观理解 重复试验的稳定…

【触想智能】工业显示器和普通显示器的区别以及工业显示器的主要应用领域分析

在现代工业中&#xff0c;工业显示器被广泛应用于各种场景&#xff0c;从监控系统到生产控制&#xff0c;它们在实时数据显示、操作界面和信息传递方面发挥着重要作用。与普通显示器相比&#xff0c;工业显示器在耐用性、可靠性和适应特殊环境的能力上有着显著的差异。 触想工业…

PyCharm2024使用Python3.12在Debug时,F8步进时如同死机状态

在使用时PyCharm2024&#xff0b;Python3.12&#xff0c;在程序进行调试时&#xff0c;按F8步进时如同死机状态。 1、相同的程序在PyCharm2023&#xff0b;Python3.9时是没有问题的&#xff0c;因此决定重装PyCharm2023&#xff0b;Python3.9&#xff0c;进行调试——调试OK。 …

LLaMA-Factory DeepSeek-R1 模型 微调基础教程

LLaMA-Factory 模型 微调基础教程 LLaMA-FactoryLLaMA-Factory 下载 AnacondaAnaconda 环境创建软硬件依赖 详情LLaMA-Factory 依赖安装CUDA 安装量化 BitsAndBytes 安装可视化微调启动 数据集准备所需工具下载使用教程所需数据合并数据集预处理 DeepSeek-R1 可视化微调数据集处…

STM32 如何使用DMA和获取ADC

目录 背景 ‌摇杆的原理 程序 端口配置 ADC 配置 DMA配置 背景 DMA是一种计算机技术&#xff0c;允许某些硬件子系统直接访问系统内存&#xff0c;而不需要中央处理器&#xff08;CPU&#xff09;的介入&#xff0c;从而减轻CPU的负担。我们可以通过DMA来从外设&#xf…

DeepSeek与医院电子病历的深度融合路径:本地化和上云差异化分析

一、引言 1.1 研究背景与意义 在医疗信息化快速发展的当下,电子病历系统已成为医院信息管理的核心构成。电子病历(EMR)系统,是指医务人员在医疗活动过程中,使用医疗机构信息系统生成的文字、符号、图标、图形、数据、影像等数字化信息,并能实现存储、管理、传输和重现的…

【kafka系列】生产者

目录 发送流程 1. 流程逻辑分析 阶段一&#xff1a;主线程处理 阶段二&#xff1a;Sender 线程异步发送 核心设计思想 2. 流程 关键点总结 重要参数 一、核心必填参数 二、可靠性相关参数 三、性能优化参数 四、高级配置 五、安全性配置&#xff08;可选&#xff0…

Docker 入门与实战:从安装到容器管理的完整指南

&#x1f680; Docker 入门与实战&#xff1a;从安装到容器管理的完整指南 &#x1f31f; &#x1f4d6; 简介 在现代软件开发中&#xff0c;容器化技术已经成为不可或缺的一部分。而 Docker 作为容器化领域的领头羊&#xff0c;以其轻量级、高效和跨平台的特性&#xff0c;深…

MySQL 插入替换语句(replace into statement)

我们日常使用 insert into 语句向表中插入数据时&#xff0c;一定遇到过主键或唯一索引冲突的情况&#xff0c;MySQL的反应是报错并停止执行后续的语句&#xff0c;而replace into语句可以实现强制插入。 文章目录 一、replace into 语句简介1.1 基本用法1.2 使用set语句 二、注…

基于SpringBoot+Vue的智慧校园管理系统设计和实现(源码+文档+部署讲解)

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 .&#x1f680; 技术架构技术栈全景 &#x1f3af; 功能模块功能矩阵表&#x1f4ca; 数据库设计核心ER关系图 &#x1f4bb; 核心…

moveable 一个可实现前端海报编辑器的 js 库

目录 缘由-胡扯本文实验环境通用流程1.基础移动1.1 基础代码1.1.1 data-* 解释 1.2 操作元素创建1.3 css 修饰1.4 cdn 引入1.5 js 实现元素可移动1.6 图片拖拽2.缩放3.旋转4.裁剪 懒得改文案了&#xff0c;海报编辑器换方案了&#xff0c;如果后面用别的再更。 缘由-胡扯 导火…