查看节点信息
kubectl get nodes
查看指定节点详细信息
kubectl describe node nodeName

查看pod信息
kubectl describe pods
查看指定pod详细信息
kubectl describe pod podName
查看pod日志
kubectl logs podName
导出相应的yaml文件
kubectl create deployment 名字--image=镜像-o yaml --dry-run=client > 文件名
例:
kubectl create deployment nginx --image=nginx -o yaml --dry-run=client > m1.yaml


导出已经部署后的yaml文件
kubectl get deploy 名字 -o=yaml > 文件名
例:
kubectl get deploy hello-minikube -o=yaml > my2.yaml

为node设置label 
kubectl label node 节点名 env_role= label名
例:
kubectl label node minikube env_role=prod

获取节点的label信息
kubectl get nodes --show-labels

deployment部署web

1. 生成相关的yaml文件,例:
kubectl create deployment web --image=nginx --dry-run -o yaml > web.yaml 
2. 使用yaml部署,例:
kubectl appy -f web.yaml
3. 对外发布(暴露对外端口号),例:
kubectl expose deployment web --port=80 --type=NodePort --target-port=80 --name=web1 -o yaml > web1.yaml
kubectl apply -f web1.yaml

版本更新:
kubectl set image deployment pod名称  镜像=镜像:版本
例:
kubectl set image deployment nginx nginx=nginx:1.5

查看升级状态:
kubectl rollout status deployment Name
例:
kubectl rollout status deployment nginx

查看升级版本:
kubectl rollout history deployment Name
例:
kubectl rollout history deployment nginx

回滚上个版本
kubectl rollout undo deployment Name
例
kubectl rollout undo deployment nginx

回滚到指定的版本:
kubectl rollout undo deployment Name --to-revision=?
例:
kubectl rollout undo deployment nginx --to-revision=2

弹性伸缩
kubectl scale deployment Name --replicas=?
例:
kubectl scale deployment nginx --replicas=10

k8s项目部署

部署流程

  1. 将java代码打成jar包
  2. 制作镜像(Dockerfile)
  3. 推送镜像(推送到阿里云、网易、私有库等)
  4. 使用控制器部署镜像(Deployment)
  5. 对外暴露应用(Service、Ingress)
  6. 运维(监控、升级、故障排查)

实现

  1. 将代码打成jar包(可以使用maven的package或者gradle的build工具进行打包)

  2. 编写Dockerfile文件并执行

    Dockerfile文件内容

    //选择jdk8的镜像源
    FROM openjdk:8-jdk-alpine
    //挂载到/tmp目录下
    VOLUME /tmp
    //将当前目录的DockerTest-0.0.1-SNAPSHOT.jar改名为wu-docker.jar并打成镜像
    ADD ./DockerTest-0.0.1-SNAPSHOT.jar wu-docker.jar
    //执行java -jar的命令 来运行该镜像
    ENTRYPOINT [ "java","-jar","/wu-docker.jar","&"]
    

    运行Dockerfile文件

    //-t 后表示上传到docker上镜像的名字以及版本号(注意后面还有一个.)
    docker build -t java-docker-k8s:1.0 .
    

    成功后会多出一个名为java-docker-k8s的镜像

  3. 推送到aliyun

    • 在aliyun的容器镜像服务中创建命名空间,再创建镜像仓库。
    • 根据镜像仓库中的提示上传或拉去镜像即可
  4. 通过k8s进行部署

    • 通过deployment命令,生成镜像的yaml文件kubectl create deployment Name --image=阿里云镜像pull的路径 --dry-run=client -o yaml > yaml文件名.yaml
    • 运行该yaml文件kubectl apply -f yaml文件名.yaml
  5. 对外暴露服务(Service)

    • 创建多个副本kubectl scale deployment NAME --replicas=副本个数
    • kubectl expose deployment Name --port=对外端口 --target-port=本身端口 --type=NodePort
    • 查看详情kubectl get svc
  6. 。。。。。。。。。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