发布于 

部署应用到k8s集群,并进行基本管理

直接运行命令部署pod

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

使用yaml文件进行pod部署

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


#部署
kubectl apply -f app.yaml

将 Pod 指定到某个节点运行:nodeselector

>apiVersion: v1
>kind: Pod
>metadata:
 name: nginx
 labels:
   env: test
>spec:
 containers:
 - name: nginx
   image: nginx
   imagePullPolicy: IfNotPresent
 nodeSelector:
   disktype: ssd

使用yaml文件进行deployment部署

#创建yaml文件app.yaml
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 # 镜像

        
        
        
#部署
kubectl apply -f app.yaml

常用命令

部署应用

kubectl apply -f app.yaml

查看pod列表

kubectl get pod -o wide

查看deployment

kubectl get deployment

查看pod的详细信息

kubectl describe pod pod的name

查看pod的日志

kubectl logs  pod的name
-f  持续查看

进入pod容器的命令行

kubectl exec -it pod的name -- bash
如果pod中有多个容器,需要 -c  容器名字  进入指定容器

修改deployment中的pod副本数量

#将name为test-k8s的deployment副本数量修改为5
deployment test-k8s --replicas=5

#也可以修改yaml文件后重新apply

pod端口映射到宿主机

kubectl port-forward pod的name(或者service/服务的name) 宿主机端口:pod端口

查看历史

kubectl rollout history deployment deployment的name

回滚到之前版本

# 回到上个版本
kubectl rollout undo deployment deployment的name
# 回到指定版本
kubectl rollout undo deployment deployment的name --to-revision=2

删除部署

kubectl delete deployment deployment的name
kubectl delete pod pod的name

更多命令

# 查看全部
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