eks实践案例

Eks:  ami-0c23197c88296c1b5

eks集群:

拉面 - 知乎

https://blog.csdn.net/saynaihe/category_12204222.html

什么是 Amazon EKS? - Amazon EKS

 kubectl 使用指南

 https://zhuanlan.zhihu.com/p/364994610

 k8s HPA自动伸缩

 手把手教你 K8s pod 动态弹性扩缩容(HPA )部署!步骤齐全,少走坑路 - 知乎

vim nginx-test.yaml

apiVersion: apps/v1   #指定api版本标签

#定义资源的类型/角色,deployment为副本控制器

#此处资源类型可以是Deployment、Job、Ingress、Service等

kind: Deployment

#定义资源的元数据信息,比如资源的名称、namespace、标签等信息

metadata:

#定义资源的名称,在同一个namespace空间中必须是唯一的

  name: nginx-deployment

  labels:

    app: nginx

spec:  #定义deployment资源需要的参数属性,诸如是否在容器失败时重新启动容器的属性

  replicas: 3  #定义副本数量

  selector:  #定义标签选择器

    matchLabels:  #定义匹配标签  #需与后面的.spec.template.metadata.labels定义的标签保持一致

      app: nginx

#定义业务模板,如果有多个副本,所有副本的属性会按照模板的相关配置进行匹配

  template:

    metadata:

#定义Pod副本将使用的标签,需与前面的.spec.selector.matchLabels定义的标签保持一致

      labels:

        app: nginx

    spec:

      containers:  #定义容器属性

      - name: nginx  #定义一个容器名,一个-name:定义一个容器

        image: nginx:1.15.4  #定义容器使用的镜像以及版本

        ports:

        - containerPort: 80  #定义容器对外的端口

#------------------------------------------------------------------#

#无注释

apiVersion: apps/v1

kind: Deployment

metadata:

  name: nginx-deployment

  labels:

    app: nginx

spec:

  replicas: 3

  selector:

    matchLabels:

      app: nginx

  template:

    metadata:

      labels:

        app: nginx

    spec:

      containers:

      - name: nginx

        image: nginx:1.15.4

        ports:

        - containerPort: 80

[root@master ~]# vim nginx-svc-test.yaml

apiVersion: v1

kind: Service

metadata:

  name: nginx-svc

  labels:

    app: nginx

spec:

  type: NodePort

  ports:

  - port: 80

    targetPort: 80

  selector:

#此处定义的selector要与deployment所定义的selector相同

#service依靠标签选择器来检索提供服务的nodes

app: nginx

port是k8s集群内部访问service端口,即通过clusterIP:port从Pod所在Node上访问到service;nodePort是外部访问k8s集群中service端口,通过nodeIP:nodePort从外部访问到service;targetPort是Pod端口,从port或nodePort来的流量经过kube-proxy反向代理负载均衡转发到后端Pod的targetPort上,最后进入容器;containerPort是Pod内部容器的端口,targetPort映射到containerPort。

--dry-run:试运行,打印相应的API对象而不执行创建

kubectl create deployment dryrun-test --image=nginx --port=80 --replicas=3 --dry-run # yaml清单

kubectl run dryrun-test --image=nginx --port=80 --replicas=3 --dry-run -o json #json清单

创建实例

kubectl apply -f dryrun-test.yaml

kubectl get pod,deploy

由资源生成yaml文件

kubectl get deploy/dryrun-test -o yaml

kubectl get deploy/dryrun-test -o yaml > export-test.yaml

kubectl run dryrun-test --image=nginx --port=80 --replicas=3 --dry-run -o yaml > dryrun-test.yaml

已有相关资源,使用 get 命令 --export 选项

kubectl get deploy dryrun-test --export -o yaml > export-test.yaml

kubectl explain deployments.spec.template.spec.containers

没有相关资源,使用 run 命令 --dry-run 选项

