yaml示例
apiVersion: v1
kind: Pod
metadata:
name: dapi-envars-fieldref
spec:
containers:
- name: test-container
image: k8s.gcr.io/busybox
command: [ "sh", "-c"]
args:
- while true; do
echo -en '\n';
printenv MY_NODE_NAME MY_POD_NAME MY_POD_NAMESPACE;
printenv MY_POD_IP MY_POD_SERVICE_ACCOUNT;
sleep 10;
done;
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: MY_POD_SERVICE_ACCOUNT
valueFrom:
fieldRef:
fieldPath: spec.serviceAccountName
restartPolicy: Never
程序
private Container buildContainer(SpiderGroupPO po) {
List<EnvVar> envList = new ArrayList<>();
ObjectFieldSelector os = new ObjectFieldSelector();
os.setFieldPath("metadata.name");
EnvVarSource envVarSource = new EnvVarSource();
envVarSource.setFieldRef(os);
envList.add(new EnvVar("POD_NAME", null, envVarSource));
CommonEnum.ResourceEnum res = CommonEnum.ResourceEnum.getByCode(po.getStandard());
return new ContainerBuilder()
.withName(po.getSpiderGroupId())
.withImage(po.getImages())
.addNewPort()
.withContainerPort(port)
.withName("http")
.withProtocol("TCP")
.endPort()
.withEnv(envList)
.withNewResources()
.addToLimits(CPU, new Quantity(res.getCpu(), res.getCpuFormat()))
.addToLimits(RAM, new Quantity(res.getRam(), res.getRamFormat()))
.addToRequests(CPU, new Quantity(res.getCpu(), res.getCpuFormat()))
.addToRequests(RAM, new Quantity(res.getRam(), res.getRamFormat()))
.endResources()
.build();
}
查看
printenv
