2022-03-05 day97 作业

今日作业:
1.如何查看一个pod部署在哪个节点上
kubectl get pod -o wide
如果是查看某一个pod的话
kubectl get pod nginx-pod -o wide

2.如何查看一个pod里的容器日志

如果pod只有一个容器的话
kubectl logs -f nginx-tomcat
有指定pod中某一个容器的日志
kubectl logs -f nginx-tomcat nginx

3.如何查看一个pod的详细内容
[root@master ~/k8s_yml/POD]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-pod 0/1 ContainerCreating 0 9m7s
nginx-tomcat 2/2 Running 0 28m

kubectl describe pod nginx-tomcat

4.初始化容器的作用是什么?
5.初始化容器和启动钩子有什么区别?
6.什么是存活性探针,他的作用是什么?
7.什么是就绪性探针,他的作用是什么?
8.解释以下资源配置清单的每一行内容
apiVersion: v1 #api版本号
kind: Pod #yml类型是pod
metadata: #元数据,存在etcd的身份信息
name: nginx-pod #pod名称为nginx-pod
labels: #标签
app: nginx #标签的以键值的形式存储 键是app 值是nginx
spec: #pod运行的相关信息 规则
containers: #容器的意思

  • name: nginx #启动容器名nginx
    image: nginx:1.14.0 #拉取镜像nginx 1.14.0版本
    imagePullPolicy: IfNotPresent #镜像拉取方式本地有就从本地拉取,没有的话就从远程仓库下载
    lifecycle: #生命周期
    postStart: #nginx容器启动之前
    exec: #执行
    command: [/bin/sh, -c, 'echo ok > /usr/share/nginx/html/health.html'] #执行容器命令
    preStop: #nginx容器停止后
    exec: #执行
    command: [/bin/sh, -c, 'echo beybey > /usr/share/nginx/html/stop.log'] #执行容器命令
    livenessProbe: #存活性探针
    exec: #执行
    command: #基于查看这个文件是否存在来检查延时
    - cat
    - /usr/share/nginx/html/health.html
    initialDelaySeconds: 3 #初始化延时3秒
    periodSeconds: 3 #容器启动后每隔3秒检查一次
    readinessProbe: #
    httpGet: #基于http请求探测
    path: /index.html #请求地址,如果这个地址返回状态码在200-400之间正常
    port: 80 #请求端口
    initialDelaySeconds: 30 #每一次启动探测在容器启动后30秒
    periodSeconds: 3 #容器启动后,每隔3秒检查一次

    volumeMounts: #容器挂载目录

    • name: data #容器挂载名称
      mountPath: /usr/share/nginx/html/ #容器挂载路径

volumes: #共享卷

  • name: data #共享目录名字
    hostPath: #主机路径
    path: /code/ #主机挂载卷路径

操作题:想拿18K的必须完成
根据需求完成实验
在master主机上,创建镜像


image.png

1.基于nginx镜像使用dockerfile构建小鸟飞飞和神经猫游戏镜像
dockerfile

FROM centos:7
RUN yum localinstall http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.20.1-1.el7.ngx.x86_64.rpm -y
RUN rm -rf /root/*
RUN yum clean all
RUN mkdir /code
ADD code /code/
RUN cp /code/game.conf /etc/nginx/conf.d/game.conf
CMD ["nginx","-g","daemon off;"]
image.png

创建镜像

docker build -t game:v2 .

image.png

保存镜像到本地并发送给node1和node2


image.png
image.png

2.将制作好的游戏镜像导入到node1和node2节点上
vim game-service.yml
apiVersion: v1
kind: Service
metadata:
name: game-svc
spec:
selector:
app: game
ports:

  • name: http
    port: 80
    protocol: TCP
    targetPort: 80
    nodePort: 30000
    type: NodePort

编写game-service.yml资源配置清单,并创建pod
kubectl apply -f game-service.yml


image.png

3.编写k8s运行游戏的POD资源配置清单
4.资源配置需求
元数据名称:game
元数据标签:app: game
容器名称:game
镜像名称:game:V1
镜像拉取策略:本地优先
启动钩子:在POD代码目录创建index.html首页文件
停止钩子:在代码目录输出当前退出的时间到日志文件
存活性探针:首页文件存在 在容器启动10秒后第一次探测 每隔5秒探测一次 失败重试4次
就绪性探针:访问首页状态码200 在容器启动5秒后第一次探测 每隔3秒探测一次 失败重试2次
数据目录:使用存储卷挂载到宿主机的/code目录下,容器内目录为ngixn的代码目录
网络访问:资源配置清单已经写好,只需要应用即可,windows上绑定hosts解析,根据域名访问
vim game.yml

apiVersion: v1
kind: Pod
metadata:
  name: game
  labels:
    app: game
spec:
  containers:
  - name: game
    image: game:v2
    imagePullPolicy: IfNotPresent
    lifecycle:
      postStart:
        exec:
          command: [/bin/sh, -c, 'echo start > /code/index.html']
      preStop:
        exec:
          command: [/bin/sh, -c, 'echo $(date +%F) > /code/stop.log']
    livenessProbe:
      exec:
        command:
        - cat
        - /code/sjm/index.html             
      initialDelaySeconds: 10
      periodSeconds: 5
      failureThreshold: 4
    readinessProbe:
      httpGet:                          
        path: /index.html
        port: 80                        
      initialDelaySeconds: 5
      periodSeconds: 3
      failureThreshold: 2
    volumeMounts:
    - name: data
      mountPath: /usr/share/nginx/html/

  volumes:
  - name: data
    hostPath:
      path: /code/

访问k8s.xiaoniao.com:30000 跳转到小鸟飞飞
访问k8s.sjm.com:30000 跳转到神经猫

image.png
image.png

电脑主机配置hosts解析


image.png

==============service资源配置==============
apiVersion: v1
kind: Service
metadata:
name: game-svc
spec:
selector:
app: game
ports:

  • name: http
    port: 80
    protocol: TCP
    targetPort: 80
    nodePort: 30000
    type: NodePort
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,612评论 5 471
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,345评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,625评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,022评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,974评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,227评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,688评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,358评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,490评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,402评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,446评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,126评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,721评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,802评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,013评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,504评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,080评论 2 341

推荐阅读更多精彩内容

  • 第1章 常用资源类型1.工作负载类型RC ReplicaController 副本控制器RS Replic...
    zhaocheng690阅读 195评论 0 0
  • 文章是基于“Kubernetes权威指南”和博客[https://kuboard.cn/learning/]的学习...
    彦帧阅读 1,033评论 0 1
  • 污点、容忍度 给了节点选则的主动权,我们给节点打一个污点,不容忍的 pod就运行不上来,污点就是定义在 节点上的键...
    菜头_355f阅读 699评论 0 2
  • kubectl explain pods #详细POD参数 vi pod-demo.yaml apiVersion...
    仙凡阅读 344评论 0 0
  • 初始化 kubeadm安装 root用户执行以下命令 执行完后,可以看到已经安装成功 切换到非root用户 此时k...
    SparkOnly阅读 469评论 0 0