云安全:二、在K8S中部署应用

admin 2025年2月24日10:10:14评论2 views字数 2262阅读7分32秒阅读模式

2.1 kubectl run 直接部署pod

kubectl run testapp --image=ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v1

2.2 使用yaml文件创建pod

apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  # 定义容器,可以多个
  containers:
    - name: test-k8s # 容器名字
      image: ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v1 # 镜像

apiVersion:API版本
kind:类型
metadata:数据元
name:定义pod的名字
spec:规格
containers:容器
- name:容器名字
- image:镜像地址
可以多个
.......

kubectl apply -f pod.yaml

云安全:二、在K8S中部署应用
这里我没有拉取到,使用别人的图解释下。
test-k8s 是使用yaml文件创建的
testapp 是使用 命令行创建的。

2.3 部署

apiVersion: apps/v1
kind: Deployment
metadata:
  # 部署名字
  name: test-k8s
spec:
  replicas: 2
  # 用来查找关联的 Pod,所有标签都匹配才行
  selector:
    matchLabels:
      app: test-k8s
  # 定义 Pod 相关数据
  template:
    metadata:
      labels:
        app: test-k8s
    spec:
      # 定义容器,可以多个
      containers:
      - name: test-k8s # 容器名字
        image: ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v1 # 镜像

Deployment 通过 label 关联起来 Pods

云安全:二、在K8S中部署应用

2.4 pod 常用操作命令

部署应用
kubectl apply -f app.yaml

查看 deployment
kubectl get deployment

查看 pod
kubectl get pod -o wide

查看 pod 详情
kubectl describe pod pod-name

查看 log
kubectl logs pod-name

进入 Pod 容器终端, -c container-name 可以指定进入哪个容器。
kubectl exec -it pod-name -- bash

伸缩扩展副本
kubectl scale deployment test-k8s --replicas=5

把集群内端口映射到节点
kubectl port-forward pod-name 8090:8080

查看历史
kubectl rollout history deployment test-k8s

回到上个版本
kubectl rollout undo deployment test-k8s

回到指定版本
kubectl rollout undo deployment test-k8s --to-revision=2

删除部署
kubectl delete deployment test-k8s

2.4.1 部署应用

kubectl apply -f app.yaml
云安全:二、在K8S中部署应用
kubectl get pod -o wide
云安全:二、在K8S中部署应用

2.4.2 describe查看 pod 详情

云安全:二、在K8S中部署应用

2.4.3 查看pod运行日志

kubectl logs pod-name
云安全:二、在K8S中部署应用

2.4.4 exec进入 Pod 容器终端

kubectl exec -it pod-name -- bash
云安全:二、在K8S中部署应用

2.4.5 复制文件操作

kubectl cp pod-name:容器内文件路径 /root/主机目录文件 -n namespace

kubectl cp test-pod:/app/log4js.json /root/log4js.json -n default

kubectl cp /root/.bash_logout test-pod:/app/.bash_logout -n default

2.4.6 pod集群内端口映射到节点

云安全:二、在K8S中部署应用
云安全:二、在K8S中部署应用

2.4.7 kubectl get all 查看全部

云安全:二、在K8S中部署应用

2.5 更多命令

# 查看全部
kubectl get all
# 重新部署
kubectl rollout restart deployment test-k8s
# 命令修改镜像,--record 表示把这个命令记录到操作历史中
kubectl set image deployment test-k8s test-k8s=ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v2-with-error --record
# 暂停运行,暂停后,对 deployment 的修改不会立刻生效,恢复后才应用设置
kubectl rollout pause deployment test-k8s
# 恢复
kubectl rollout resume deployment test-k8s
# 输出到文件
kubectl get deployment test-k8s -o yaml >> app2.yaml
# 删除全部资源
kubectl delete all --all

- END -

原文始发于微信公众号(封阳):云安全:二、在K8S中部署应用

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月24日10:10:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   云安全:二、在K8S中部署应用https://cn-sec.com/archives/863622.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息