kubernetes使用技巧有哪些

84次阅读
没有评论

共计 2263 个字符,预计需要花费 6 分钟才能阅读完成。

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

一:在容器中获取 Pod 的 IP

apiVersion: v1

kind: ReplicationController

metadata:

 name: world-v2

spec:

 replicas: 3

 selector:

 app: world-v2

 template:

 metadata:

 labels:

 app: world-v2

 spec:

 containers:

 – name: service

 image: test

 env:

 – name: POD_IP

 valueFrom:

 fieldRef:

 fieldPath: status.podIP

 ports:

 – name: service

 containerPort: 777

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

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

apiVersion: v1

kind: Pod

metadata:

 name: dapi-test-pod

spec:

 containers:

 – name: test-container

 image: busybox

 command: [/bin/sh , -c , env]

 env:

 – name: MY_NODE_NAME

 valueFrom:

 fieldRef:

 fieldPath: spec.nodeName

 – name: MY_POD_NAME

 valueFrom:

 fieldRef:

 fieldPath: metadata.name

 – name: MY_POD_NAMESPACE

 valueFrom:

 fieldRef:

 fieldPath: metadata.namespace

 – name: MY_POD_IP

 valueFrom:

 fieldRef:

 fieldPath: status.podIP

 – name: HOST_IP

 valueFrom:

 fieldRef:

 fieldPath: status.hostIP

 – name: MY_POD_SERVICE_ACCOUNT

 valueFrom:

 fieldRef:

 fieldPath: spec.serviceAccountName

 restartPolicy: Never

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

三:指定容器的启动参数

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

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

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

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

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

volumeMounts:

 – name: host-time

 mountPath: /etc/localtime

 readOnly: true

 volumes:

 – name: host-time

 hostPath:

 path: /etc/localtime

五:kubectl 命令补全

# yum install -y bash-completion

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

# source (kubectl completion bash)

六:创建一个 CentOS 测试容器

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

apiVersion: extensions/v1beta1

kind: Deployment

metadata:

 name: test

 labels:

 app: test

spec:

 replicas: 1

 template:

 metadata:

 labels:

 app: test

 spec:

 containers:

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

 name: test

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

 imagePullPolicy: IfNotPresent

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

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2263字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)