动手操作可以参考AWS. github的文档:https://github.com/aws-samples/eks-workshop-greater-china/tree/master/global/2021_GCR_MAD_Day/lab2-eks
ALB的部署,可以参考下这个文档:https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.4/deploy/installation/
创建集群:https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/create-cluster.html
安装部署均衡:https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/aws-load-balancer-controller.html
动手训练营来做一下:https://catalog.us-east-1.prod.workshops.aws/workshops/4bb8f4a9-5861-4fb4-96d2-aba94737b2d3/zh-CN/lab2/task3
配置ingress时,有个iam权限的yaml,用这个https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.4.6/docs/install/iam_policy.json
参考这个文档:https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/efs-csi.html
https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/sample-deployment.html

我刚刚问了下同事,您这边可以看下alb ingress controller的日志:kubectl logs -f -n kube-system -l app.kubernetes.io/instance=aws-load-balancer-controller

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tsfluentbitusr
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::254278701124:role/tsAmazonEKSLoadBalancerControllerRole
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-tsfluentbit
  labels:
    app: app-tsfluentbit
spec:
  selector:
    matchLabels:
      app: app-tsfluentbit
  replicas: 1
  template:
    metadata:
      labels:
        app: app-tsfluentbit
    spec:
      serviceAccountName: tsfluentbitusr
      containers:
      - image: httpd
        imagePullPolicy: Always
        name: app-tsfluentbit
        ports:
        - containerPort: 80
        volumeMounts:
        - name: logs
          mountPath: /usr/local/apache2/logs
      volumes:
      - name: logs
        hostPath:
          path: /var/log/tsfluentbithttpdlog
---
kind: Service
apiVersion: v1
metadata:
  name: app-tsfluentbit
spec:
  selector:
    app: app-tsfluentbit
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  type: NodePort
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: app-tsfluentbit
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/tags: Environment=dev,Team=test
    alb.ingress.kubernetes.io/target-type: ip
spec:
  ingressClassName: alb
  rules:
    - http:
        paths:
          - pathType: Prefix
            path: "/"
            backend:
              service:
                name: app-tsfluentbit
                port:
                  number: 80

kubectl get pods -o wide  -n 
kubectl describe pod/multi-pods
执行命令:kubectl exec -it pod名称 sh或者bash
执行命令:kubectl exec -it pod名称 -c 容器名称 sh或者bash
##  如果不使用-c指定容器时,缺省会进入第一个容器中
kubectl exec -it multi-pods -c yellow-pod-container sh

docker ps |grep multi-pods
docker inspect k8s_POD_multi-pods_default_3c744cee-6ce3-4de3-99ab-f8909fee0147_0 |grep Id
pause基础容器,其他容器通过id关联到该容器

容器已经崩溃停止,您可以仍然使用 kubectl logs --previous 获取该容器的日志,只不过需要添加参数 --previous

# 追踪名称空间 nsA 下容器组 pod1 的日志
kubectl logs -f pod1 -n nsA

# 追踪名称空间 nsA 下容器组 pod1 中容器 container1 的日志
kubectl logs -f pod1 -c container1 -n nsA

# 查看容器组 nginx 下所有容器的日志
kubectl logs nginx --all-containers=true

# 查看带有 app=nginx 标签的所有容器组所有容器的日志
kubectl logs -lapp=nginx --all-containers=true

# 查看容器组 nginx 最近20行日志
kubectl logs --tail=20 nginx

# 查看容器组 nginx 过去1个小时的日志
kubectl logs --since=1h nginx


1.pod若处于运行状态,则通过kubectl logs 即可

# 查看指定pod的日志
kubectl logs <pod_name>
kubectl logs -f <pod_name> #类似tail -f的方式查看(tail -f 实时查看日志文件 tail -f 日志文件log)

# 查看指定pod中指定容器的日志
kubectl logs <pod_name> -c <container_name>

kubectl logs pod_name -c container_name -n namespace (一次性查看)
kubectl logs -f <pod_name> -n namespace (tail -f方式实时查看)
2.若pod处于init状态,则需要通过docker ps查看

#获取对应的pod name
kubectl get pods -n  namespace -o wide (STATUS是init的pod_name)

#通过docker ps 获取该pod的中的CONTAINER ID
docker ps | grep pod_name

