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

网站服务器ipv6网站建设与设计教程

网站服务器ipv6,网站建设与设计教程,汽车之家网页版跳极速版,家具在线设计网站文章目录 一、k8s是什么应用程序早期部署形式容器的引入k8s的作用 二、k8s中的常用对象1、Node获取node信息 2、Namespacenamespace的使用 3、Pod生命周期pod的使用 4、DaemonSetDaemonSet的使用 5、Deployment创建deploy 6、ReplicaSet7、StatefulSet创建StatefulSet 8、更新操… 文章目录 一、k8s是什么应用程序早期部署形式容器的引入k8s的作用 二、k8s中的常用对象1、Node获取node信息 2、Namespacenamespace的使用 3、Pod生命周期pod的使用 4、DaemonSetDaemonSet的使用 5、Deployment创建deploy 6、ReplicaSet7、StatefulSet创建StatefulSet 8、更新操作——kubectl patch 一、k8s是什么 应用程序早期部署形式 早期各个应用程序在物理服务器上运行应用程序。无法为物理服务器中的应用程序定义资源边界这会导致资源分配问题。 例如如果在物理服务器上运行多个应用程序则可能会出现一个应用程序占用大部分资源的情况 结果可能导致其他应用程序的性能下降。一种解决方案是在不同的物理服务器上运行每个应用程序但是由于资源利用不足而无法扩展 并且维护许多物理服务器的成本很高。 作为解决方案引入了虚拟化。虚拟化技术允许你在单个物理服务器的 CPU 上运行多个虚拟机VM。 虚拟化允许应用程序在 VM 之间隔离并提供一定程度的安全因为一个应用程序的信息 不能被另一应用程序随意访问。虚拟化技术能够更好地利用物理服务器上的资源并且因为可轻松地添加或更新应用程序而可以实现更好的可伸缩性降低硬件成本等等。 容器的引入 容器类似于 VM但是它们具有被放宽的隔离属性可以在应用程序之间共享操作系统OS。 因此容器被认为是轻量级的。容器与 VM 类似具有自己的文件系统、CPU、内存、进程空间等。 由于它们与基础架构分离因此可以跨云和 OS 发行版本进行移植。 k8s的作用 Kubernetes 提供了一个可弹性运行分布式系统的框架用于管理运行应用程序的容器。它可以提供服务发现和负载均衡、存储编排、自动部署和回滚、自我修复等。 二、k8s中的常用对象 1、Node Node是k8s集群中相对于Master而言的工作主机。Node可以是一台物理主机也可以是一台虚拟机。在每个Node上运行用于启动和管理Pid的服务Kubelet并能够被Master管理。 获取node信息 kubectl get nodes kubectl describe node nodeName 2、Namespace namespace命名空间相当于一个虚拟集群为资源提供了一个范围资源的名称需要在namespace内是唯一的。namespace不能相互嵌套每个 Kubernetes 资源只能在一个namespace中。 namespace的使用 查看namespace kubectl get ns 获取详细信息 kubectl describe namespaces name 创建namespace kubectl create namespace namespace-name 删除namespace kubectl delete namespaces namespace-name 3、Pod Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。 Pod 是一组一个或多个 容器 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置colocated的并且一同调度在共享的上下文中运行。 Pod 所建模的是特定于应用的“逻辑主机”其中包含一个或多个应用容器 这些容器是相对紧密的耦合在一起的。 在非云环境中在相同的物理机或虚拟机上运行的应用类似于 在同一逻辑主机上运行的云应用。 生命周期 Pod 在其生命周期中只会被调度一次。 一旦 Pod 被调度到某个节点Pod 会一直在该节点运行直到 Pod 停止或者被终止。 Pod 自身不具有自愈能力。如果 Pod 被调度到某节点而该节点之后失效Pod 会被删除类似地Pod 无法在因节点资源耗尽或者节点维护而被驱逐期间继续存活。Kubernetes使用控制器来管理这些相对而言可随时丢弃的 Pod 实例。 pod的使用 创建pod kubectl apply -f my-pod.yaml 查看pod基本信息 kubectl get podName -n namespace1 kubectl get pods -A | grep xxx 查看pod更多信息 kubectl get podName -n test1-ns -o wide 查看pod的yaml kubectl get podName -n test1-ns -o yaml 查看pod运行详情信息 kubectl describe podName -n namespace1 删除pod kubectl delete podName -n test1-ns 查看pod日志 -f 监听pod日志 –tail输出最近的20条日志 kubectl logs -f podName --tail20 -n namespace1 进入pod kubectl exec -it podName -n namespace1 – /bin/bash 4、DaemonSet DaemonSet确保全部或者某些节点上运行一个Pod 的副本。 当有节点加入集群时 也会为他们新增一个 Pod。当有节点从集群移除时这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。 DaemonSet常用于在每个节点上运行集群守护进程、在每个节点上运行日志收集守护进程和在每个节点上运行监控守护进程等。 DaemonSet的使用 资源模板testds.yaml信息如下 apiVersion: apps/v1 kind: DaemonSet metadata:name: testdsnamespace: test1-ns spec:selector:matchLabels:app: testdstemplate:metadata:labels:app: testdsspec:# 污点容忍配置 添加此配置后ds可以运行到 master 节点# taint节点打上污点 再给pod加toleration 使其可以被调度到被taint的节点上#tolerations:#- key: node-role.kubernetes.io/master# operator: Exists# effect: NoScheduleaffinity:nodeAffinity:# 节点亲和性选择策略(强制) requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: nvidia.kubernetes.io/gpuoperator: Invalues:- TeslaT4- TeslaP4 #域名配置hostAliases:- ip: 10.20.66.111hostnames:- testnode01 containers:- name: testds# 镜像地址image: xxxxxx/testds:V1.0.0-20240627imagePullPolicy: IfNotPresent# 所需资源resources:requests:cpu: 300mmemory: 300Milimits:cpu: 3000mmemory: 6000Mi# 端口映射ports:- name: test-portcontainerPort: 9111hostPort: 31111protocol: TCP- name: test-port2containerPort: 1555hostPort: 30555protocol: UDP# 环境变量env:- name: MY_POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name# 磁盘映射 volumeMounts:- name: testds-log# 容器内地址mountPath: /home/log/testds/volumes:- name: testds-log# 宿主机地址hostPath:path: /home/log/testds/# 不存在type或type为空不检查 为Directory目录必须存在 DirectoryOrCreate目录不存在则新建。type: DirectoryOrCreate创建/更新命令 kubectl apply -f testds.yaml 查看详细信息 kubectl describe ds-name -n namespace-name 修改DeamonSet 可以看到某些describe看不到的信息 kubectl edit DaemonSet ds-name -n namespace-name 5、Deployment Deployment 通过管理 ReplicaSet 来确保任何时间都有指定数量的 Pod 副本在运行。Deployment运行无状态应用程序如果需要进行升级则需要替换副本集。 创建deploy 新建一个deploy模板 deploy-nginx.yaml内容如下 其实deployment的yaml和daemonset的差别除了kind不同就只多了.spec.replicas apiVersion: apps/v1 kind: Deployment metadata:labels:# 自定义标签app: nginx-deploy-test# 资源名称name: nginx-test-1namespace: test1 spec:# pod 副本数量replicas: 3# 模板选择器selector:matchLabels:# 选择下方声明的 templateapp: nginx-testtemplate:metadata:labels:app: nginx-testspec:containers:- image: nginxname: nginx创建/更新命令 kubectl apply -f deploy-nginx.yaml 以上示例中 1、创建名为nginx-test-1由 .metadata.name 字段标明的 deployment 2、该deployment创建三个由 replicas 字段标明Pod副本 3、selector 字段定义 Deployment 如何查找要管理的 Pods。 在这里选择在 Pod 模板中定义的标签app: nginx-test。 4、spec.selector.matchLabels 字段是 {key,value} 键值对映射。 在 matchLabels 映射中的每个 {key,value} 映射等效于 matchExpressions 中的一个元素 即其 key 字段是 “key”operator 为 “In”values 数组仅包含 “value”。 在 matchLabels 和 matchExpressions 中给出的所有条件都必须满足才能匹配 注意 如果没有现成的模板可以使用 --dry-run 快速生成一个deploy资源模板 kubectl create deploy nginx-test --imagenginx --dry-runclient --replicas3 -oyaml -n test1 6、ReplicaSet ReplicaSet可以看作是Deployment控制器的底层组件专注于维护Pod的副本数量确保集群中的Pod实例始终符合用户定义的期望状态。 7、StatefulSet StatefulSet 其实我并没有用过但还是简单介绍下。 StatefulSet用来管理有状态应用的工作负载Api对象。StatefulSet 用来管理某 Pod 集合的部署和扩缩 并为这些 Pod 提供持久存储和持久标识符因此适用于数据库和分布式系统等有状态应用的部署。和 Deployment 类似 StatefulSet 管理基于相同容器规约的一组 Pod。但和 Deployment 不同的是 StatefulSet 为它们的每个 Pod 维护了一个有粘性的 ID。这些 Pod 是基于相同的规约来创建的 但是不能相互替换无论怎么调度每个 Pod 都有一个永久不变的 ID。 创建StatefulSet 创建资源模板信息 web.yaml 其中包括 一个 headless-service无头服务和 一个 StatefulSet svc 的 name 必须与 sts 的 spec.serviceName 相等否则无法通过路由规则找到容器服务 这里为了方便就挂载了一个空目录如果有自己的 storageClass 也可以使用 apiVersion: v1 kind: Service metadata:# must be equal sts .spec.serviceNamename: nginx-snlabels:app: nginx spec:ports:- port: 80name: webclusterIP: Noneselector:app: nginx --- apiVersion: apps/v1 kind: StatefulSet metadata:name: web spec:# must be equal headless-svc metadata.nameserviceName: nginx-snreplicas: 2selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latestimagePullPolicy: IfNotPresentports:- containerPort: 80name: webvolumeMounts:- name: nginx-volumemountPath: /usr/share/nginx/htmlvolumes:- name: nginx-volume# 为了演示方便挂载个空目录emptyDir: {}创建/更新命令依旧使用kubectl apply -f web.yaml 说明 直接删除sts对应的pods时sts会重新调度生成一个新的podpod ip会变但是编号不变。比如删除的是po/web-0sts会重新调度生成一个web-0。 sts 也可以修改对应的副本数新生成的pod 编号会依次递增。 假设现在有三个pod 分别为web-0、web-1、web-2如果删除web-1sts会重新调度生成一个新的web-1之前的pod保持不变 8、更新操作——kubectl patch 要更新一个已创建的比如deployment 可以用kubectl patch 比如指定它的nodeSelector kubectl patch deployment test-server --patch {spec: {template: {spec: {nodeSelector: {kubernetes.io/hostname: worker1}}}}} -n test-ns 这样看可能看着眼晕我们给它展开它其实是这么个格式 kubectl patch deployment deployment-name -n namespace --patch {spec: {template: {spec: {nodeSelector: {kubernetes.io/hostname: worker1}}}} }又或者加域名配置 kubectl patch deployment deployment-name -n namespace --typejson -p[{op: add,path: /spec/template/spec/hostAliases,value: [{ip: 127.0.0.1,hostnames: [example.com]},{ip: 10.20.30.40,hostnames: [foo.bar, baz.qux]}]} ]
http://www.w-s-a.com/news/369995/

