k8s 入门

该文介绍了K8s集群的基础概念,如nodes是实际机器节点,pods是容器运行的地方,deployment用于应用编排,services负责服务暴露。操作步骤涉及使用docker构建镜像,将其推送至镜像仓库,然后在K8s中通过deployment和services创建和公开服务。还涵盖了更新服务、扩容与回收等操作。
摘要由CSDN通过智能技术生成

基础概念:

        nodes -> k8s 集群实际机器节点,上面运行pods

        pods -> 包裹服务应用的container实际运行的地方

        deployment -> k8s部署应用的编排抽象,以及后续操作的基础依赖

        services -> k8s通过services对外暴露端口

概要:

        k8s 需要依赖docker或其他容器话管理工具

        k8s 有集群内和集群外的概念,services 的主要作用是将集群内的功能暴露,使集群外可以访问相关服务

操作步骤:

        使用docker将服务进行打包封装成镜像文件

# 详细命令参见docker help build
docker build -t ${source-image:tag} -f ${path1/Dockerfile} path
# 命令简单解释
# ${source-image:tag} 自定义的名称和tag,tag可省略
# ${path1/Dockerfile} Dockerfile的具体路径
# path 打包进image的内容所在的实际路径

        将镜像push到docker的镜像仓库

# docker 登录
# docker help login
docker login -u ${user} -p ${pwd} ${repository}
# ${user} docker登录用户名
# ${pwd} docker登录密码
# ${repository} docker image 仓库地址

# 依据source-image 创建一个target-image
docker image tag ${source-image} ${target-image}
# ${source-image} 被依赖于创建远程仓库target-image的原始本地image,上一个命令中使用
# dockerfile创建的image
# ${target-image} 新创建的远程仓库image,target-image中包含远程仓库地址等信息

# 将镜像推送到远程仓库
docker push ${target-image}

        使用k8s命令创建一个deployment指定名称和对应的镜像,创建成功后会依据deployment生成pods并运行

# k8s通过拉取仓库镜像创建相关的deployment
kubectl create deployment ${project_name} --image=${target-image}
# ${project_name} 创建的deploy_ment名称
# ${target-image} k8s要从远程拉取的镜像名称

        使用k8s命令创建一个services暴露当前pods到k8s集群外提供服务

# k8s使用expose命令将实际服务的端口映射到集群外可以访问的端口
kubectl expose deployment/${project_name} --type=${type} --port=${real-server-port}
# ${project_name} 部署的deployment名称
# ${type} 映射类型有ClusterIP<NodePort<LoadBalancer 以及ExternalName 等
# NodePort是ClusterIP的超集,LoadBalancer是NodePort的超集,个人理解使用NodePort Type时,同# 样可以使用ClusterIP type的方式对服务进行访问;同理,使用LoadBalancer Type时,同样可以使用
# NodePort方式进行访问;
# ${real-server-port} 个人理解为服务真实的端口

        更新k8s服务

# 更新k8s服务的主要操作为,更新k8s对应的deployment中的image,k8s会自动创建新的pods替换原有服务
kubectl set image deployments/${project_name} ${project_name}=${new-image}
# ${project_name} 创建的deploy_ment名称
# ${new-image} 要用来替换旧服务的新的镜像名称

        k8s扩容与回收

# k8s 扩容或回收命令
kubectl scale deployments/${project_name} --replicas=${replicas_num}
# ${project_name} 要进行扩容或回收的deploy_ment名称
# ${replicas_num} 扩容或回收后的副本数量

基础命令:

        kubectl get deployment :查看所有deployment

        kubectl get pods: 查看所有pods

        kubectl exec -ti ${pod-name} -- ${cmd,eg:bash}:  在pods中执行相关命令

        kubectl create deployment ${project_name} --image=${target-image}: 创建deployment

        kubectl logs ${pod-name}: 查看pods相关log

        kubectl describe pods ${pod-name}: 查看pods相关详细信息

        kubectl expose deployment/${project_name} --type=${type} --port=${real-server-port}: 将pod中服务端口暴露到k8s集群外命令

        kubectl get services: 查看service信息(包括端口映射信息等)

        kubectl scale deployments/${project_name} --replicas=${replicas_num}: 对k8s上${project_name}服务进行扩容或回收

        kubectl describe deployments/${project_name}: 可以查看deploy的详细信息,包含副本数量,端口等信息

        kubectl edit deployment ${deployment_name}: 可以编辑deployment配置信息

        kubectl rollout restart deployment ${deployment_name} -n ${namespace}: 重启deployment

相关知识:

        使用container创建image

         docker commit ${container_id} ${image:tag}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值