首页 > 其他分享 >资源清单创建

资源清单创建

时间:2023-10-08 15:46:27浏览次数:35  
标签:kind name 创建 apiVersion v1 mysql 清单 资源 metadata

目录

http://k8s.driverzeng.com/v1.19/

不同资源清单用---进行隔离

---

命名空间

# 资源清单创建
apiVersion: "v1"
kind: "Namespace"
metadata:
  name: zls                          // 创建命名空间的名称

# 命令创建
kubectl create namespace 666

# 查看
[root@master-1 ~]# kubectl get namespaces
NAME              STATUS   AGE
666               Active   5s
# 删除
[root@master-1 ~]# kubectl delete namespaces 666

peployment

1. 一个pod里创建多个容器
apiVersion: apps/v1                                    // 要使用kubernetes的版本
kind: Deployment                                       // [1]要创建对象类型
metadata:                                            // 源数据
  name: mysql                                          // 名称
  namespace: he                                        // 指定命名空间
spec:                                                // 规范说明
  replicas: 1                                          // 要创建几个容器
  selector:                                            // Pod 的选择器
    matchLabels:                                       // 匹配选定的标签
      app: mysql                                       // 指定pod的标签
  template:                                            // 定义pod
    metadata:
      labels:                                         // 打pod的标签()
        app: mysql                                    // pod的标签
    spec:
      containers:                                     // 容器列表
        - name: mysql
          image: mysql:5.7
          imagePullPolicy: IfNotPresent                // [2]拉取镜像规则
          ports:
            - containerPort: 3306
          env:
            - name: MYSQL_ROOT_PASSWORD
              value: "123"
            - name: MYSQL_DATABASE
              value: wordpress
            - name: MYSQL_USER
              value: wp-
            - name: MYSQL_PASSWORD
              value: "123"
            args:                                          // 传参
            - --character-set-server=utf8                  // 数据库的默认字符集
            - --collation-server=utf8_general_ci           // 数据库的默认规则(ci不区分大小写)
          volumeMounts:                                    // 容器位置
            - name: mysql-persistent-storage
              mountPath: /var/lib/mysql


#       volumes:                                            // nfs 挂载示例
#         - name: wp-data                                   // 给这个起个名字
#           nfs:                                            // 使用nfs服务             
#             path: /data/wordpress                         // nfs上的目录,服务要挂载到的
#             server: 172.16.1.7                            // nfs的ip
------
#       volumes:                                           // pvc 挂载示例
#       - name: wp-data                                  // 名字(和之前的写法略微不同,这个是没有空格)
#         persistentVolumeClaim:                         // 使用pvc服务
#           claimName: wp-pvc                            // pvc服务的名字


## wordpress连接数据库
          env:
            - name: WORDPRESS_DB_HOST
              value: mysql                              // 填写的是mysql的service的名字
[2]: 
imagePullPolicy:镜像拉取策略:
Always:总是拉取镜像 nginx:latest
Never:永远不拉镜像
IfNotPresent:如果镜像在机器上不存在,则拉,否则不拉

资源限制

apiVersion: v1
kind: Pod
metadata:
  name: resource-demo
spec:
  containers:
  - name: resource-demo
    image: nginx
    ports:
    - containerPort: 80
    resources:                       
      requests:                        // 要启动容器需要的资源,至少
        memory: 50Mi                   // 内存,50mi
        cpu: 1500m                     // cpu:1500(1.5核)
      limits:                           // 一个容器最大能使用的资源,最大
        memory: 100Mi                   // 内存,100mi
        cpu: 200m                       // cpu(0.2核)

service

apiVersion: v1
kind: Service
metadata:
  name: wordpress
spec:
  type: NodePort                              // [1]随机分配端口(默认ClusterIP)
  sessionAffinity: ClientIP                   // [2]会话保持
  selector:
    app: wordpress                            // 指定pod的标签
  ports:
    - name: http                              // 起个名字
      protocol: TCP                           // 端口的协议
      port: 80                                // service的端口,(ClusterIP)
      targetPort: http                        // 把流量转发到http,可端口80