相关文章:

  • 淮阳住房和城乡建设网站桂林新闻桂林人论坛
  • 公司网站建设价格标准老版本网站开发工具
  • 门户网站开发费怎做账做网站交互demo工具
  • 中山最好的网站建设黄村网站建设价格
  • 企业网站首页应如何布局互联网营销师证书报名入口
  • 绍兴做网站哪家好篮球网站设计
  • 鹤岗市城乡建设局网站西域电商平台官网
  • 外贸网网站建设蓝色管理系统网站模版
  • 网站服务器关闭阿里巴巴logo
  • 青岛 网站制作公司乐从网站制作
  • wordpress 微网站模板怎么用wordpress 文档下载
  • ppt网站建设的目的合肥做网站找哪家好
  • wordpress站点路径redis缓存wordpress
  • 专门设计网站的公司叫什么百度 门户网站
  • 网站建设丶金手指专业旅游网站系统哪个好
  • 苏州工业园区两学一做网站成都企业排名
  • 医药网站开发wordpress境外支付
  • 营销自己的网站网站如何做标题优化
  • 玖云建站系统wordpress nodejs版本
  • 网站开发费用计入什么二级科目重庆企业网站推广
  • wordpress 菜单怎么使用方法宜春网站推广优化
  • dede 网站图标怎么自学建筑设计
  • 河北斯皮尔网站建设做微信小程序和做网站
  • 沈阳市住房和城乡建设局网站创意上海专业网站建设
  • 免费学编程国内网站it需要什么学历
  • 相城做网站的公司网站建设范本
  • 怎么样查中企动力做的网站阿里邮箱企业版手机版
  • 电子商务网站建设与管理试卷6江门网站建设联系电话
  • 公司的网站建设做什么费用四川圣泽建设集团有限公司网站
  • 为什么网站很少做全屏福利WordPress网站自动采集源码