#通过docker log获取对应的日志信息
docker logs CONTAINER_ID

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

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

相关文章

【花雕学AI】我们如何才能避免被ChatGPT替代?——一个跨学科的视角

ChatGPT是一个由OpenAI开发的AI文本工具&#xff0c;它可以理解和生成自然语言&#xff0c;从而与用户进行对话。ChatGPT是基于GPT-3或者GPT-4模型的&#xff0c;这是目前最大和最先进的语言模型之一。ChatGPT通过在大量的互联网文本数据上进行预训练和强化学习&#xff0c;学习…

Mongodb 在工业场景下的数字解决方案

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

UICollectionView 实现整页翻动(每页3个cell)

提示&#xff1a;页面架构是通过UICollectionView做的分页&#xff0c;分页点PageControl使用的是<SDCycleScrollView/TAPageControl.h> &#xff0c;布局架构使用的是Masonry 前言 为了实现UICollectionView无限翻动&#xff0c;连续滑动&#xff0c;主要是利用pagingE…

2023年计算机视觉与模式识别国际会议(CCVPR 2023)

会议简介 Brief Introduction 2023年计算机视觉与模式识别国际会议(CCVPR 2023) 会议时间&#xff1a;2023年9月15日-17日 召开地点&#xff1a;英国牛津 大会官网&#xff1a;www.ccvpr.org 计算机视觉技术与模式识别是现代科学中备受关注的热点技术&#xff0c;它的革新对各行…

改写句子的软件有哪些-免费改写文章的软件

改写句子的软件 改写句子的软件是一种广泛应用于文字处理的工具&#xff0c;其主要作用是通过对原文中的语言结构和表述方式进行调整和优化&#xff0c;以改进文章的质量和可读性。改写句子的软件广泛用于新闻报道、科学文章、学术论文、书籍等各类文本材料中&#xff0c;旨在…

港科夜闻|广东省委常委、副省长王曦到访香港科技大学

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、广东省委常委、副省长王曦到访香港科技大学。在香港科大校长、粤港澳大湾区院士联盟理事会主席叶玉如教授陪同下&#xff0c;王曦常委率代表团参观国家级科研设施和了解学校发展情况&#xff0c;并与在港中国科学院院士座…

分享kubernetes部署:cachecloud部署说明

cachecloud部署 cachecloud是搜狐视频(sohutv)Redis私有云平台 已省略~ 挑选一台服务器部署cachecloud-web 将cachecloud-web打成war包&#xff0c;可以在服务器上打包&#xff0c;也可以在本地打包&#xff0c;这里举一个在服务器上打包的例子。 将源代码下载到/opt下 已省略~…

使用 SaleSmartly 实时聊天提高转化率

在竞争激烈的电子商务环境中&#xff0c;很难给客户留下持久的印象&#xff0c;与他们建立关系更加困难。但是&#xff0c;提供个性化的体验和产品是超越竞争对手的最佳方式之一。这就是为什么许多跨境电子商务企业将与客户的个性化沟通作为他们的首要任务。 SaleSmartly&#…

【Java数据结构】优先级队列(堆)

优先级队列&#xff08;堆&#xff09; 概念模拟实现堆的概念堆的存储方式堆的创建向下调整堆的创建建堆的时间复杂度 堆的插入和删除堆的插入堆的删除 用堆模拟实现优先级队列 常用接口PriorityQueue的特性PriorityQueue常用接口介绍构造方法插入/删除/获取优先级最高的元素 P…

Lecture 14:Life-long Learning

目录 Catastrophic Forgetting 灾难性遗忘(Catastrophic Forgetting)的克服之道 Selective Synaptic Plasticity Additional Neural Resource Allocation Memory Reply 其他 Catastrophic Forgetting ——为什么今日的人工智慧无法成为天网&#xff1f;灾难性遗忘 Life…

2-Lampiao百个靶机渗透(精写-思路为主)框架漏洞利用2