#     nodePort: 30003                         // 指定的端口(加不加都可以,加的话需要,随机分配端口,30000-32767)
apiVersion: v1
kind: Service
metadata:
  name: php-apache
  labels:
    run: php-apache
spec:
  ports:
  - port: 80
  selector:
    run: php-apache
# 解释
selector:选择器部分,用于选择要路由流量的 Pod。
  run: php-apache:选择具有标签 run: php-apache 的 Pod。
[1]
ExternalName
ClusterIP                                  // 用来动态发现和负载均衡POD的IP(一般都用这个,搭配infress来对外提供服务)(默认)
NodePort                                   // 节点对外提供访问的IP
LoadBalancer
“ExternalName”映射到指定的externalName。

[2]
None:默认值。不使用会话保持,负载均衡器基于客户端 IP 地址和端口将连接路由到后端 Pod。

ClientIP:根据客户端 IP 地址对连接进行哈希处理,并将其路由到相应的后端 Pod。这种类型的会话保持适用于需要将连接路由到同一台服务器上的长时间连接应用程序。
[root@master-1 mysql]# kubectl describe svc mysql 

ingress

[root@master-1 ingress]# cat nginx-in.yaml 
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: welcom-to-nginx
spec:
  rules:                                     // #转发规则
  - host: www.zls.com                        // #匹配的域名
    http:                                    // #基于http协议解析
      paths:                                 // #基于路径进行匹配
      - path: /                              // #匹配/路径
        pathType: ImplementationSpecific     // #[1]路径类型
        backend:                             // #匹配后跳转的后端服务
          service:                           // #设置后端跳转到Service的配置
            name: nginx-svc                  // #跳转到标签名为nginx-svc的ClusterIP
            port:                            // #跳转到的端口
              number: 80                     // #Service端口号
[1]
pathType路径类型支持的类型:

ImplementationSpecific 系统默认,由IngressClass控制器提供
Exact 精确匹配URL路径,区分大小写
Prefix 匹配URL路径的前缀,区分大小写

hpa

apiVersion: "autoscaling/v1"
kind: "HorizontalPodAutoscaler"
metadata:
  name: php-apache
  namespace: default
spec:
  maxReplicas: 10                            // 指定允许的最大副本数量
  minReplicas: 1                             // 指定允许的最小副本数量
  scaleTargetRef:
    apiVersion: apps/v1                       // 目标对象的 API 版本
    kind: Deployment                          // #目标对象的类型
    name: wordpress                           // #目标对象的名称,这里是一个名为 "wordpress" 的 Deployment。(不是pod的名称)
  targetCPUUtilizationPercentage: 50          // #指定期望的目标 CPU 利用率百分比

健康探针

  containers:
    - name: liveness
      livenessProbe:
        httpGet:
          path: /                    // #指定要发送 GET 请求的路径.在此示例中,使用的路径是根路径 "/",即容器的根目录
          port: 80                   // #指定要发送请求到的端口号
        initialDelaySeconds: 3       // #初始化延迟时间,表示在容器启动后等待多长时间开始进行第一次存活探测。在此示例中,延迟时间为 3 秒。
        periodSeconds: 1             // #存活探测的间隔时间,表示每隔多长时间进行一次存活探测。在此示例中,间隔时间为 1 秒

就绪探针

标签:kind,name,创建,apiVersion,v1,mysql,清单,资源,metadata
From: https://www.cnblogs.com/xiutai/p/17749236.html

