当前位置: 首页 > news >正文

03 环境变量和标签

01 环境变量

01-1 传递单个环境变量

[root@master01 yaml]# cat 03-command-args.yaml 
apiVersion: v1
kind: Pod
metadata: name: likexy
spec:hostNetwork: truecontainers:- name: a1image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1command: ["tail"]args: ["-f","/etc/hosts"]
[root@master01 yaml]# kubectl get pods -o wide
NAME     READY   STATUS    RESTARTS   AGE    IP            NODE     NOMINATED NODE   READINESS GATES
likexy   1/1     Running   0          5m5s   172.2.25.52   node01   <none>           <none>

image-20250521083255557

图1 创建在里面添加环境变量的Pod

01-2 传递多个环境变量

[root@master yaml]# cat 04-env.yaml 
apiVersion: v1
kind: Pod
metadata:name: likexy
spec:hostNetwork: truecontainers:- name: a1image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1env: - name: likevalue: xy- name: cityvalue: Dalian
# 查看环境变量
[root@master yaml]# kubectl exec -it likexy -- env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=node01
TERM=xterm
like=xy
city=Dalian
KUBERNETES_SERVICE_HOST=172.125.0.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT=tcp://172.125.0.1:443
KUBERNETES_PORT_443_TCP=tcp://172.125.0.1:443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_ADDR=172.125.0.1
NGINX_VERSION=1.20.1
NJS_VERSION=0.5.3
PKG_RELEASE=1
HOME=/root

image-20250526124854071

图2 查看环境变量

02 指定Node

[root@master yaml]# cat 05-nodename.yaml 
apiVersion: v1
kind: Pod
metadata:name: likexy
spec:nodeName: node01hostNetwork: truecontainers:- name: a1image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1env:- name: likevalue: xy- name: Cityvalue: Dalian
[root@master yaml]# kubectl get pods -o wideNAME     READY   STATUS    RESTARTS   AGE   IP            NODE     NOMINATED NODE   READINESS GATES
likexy   1/1     Running   0          15s   172.2.25.51   node01   <none>           <none>

image-20250526125659029

图3 指定Node

03 镜像拉取策略

# 镜像的拉取策略:# - Never如果本地有镜像则尝试启动如果本地没有镜像则不会启动。# - Always:如果本地有镜像则将本地的摘要信息和远程仓库的信息进行比对,若相同则使用本地镜像缓存,若不同,则直接去远程仓库拉取。如果本地没有镜像则直接拉取镜像。# - IfNotPresent:如果本地有镜像则尝试启动。如果本地没有镜像,则会去远程仓库拉取镜像。# 默认策略:当镜像的TAG是latest时,则默认的镜像下载策略为Always,若镜像的TAG不是latest时,则镜像下载策略为IfNotPresent。
[root@master yaml]# cat 06-wordpress.yaml 
apiVersion: v1
kind: Pod
metadata:name: likexy
spec:nodeName: node01hostNetwork: trueimagePullPolicy: containers:- name: sqlimage: mysql:8.0.36-oracleenv:- name: MYSQL_ALLOW_EMPTY_PASSWORDvalue: "yes"- name: MYSQL_USERvalue: "likexy"- name: MYSQL_PASSWORDvalue: "123123"- name: MYSQL_DATABASEvalue: "likexy"
---
apiVersion: v1
kind: Pod
metadata:name: xy
spec:nodeName: node01hostNetwork: truecontainers:- name: wpimage: wordpress:latestimagePullPolicy: IfNotPresentenv:- name: WORDPRESS_DB_HOSTvalue: "172.2.25.51"- name: WORDPRESS_DB_USERvalue: "likexy"- name: WORDPRESS_DB_PASSWORDvalue: "123123"- name: WORDPRESS_DB_NAMEvalue: "likexy"

image-20250526204908894

图4 Pod详细信息

image-20250526205853108

图5 成功访问Wordpress

04 声明式和响应式

04-1 声明式

# - 声明式:# 基于资源清单管理K8S集群资源。
[root@master yaml]# cat 04-env.yaml 
apiVersion: v1
kind: Pod
metadata:name: likexy
spec:hostNetwork: truecontainers:- name: a1image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1env: - name: likevalue: xy- name: cityvalue: Dalian

04-2 响应式

# - 响应式:# 不通过资源清单管理K8S集群资源,而是基于命令行的方式管理K8S集群资源。
[root@master231 pods]# kubectl run oldboyedu-xiuxian-v1 --image=registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 --env="SCHOOL=UCAS" --env="baby=xy"

04 排错

02-1 查看状态显示ContainerCreating

