文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

kubernetes使用技巧有哪些

2023-06-04 17:00

关注

这篇文章主要介绍了kubernetes使用技巧有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一:在容器中获取 Pod 的IP

  1. apiVersion: v1

  2. kind: ReplicationController

  3. metadata:

  4.   name: world-v2

  5. spec:

  6.   replicas: 3

  7.   selector:

  8.     app: world-v2

  9.   template:

  10.     metadata:

  11.       labels:

  12.         app: world-v2

  13.     spec:

  14.       containers:

  15.       - name: service

  16.         image: test

  17.         env:

  18.         - name: POD_IP

  19.           valueFrom:

  20.             fieldRef:

  21.               fieldPath: status.podIP

  22.         ports:

  23.         - name: service

  24.           containerPort: 777

容器中可以直接使用 POD_IP 环境变量获取容器的 IP,通过环境变量来实现,该环境变量直接引用 resource 的状态字段。

二:在Pod中获取宿主机的主机名、namespace等

  1. apiVersion: v1

  2. kind: Pod

  3. metadata:

  4.   name: dapi-test-pod

  5. spec:

  6.   containers:

  7.     - name: test-container

  8.       image: busybox

  9.       command: [ "/bin/sh", "-c", "env" ]

  10.       env:

  11.         - name: MY_NODE_NAME

  12.           valueFrom:

  13.             fieldRef:

  14.               fieldPath: spec.nodeName

  15.         - name: MY_POD_NAME

  16.           valueFrom:

  17.             fieldRef:

  18.               fieldPath: metadata.name

  19.         - name: MY_POD_NAMESPACE

  20.           valueFrom:

  21.             fieldRef:

  22.               fieldPath: metadata.namespace

  23.         - name: MY_POD_IP

  24.           valueFrom:

  25.             fieldRef:

  26.               fieldPath: status.podIP

  27.         - name: HOST_IP

  28.           valueFrom:

  29.            fieldRef:

  30.              fieldPath: status.hostIP

  31.         - name: MY_POD_SERVICE_ACCOUNT

  32.           valueFrom:

  33.             fieldRef:

  34.               fieldPath: spec.serviceAccountName

  35.   restartPolicy: Never

这条技巧补充了第一条获取 podIP 的内容,方法都是一样的,只不过列出了更多的引用字段。参考下面的 pod 定义,每个 pod 里都有一个 {.spec.nodeName} 字段,通过 fieldRef 和环境变量,就可以在Pod中获取宿主机的主机名(访问环境变量MY_NODE_NAME)。

三:指定容器的启动参数

我们可以在 Pod 中为容器使用 command 为容器指定启动参数:

  1. command: ["/bin/bash","-c","bootstrap.sh"]

使用数组的方式定义,所有命令使用跟 Dockerfile 中的 CMD 配置是一样的,但是有一点不同的是,bootsttap.sh 必须具有可执行权限,否则容器启动时会出错。

四:使容器内时间与宿主机同步

我们下载的很多容器内的时区都是格林尼治时间,与北京时间差8小时,这将导致容器内的日志和文件创建时间与实际时区不符,有两种方式解决这个问题:
1.修改镜像中的时区配置文件
2.将宿主机的时区配置文件/etc/localtime使用volume方式挂载到容器中
第二种方式比较简单,不需要重做镜像,只要在应用的yaml文件中增加如下配置:

  1. volumeMounts:

  2.   - name: host-time

  3.     mountPath: /etc/localtime

  4.     readOnly: true

  5.   volumes:

  6.   - name: host-time

  7.     hostPath:

  8.       path: /etc/localtime

五:kubectl 命令补全

  1. # yum install -y bash-completion

  2. # source /usr/share/bash-completion/bash_completion

  3. # source <(kubectl completion bash)

六:创建一个CentOS测试容器

有时我们可能需要在Kubernetes集群中创建一个容器来测试集群的状态或对其它容器进行操作,这时候我们需要一个操作节点,可以使用一个普通的CentOS容器来实现。即使用一个while循环保证容器启动时拥有一个前台进程。

  1. apiVersion: extensions/v1beta1

  2. kind: Deployment

  3. metadata:

  4.   name: test

  5.   labels:

  6.     app: test

  7. spec:

  8.   replicas: 1

  9.   template:

  10.     metadata:

  11.       labels:

  12.         app: test

  13.     spec:

  14.       containers:

  15.       - image: harbor-001.jimmysong.io/library/centos:7.2.1511

  16.         name: test

  17.         command: ["/bin/bash","-c","while true; do sleep 1000; done"]

  18.         imagePullPolicy: IfNotPresent

感谢你能够认真阅读完这篇文章,希望小编分享的“kubernetes使用技巧有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