相关文章

  • K8S控制器Controller资源
    目录K8S控制器Controller资源控制器Controller控制器作用控制器类型RS控制器Deployment控制器版本更新扩缩容DaemonSetHPA工作原理部署Metric-server生成测试镜像wordpress压测K8S控制器Controller资源控制器Controller控制器作用1.pod类型的资源,删除pod后,不会重建2.替用户监......
  • VS2019 创建Integration Service
    最近工作中需要用到Integrationservice,使用VS2022如何都打不开,查阅文档发现vs2022目前不支持,所以需要下载VS2019,安装步骤如下1、下载vs20192、在此窗口中,我们单击“扩展”>“管理扩展”: 3、在打开的窗口的搜索栏中,搜索“IntegrationServices”扩展名。从出现的列表中,我们......
  • 安装配置kvm虚拟机,并创建虚拟机
    1、开启宿主机的CPU虚拟化功能编辑虚拟机设置--处理器--勾选虚拟化IntelVT-x/EPT或AMD-V/RVI(V).2、验证是否开启虚拟化支持[root@KVM~]#grep-Em1"vmx|svm"/proc/cpuinfoflags:fpuvmedepsetscmsrpaemcecx8apicsepmtrrpgemcacmovpatpse3......
  • PHP内核的学习--创建PHP扩展
    开始看PHP内核也有一段时间了,现在开始边学边总结,今天就总结一下如何创建自己的PHP扩展。我的环境如下:系统:Ubuntu14.04php版本:5.5.19参考摘录:用C/C++扩展你的PHPPHP取得成功的一个主要原因之一是它拥有大量的可用扩展。web开发者无论有何种需求,这种需求最有可能在PHP发行包里......
  • [Microsoft Azure] 创建你的第一个Azure Functions 应用
    随着云计算和Serverless架构的普及,微服务变得越来越受欢迎。AzureFunctions是MicrosoftAzure提供的一种Serverless服务,可以让你在Azure上快速部署和运行代码,而无需管理底层服务器。在这篇文章中,我们将带你创建一个简单的AzureFunctions应用,并了解其基本概念和工作原理。一......
  • Oracle 12c创建表空间、用户
    目录一、前言二、创建表空间三、创建用户四、删除表空间、用户五、CDB与PDB相关文章一、前言Oracle12c中新增加了可插入数据库的概念,即PDB(PluggableDatabase),允许一个容器数据库,即CDB(ContainerDatabase)承载多个可插入数据库PDB。CDB相当于操作系统,调用并管理各个PDB,P......
  • 23种设计模式的图示总结概述(创建型模式和结构型模式)
    1、创建型模式1、简单工厂模式根据不同的需求(条件),创建出来不同的对象;2、工厂方法模式简单地说,就是不同的工厂分别制作不同的产品,这样能够避免上面的工厂出问题,全体待工的情况;3、抽象工厂模式出现新的概念——产品等级结构、产品族;不同的产品有不同的抽象产品,不同的工厂......
  • 创建vue3项目、setup函数、ref函数、reactive函数、计算监听属性、生命周期、torefs、
    创建vue3项目#两种方式-vue-cli:vue脚手架---》创建vue项目---》构建vue项目--》工具链跟之前一样-vite:https://cn.vitejs.dev/-npmcreatevue@latest一路选择即可#运行vue3项目-vue-cli跟之前一样-vi......
  • 创建私有CA并进行证书申请
    1、创建CA所需要的证书​#生成证书索引数据库文件[root@centos8~]#mkdir/etc/pki/CA[root@centos8~]#touch/etc/pki/CA/index.txt​#指定第一个颁发证书的序列号[root@centos8~]#echo01>/etc/pki/CA/serial​2、生成CA私钥[root@centos8CA]#mkdirprivate[root@centos8......
  • 数据库 "test1007" 的 创建 失败。其他信息: 执行 Transact-SQL 语句或批处理时发生
    问题描述在我使用sqlServer登录名和密码验证登录时,出现了创建数据库错误的信息;问题解决只需要在使用Windows身份验证进行登录后,在服务器角色里面找到dbeavor,然后将我们的登录名添加进去,保存之后,重新启动;之后再使用sqlServer验证登录连接之后,就能够建立好数据库啦!......