Reactjs 如何从React.js应用程序访问Kubernetes容器环境变量?
我有一个带有默认配置的CreateReact应用程序。 我在.env文件中配置了一些端口和APIReactjs 如何从React.js应用程序访问Kubernetes容器环境变量?,reactjs,kubernetes,server,environment-variables,Reactjs,Kubernetes,Server,Environment Variables,我有一个带有默认配置的CreateReact应用程序。 我在.env文件中配置了一些端口和API REACT_APP_PORT=3000 并将内部应用程序与process.env.REACT_app_端口一起使用 我的服务器部署在Kubernetes上。 有人能解释一下如何配置我的CreateReact应用程序,以使用POD/容器提供的环境变量吗 我想通过kubectl svc提供的名称访问群集IP 更新1: 我有一个相反的场景,我不想在kubernetes pod容器中配置前端env变量,但
REACT_APP_PORT=3000
并将内部应用程序与process.env.REACT_app_端口一起使用
我的服务器部署在Kubernetes上。
有人能解释一下如何配置我的CreateReact应用程序,以使用POD/容器提供的环境变量吗
我想通过kubectl svc提供的名称访问群集IP
更新1:
我有一个相反的场景,我不想在kubernetes pod容器中配置前端env变量,但想使用pod的env变量 e、 x CLUSTER_IP和CLUSTER_端口,其名称由我的react应用程序内的pod环境变量定义 例如-
NAME TYPE CLUSTER-IP
XYZ ClusterIP x.y.z.a
并且要访问react应用程序中的XYZ以指向群集IP(x.y.z.a)请尝试以下操作
spec:
containers:
- name: create-react-app
image: gcr.io/google-samples/node-hello:1.0
env:
- name: REACT_APP_PORT
value: "3000"
试试这个:
kubectl create configmap react-config --from-literal=REACT_APP_PORT=3000
然后:
spec:
containers:
- name: create-react-app
image: gcr.io/google-samples/node-hello:1.0
envFrom:
- configMapRef:
name: react-config
现在,您已从pod“外部”配置了环境
另请参阅文档:使用Pod字段作为环境变量的值
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
以上示例可能会对您有所帮助。您是否打算在开发模式下使用React应用程序?因为
env
变量REACT\u APP\u PORT
仅由create REACT APP
设置的开发脚本使用。尽管如此,以下是Kubernetes关于如何处理环境变量的文档链接:是的,在开发模式下,也像在您共享的文档中一样,如何访问示例_SERVICE_PORT_8080_TCP_ADDR=“”(react app中的pod env变量,因为react读取以react_app开头的env变量)以下是使用create react app
时处理环境变量的链接。请记住,一旦构建应用程序,您将无法使用环境变量。您只能在运行开发服务器时使用它们,因为它会将环境变量值注入React的代码中。您能否共享此链接,您提到的是Torry,忘记粘贴了。这里是:我想在我的react应用程序中使用Pod的env变量,我不想在Pod的.yaml中配置我的env。我有相反的情况,我不想在kubernetes Pod容器中配置我的前端env变量,但是我想使用pod的环境变量e.x CLUSTER_IP和CLUSTER_PORT,它们的名称由我的react应用程序中的pod的环境变量定义。E.x-名称类型CLUSTER-IP XYZ ClusterIP x.y.z.a并希望访问react应用程序中的XYZ以指向群集IP(x.y.z.a)Hmm如果希望react应用程序中的系统环境变量可用,则必须通过“后端”使其可用因为客户端代码不能访问系统变量AFAIK