[root@master yaml]# kubectl describe pods likexy
...
Events:Type    Reason     Age   From               Message----    ------     ----  ----               -------Normal  Scheduled  58s   default-scheduler  Successfully assigned default/likexy to node01Normal  Pulling    57s   kubelet            Pulling image "registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1"
[root@master yaml]# kubectl get pods -o wide
NAME     READY   STATUS              RESTARTS   AGE   IP            NODE     NOMINATED NODE   READINESS GATES
likexy   0/1     ContainerCreating   0          67s   172.2.25.51   node01   <none>           <none>

image-20250526124140068

正在拉取镜像

02-2 字段不正确

# 应为
# spec:
#   containers:
#   - name: sql
[root@master yaml]# cat 06-wordpress.yaml 
...
spec:nodeName: node01hostNetwork: trueimagePullPolicy: containers:name: sql
...
[root@master yaml]# kubectl apply -f 06-wordpress.yaml 
error: error validating "06-wordpress.yaml": error validating data: ValidationError(Pod.spec.containers): invalid type for io.k8s.api.core.v1.PodSpec.containers: got "map", expected "array"; if you choose to ignore these errors, turn validation off with --validate=false

image-20250526203559763

提示字段不正确

02-3 环境变量格式问题

# 错误的
[root@master yaml]# cat 06-wordpress.yaml
apiVersion: v1
kind: Pod
metadata:name: likexy
spec:nodeName: node01hostNetwork: trueimagePullPolicy: containers:- name: sqlimage: mysql:8.0.36-oracleenv:- name: MYSQL_ALLOW_EMPTY_PASSWORDvalue: "yes"- name: MYSQL_USERvalue: likexy- name: MYSQL_PASSWORDvalue: 123123- name: MYSQL_DATABASEvalue: likexy
---
apiVersion: v1
kind: Pod
metadata:name: xy
spec:nodeName: node01hostNetwork: truecontainers:- name: wpimage: wordpress:latestimagePullPolicy: IfNotPresentenv:- name: WORDPRESS_DB_HOSTvalue: 172.2.25.51- name: WORDPRESS_DB_USERvalue: likexy- name: WORDPRESS_DB_PASSWORDvalue: 123123- name: WORDPRESS_DB_NAMEvalue: likexy
[root@master yaml]# kubectl apply -f 06-wordpress.yaml 
Error from server (BadRequest): error when creating "06-wordpress.yaml": Pod in version "v1" cannot be handled as a Pod: json: cannot unmarshal number into Go struct field EnvVar.spec.containers.env.value of type string
Error from server (BadRequest): error when creating "06-wordpress.yaml": Pod in version "v1" cannot be handled as a Pod: json: cannot unmarshal number into Go struct field EnvVar.spec.containers.env.value of type string

image-20250526204453874

格式问题报错
http://www.xdnf.cn/news/664399.html

相关文章:

  • 电子元器件散热方式
  • 医院门户网站群改版技术白皮书
  • 如何调试CATIA CAA程序导致的CATIA异常崩溃问题
  • Vue 3 核心知识点全览
  • 电子电气架构 -- 第五代汽车电子电气(E/E)架构的两种主导实施方式
  • c++ 二叉搜索树(BinarySearchTree)
  • 晚期NSCLC临床试验终点与分析策略
  • 【力扣】关于链表索引
  • 初识LangChain
  • Visual Studio 调试中 PDB 与图像不匹配
  • STM32F103_Bootloader程序开发03 - 启动入口与升级模式判断(boot_entry.c与boot_entry.h)
  • JetsonHacksNano RealSense自动安装脚本文件解析
  • 公链开发全生态:技术架构、生态构建与未来图景
  • 环境配置相关问题以及解决方案
  • JavaScripts 常见误区
  • 小刚说C语言刷题—1152 - 求n个数的最大值和最小值
  • mybatis-plus动态分页
  • ARM架构
  • 密钥分发与公钥证书
  • 工厂方法模式之Factory Method(工厂方法)
  • Python网络编码——聊天小工具
  • 2025年中国ERP软件前十名对比:选型指南与适用场景的分析
  • 数控滑台技术革新:提升生产效率的关键
  • [浏览器]缓存策略机制详解
  • (12)Quarkus 编译时增强原理
  • GIS局部放电图绘制指南
  • UE 骨骼模型 会没有face index的原因
  • IPv6能自动分配地址,就不需要DHCP服务器了吗?
  • Unity3D仿星露谷物语开发52之菜单页面
  • RK3568DAYU开发板-平台驱动开发:GPIO驱动