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
这里我没有拉取到,使用别人的图解释下。
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
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
kubectl get pod -o wide
2.4.2 describe查看 pod 详情
2.4.3 查看pod运行日志
kubectl logs pod-name
2.4.4 exec进入 Pod 容器终端
kubectl exec -it pod-name -- bash
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集群内端口映射到节点
2.4.7 kubectl get all 查看全部
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中部署应用
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论