前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【k8s】service服务和job服务

【k8s】service服务和job服务

作者头像
Xiongan-桃子
发布2023-06-10 17:17:26
发布2023-06-10 17:17:26
38900
代码可运行
举报
文章被收录于专栏:桃子小白桃子小白
运行总次数:0
代码可运行

Service服务发现

使用Service

使用Service实验使用的目录病创建后端的httpd-Dy

代码语言:javascript
代码运行次数:0
运行
复制
[root@master servicefile]# vim httpd-dy.yaml
kind: Deployment
apiVersion: apps/v1
metadata:
  name: httpd
spec:
  replicas: 3
  selector:
    matchLabels:
      app: httpd
  template:
    metadata:
      labels:
        app: httpd
    spec:
      containers:
      - name: httpd
        image: httpd
        ports:
        - containerPort: 80

部署Deployment并查看信息

创建httpd-service.yaml文件

代码语言:javascript
代码运行次数:0
运行
复制
[root@master servicefile]# vim httpd-service.yaml

创建service并查看该信息(下kubernetes服务是系统服务)

测试服务可用性,通过curl命令查看服务是否正常

代码语言:javascript
代码运行次数:0
运行
复制
[root@master servicefile]# curl 10.102.124.67:8080

可以删除刚刚创建的服务

创建httpd-expose.yaml,并部署

代码语言:javascript
代码运行次数:0
运行
复制
[root@master servicefile]# vim httpd-expose.yaml
kind: Service
apiVersion: v1
metadata:
  name: httpd-svc
spec:
  type: NodePort
  selector:
    app: httpd
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 80
    nodePort: 30144

使用跳板机浏览器登录,查看node节点ip:端口

使用DNS

创建client.yaml,创建一个客户端pod,测试DNS功能

代码语言:javascript
代码运行次数:0
运行
复制
[root@master servicefile]# vim client.yaml
kind: Pod
apiVersion: v1
metadata:
  name: clientpod
spec:
  containers:
    - name: clientpod
      image: busybox:1.28.3
      args:
      - /bin/sh
      - -c
      - sleep 30000

创建并进入Pod命令行

代码语言:javascript
代码运行次数:0
运行
复制
[root@master servicefile]# kubectl apply -f client.yaml

使用nslookup命令查看服务域名,wget命令通过域名访问服务

实训任务

创建deployment1

要求: 2 副本,镜像类型 httpd

创建deployment2

要求: 3副本,镜像类型 httpd

创建 service1,service1 后端为 deployment1 和 deployment2 中所有 pod。

创建 service2,service2 后端为 deployment1 中的第一个 pod 和 deployment2 中的第一个pod

为dy的第一个pod和dy2的第一个pod打上标签tz=httpd01

查看容器的详细信息

查看端口信息,可以看到svc2的pod是要求所说的

DeamonSet 与 Job

使用DaemonSet

创建一个Daemonset的yaml文件,并运行

代码语言:javascript
代码运行次数:0
运行
复制
[root@master servicefile]# vim DS-nginx.yaml
kind: DaemonSet
apiVersion: apps/v1
metadata:
  name: nginx-daemonset
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

查看daemonset的pod信息位置

删除pod,查看daemonset的自动恢复功能

查看到已经恢复好了

使用Job

创建Job的yaml文件

代码语言:javascript
代码运行次数:0
运行
复制
[root@master servicefile]# vim pi-job.yaml
kind: Job
apiVersion: batch/v1
metadata:
  name: pi
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never
  backoffLimit: 4

创建Job并查看运行状态,他运行完毕后自动关闭了

查看他的运行结果

使用CronJob

创建CronJob的yaml文件,设置每一分钟运行一次返回一次hello

代码语言:javascript
代码运行次数:0
运行
复制
[root@master servicefile]# vim CJ-hello.yaml
kind: CronJob
apiVersion: batch/v1beta1
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            args:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernets cluster-tz123
          restartPolicy: OnFailure

运行cronjob,查看运行情况

查看pod的状态已经完成

可以查看到运行cronjob后,每隔一分钟就会创建新的pod的,并输出信息

实训任务

创建一个 DaemonSet

  1. 包含两个 pod
  2. 镜像为 nginx

创建一个job,用于输出helloworld

创建一个 cronjob,在每日的 xx 小时 xx 点输出 helloworld。

删除本次实验创建 DaemonSet,Job 和 CronJob。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023 年 05 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Service服务发现
    • 使用Service
    • 使用DNS
    • 实训任务
      • 创建deployment1
      • 创建deployment2
      • 创建 service1,service1 后端为 deployment1 和 deployment2 中所有 pod。
      • 创建 service2,service2 后端为 deployment1 中的第一个 pod 和 deployment2 中的第一个pod
  • DeamonSet 与 Job
    • 使用DaemonSet
    • 使用Job
    • 使用CronJob
    • 实训任务
      • 创建一个 DaemonSet
      • 创建一个job,用于输出helloworld
      • 创建一个 cronjob,在每日的 xx 小时 xx 点输出 helloworld。
      • 删除本次实验创建 DaemonSet,Job 和 CronJob。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档