k8s原理

本文详细介绍了k8s的核心概念,包括Service如何提供服务,Deployment如何创建服务和Pod,以及Pod的内部结构。重点强调了Pod作为基本扩容缩容单位的重要性,说明了Pod内的容器通讯方式,并探讨了Pod创建、删除及管理的方法,如使用kubectl命令和yaml文件。此外,还提及了如何通过Deployment和yaml文件进行Pod的管理和扩容。
摘要由CSDN通过智能技术生成

k8s的结构

  • service提供服务
  • deployment 创建服务,包含多个pod
  • pod包含多个容器
  • 容器包含镜像

1.pod无论在不同的节点还是在不同的网络拓补上,pod之间的通讯,都是通过ip(无NAT转换)直接进行

2.pod内是容器,可以有多个或者一个,一般运行一个容器。同一pod的容器一起运行

  • 为什么一般一个pod一个容器?
    • 因为一个pod只能部署到一个节点中,这样不能充分利用多节点k8s集群的性能
    • pod是扩容/缩容的基本单位,不能扩容/缩容容器。不同容器需要不同的扩容/缩容需求

3.pod的创建

  • 通过向k8s rest api提供的json或者yaml描述文件创建------可以将配置文件存在版本控制系统中。
    • 创建pod命令:kubectl create -f  xxx.yml
    • 删除pod命令:kubectl delete -f  xxx.yml
  • 通过kubectl run 创建 -----只能配置有限属性。
  • 通过deployment的yaml创建pod
    • 一个完整的deployment 的yaml文件
    • Gi是1024Mi  Mi=1024Ki
    • G是1000M  M=1000K
apiVersion: apps/v1beta2  k8s 版本
kind: Deployment   资源类型
metadata:
  name: >-
    candy-service-deployment  类型名称 
  labels:
    app: candy-service   k8s通过deployment的label区分不同的服务
spec:
  replicas: 1   deployment包含几个pod,用于扩容缩容
  selector:
    matchLabels:
      app: candy-service
  template:
    metadata:
      labels:
        app: candy-service
    spec:
      dnsPolicy: ClusterFirst
      terminationGracePeriodSeconds: 30
      imagePullSecrets:
        - name: regsecret
      containers:
        - name: candy-service
          image: >-
            registry-vpc.cn-beijing.aliyuncs.com/vlightv-test/candy-service:images_tag
          imagePullPolicy: Always
          stdin: true
          tty: true
          env:
            - name: CONFIG_SERVER_URI
              value: 'http://10.0.0.121:8863'
            - name: CONFIG_SERVER_LABEL
              value: tester
            - name: aliyun_logs_catalina
              value: "stdout" 
            - name: candy.schedule.config
              value: candy-service
          resources:
            limits:
              cpu: 2000m
              memory: 1Gi
            requests:
              cpu: 500m
              memory: 128Mi
          readinessProbe:
            initialDelaySeconds: 60
            periodSeconds: 10
            timeoutSeconds: 1
            successThreshold: 1
            failureThreshold: 3
            httpGet:
              scheme: HTTP
              path: /actuator/info
              port: 8016
      restartPolicy: Always

 

4.pod的yaml

  • kubectl get po xxx -o yaml 
  • apiVersion: v1   k8s版本
    kind: Pod        k8s资源类型
    metadata:        pod元数据
      annotations:
        sidecar.istio.io/status: '{"version":"17bcca7d301f947fa6f7ba259a9a03b0606d7b6444c8a6d117549fbc99126297","initContainers":["istio-init"],"container
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值