k8s声明式命令+yaml

k8s声明式命令+yaml

一、声明式管理方法

  1. 适合适合于对资源的修改操作

  1. 声明式资源管理方法依赖于资源配置清单文件对资源进行管理

  1. 对资源的管理,是通过实先定义在同一资源内,再通过陈述式命令应用到k8s集群里

  1. 语法格式:kubectl create/apply/delete -f xxxx.yaml

//查看资源配置清单
kubectl get deployment nginx -o yaml

//解释资源配置清单
kubectl explain deployment.metadata

kubectl get service nginx -o yaml
kubectl explain service.metadata

//修改资源配置清单应用
离线修改:
修改yaml文件,并用kubectl apply -f xxxx.yaml 文件使之生效
注意:当apply不生效是,先使用delete清楚资源,再apply创建资源

kubectl get service nginx -o yaml > nginx-svc.yaml
vim nginx-svc.yaml     #修改port:8080
kubectl delete -f nginx-svc.yaml
kubectl apply -f nginx-svc.yaml
kubectl get svc

在线修改:
直接使用 kubectl edit service nginx 在线编辑资源配置清单并保存退出即时生效(如port:888)
#此修改方式不会对yaml文件内容修改

//删除资源配置清单
陈述式删除:
kubectl delete service nginx
声明式删除:
kubectl delete -f nginx-svc.yaml

二、yaml文件

kubernets支持yaml和json格式管理资源对象

json格式:主要用于api接口之间消息的传递

yaml格式:用于配置和管理,yaml文件是一种简洁的非标记性语言,内容格式人性化,易读

yaml语法格式:

  • 大小写敏感

  • 使用缩进表示层级关系

  • 不支持tab键制表符缩进,只使用空格缩进

  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可,通常开头缩进两个空格

  • 符号字符后缩进一个空格,如冒号,逗号,短横杠(-)等

  • “—”表示yaml格式,一个文件的开始,用于分隔文件

  • “#”表示注释

详解k8s中的port:

port

port是k8s集群内部访问service的端口,即通过clusterIP:port 可以从Pod所在的Node上访问到service

nodeport

nodeport是外部访问k8s集群中service的端口,通过nodeIP:nodeport可以从外部访问到某个service。

targetport

targetport是pod的端口,从port或nodeport来的流量经过kube-proxy反向代理负载均衡转发到后端pod的targetport上,最后进入容器。

containerport

containerport是pod内部容器的端口,targetport映射到containerport

快速生成yaml文件:

kubectl create deployment nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run=client -o     #生成模板

kubectl create deployment nginx-test --image=nginx --port=80 --replicas=3 --dry-run=client -o yaml > nginx-test.yaml   #生成模板文件

kubectl get svc nginx-svc -o yaml > test_svc.yaml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Kubernetes部署Zabbix Server的详细步骤和YAML文件: 1. 创建PV和PVC 在Kubernetes上部署Zabbix Server,需要使用持久卷(PV)和持久卷声明(PVC)来存储数据。下面是一个示例PVC YAML文件: ``` apiVersion: v1 kind: PersistentVolumeClaim metadata: name: zabbix-db-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi ``` 使用kubectl命令创建PVC: ``` kubectl apply -f zabbix-db-pvc.yaml ``` 2. 创建ConfigMap Zabbix Server需要使用一些配置文件,可以将这些文件打包为一个ConfigMap。下面是一个示例ConfigMap YAML文件: ``` apiVersion: v1 kind: ConfigMap metadata: name: zabbix-server-config data: zabbix_server.conf: | DBHost=zabbix-db DBName=zabbix DBUser=zabbix DBPassword=zabbix AlertScriptsPath=/usr/lib/zabbix/alertscripts ExternalScripts=/usr/lib/zabbix/externalscripts ``` 使用kubectl命令创建ConfigMap: ``` kubectl apply -f zabbix-server-configmap.yaml ``` 3. 创建Deployment和Service 下面是一个示例Deployment YAML文件: ``` apiVersion: apps/v1 kind: Deployment metadata: name: zabbix-server spec: replicas: 1 selector: matchLabels: app: zabbix-server template: metadata: labels: app: zabbix-server spec: containers: - name: zabbix-server image: zabbix/zabbix-server-mysql:latest volumeMounts: - name: zabbix-db-data mountPath: /var/lib/mysql - name: zabbix-server-config mountPath: /etc/zabbix/zabbix_server.conf subPath: zabbix_server.conf env: - name: MYSQL_DATABASE value: zabbix - name: MYSQL_USER value: zabbix - name: MYSQL_PASSWORD value: zabbix - name: MYSQL_HOST value: zabbix-db - name: MYSQL_PORT value: "3306" ports: - containerPort: 10051 volumes: - name: zabbix-db-data persistentVolumeClaim: claimName: zabbix-db-pvc - name: zabbix-server-config configMap: name: zabbix-server-config ``` 使用kubectl命令创建Deployment: ``` kubectl apply -f zabbix-server-deployment.yaml ``` 下面是一个示例Service YAML文件: ``` apiVersion: v1 kind: Service metadata: name: zabbix-server spec: selector: app: zabbix-server ports: - name: zabbix port: 10051 protocol: TCP targetPort: 10051 ``` 使用kubectl命令创建Service: ``` kubectl apply -f zabbix-server-service.yaml ``` 这样,Zabbix Server就成功部署到了Kubernetes上。可以使用kubectl命令查看Deployment和Service状态: ``` kubectl get deployments kubectl get services ``` 如果一切正常,应该能够看到Zabbix Server的Deployment和Service都处于“运行中”状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值