特别注明&#xff1a;本文章只用于学习交流&#xff0c;不可用来从事违法犯罪活动&#xff0c;如使用者用来从事违法犯罪行为&#xff0c;一切与作者无关。 文章目录 前言一、环境重新部署二、AWVSxray联动和xraybs联动1.安装AWVSxray2.让xray和bs先联动3.AWVS和xray联动 三、p…

Camtasia2023官方中文版免费下载

在现在的网络互联网时代&#xff0c;越来越多的人走上了自媒体的道路。有些自媒体人会自己在网络上录制精彩视频&#xff0c;也有一些人会将精彩、热门的电影剪辑出来再加上自己给它的配音&#xff0c;做成大家喜欢看的电影剪辑片段。相信不管大家是自己平时有独特的爱好也好、…

欧科云链OKLink:2023年4月安全事件盘点

一、基本信息 2023年4月安全事件共造约6000万美金的损失&#xff0c;与上个月相比&#xff0c;损失金额有所降落&#xff0c;但安全事件数量依旧不减。其中&#xff0c;Yearn Finance因参数配置错误&#xff0c;导致了1000多万美金的损失。同时&#xff0c;有一些已经出现过的…

ZC706P试验PL_DDR3内存条的步骤方法

ZC706P 板卡完全兼容XILINX官方的ZC706,当然也支持PL外挂的1G的DDR3内存条&#xff0c;这个片BLOG我提供从官方下载的一个文档和一个项目&#xff0c;演示一下验证DDR3的步骤。 步骤1&#xff1a;准备好板子&#xff0c;安装好软件。 链接&#xff1a;https://pan.baidu.com/s…

JVM原理与实战(一)

jvm的基本结构 1.类加载系统 负责从文件系统或者网络中加载Class信息 2.方法区 &#xff08;1&#xff09;加载的类信息存放于一块称为方法去的内存空间 &#xff08;2&#xff09;除了类的信息外&#xff0c;方法区中可能还存放着运行时常量池信息&#xff0c;包括字符串字面…

什么是皮安计?皮安表测试测量软件分享NS-SourceMeter

什么是皮安计 测量低直流电流&#xff0c;其需求常常远远超出数字万用表的功能。一般来说&#xff0c;数字万用表缺少测量低于100nA的电流所需的灵敏度。即使在较高的电流水平上&#xff0c;一个DMM的输入电压降&#xff08;电压负担&#xff09;高达几百毫伏&#xff0c;也不…

DD驱动鼠标键盘(驱动级别机器人使用鼠标键盘)

官网下载 DD虚拟键盘虚拟鼠标 github下载 GitHub - ddxoft/master 点击下载后&#xff0c;将驱动包下&#xff0c;这里以win7为例 setup运行安装 安装成功后 可以打开电脑管理&#xff0c;可以看见DD虚拟鼠标和键盘 这里以JAVA接入为例 使用管理员权限启动eclipse &#…

汇编语言-复习自用

本文用于自我复习汇编语言&#xff0c;参考b站一位老师的讲解整理而成&#xff0c;感谢老师的无私付出视频链接链接 文章目录 1.第一章1.1计算机组成1.2读取1.3 寄存器及数据存储1.4 mov和and指令1.5 确定物理地址1.6 内存分段表示法1.7debug使用1.8CS:IP1.9jmp指令改变csip1.1…

【react 全家桶】高级指引(上)

本人大二学生一枚&#xff0c;热爱前端&#xff0c;欢迎来交流学习哦&#xff0c;一起来学习吧。 <专栏推荐> &#x1f525;&#xff1a;js专栏 &#x1f525;&#xff1a;vue专栏 &#x1f525;&#xff1a;react专栏 文章目录 12 【react高级指引&#xff08;上&…

SSM框架(SpringBoot快速构建)

简介 本文意在快速构建一个可以接受前端访问&#xff0c;并进行数据库查找&#xff0c;随后返回相关信息给前端的项目。 ssm为Spring IocSpringMVCMyBatis的缩写 Spring Ioc:管理对象的一个工厂。对象之间有依赖&#xff0c;相互引用Spring MVC:开发代码模式Mybatis:操作数据…