K8S搭建以及使用

组件:

1.主机(Master):用于控制整个Kubernetes集群

2.节点(node):负责执行请求和分配所有任务的节点

3.容器集(Pod):部署在 node 节点上,且包至少含一个或多个容器,同一个容器集中的所有容器共享同一个IP地址,主机名以及其他资源  

4.复本控制器(Replication Controller):用于控制应在集群某处运行的完全相同的容器集副本数量

5.服务(Service):将工作内容与容器集进行隔离,Kubernetes 服务代理会自动将服务请求分发到某个容器集上

6.kubectl:Kubernetes 的命令行配置工具

7.kubelet:负责 node 节点与 master 节点进行通信,同时管理本机的容器集,负责维护容器集的生命周期

优势:

1.批量编排:可以在多台容器的服务器上创建相同的容器实例

2.资源利用:当一个应用有多个副本时,Kubernetes 会通过自身的算法将每个应用 pod 分布在每个 node 节点上,优先选择物理资源使用率最低的那一台去部署

3.服务透明:直接访问要访问的东西,不关心其他信息

4.负载均衡

5.故障自愈:当 pod 异常停止或删除时,通过定义的描述信息生成新的一个一模一样的 pod

6.弹性伸缩:一个是集群节点扩容,还有一个就是一个服务可以生成多个一样的服务

7.动态变更:动态更改内存之类的

8.健康检查:根据自定义检测方式以及应对处理策略来对pod进行一系列操作

访问 pod 的方式:

一、hostPort 或 hostNetwork:

此种方式直接将 pod 内部端口映射到部署 pod 的主机上,外部访问通过主机 IP +端口直接访问 pod

注意:

1.使用 hostNetwork 需要注意 pod 的 ip ,每次 pod 的 ip 是会变化的

2.使用 hostPort 注意 , Pod 重新调度时该 Pod 可能会被调度到不同的宿主机,因此,需要维护一个 Pod 与宿主机的对应关系

二、NodePort:

K8s中的 service 默认情况都是使用 Cluster IP 这种类型,会产生一个只能在内部访问的 Cluster IP,如果想能够直接访问service,需要将 service type 修改为 nodePort。同时给改 service 指定一个 nodeport 值(30000-32767),集群外就可以使用 K8s 任意一个节点的 IP 加上端口访问该服务了,kube-proxy 会自动将流量以轮询的方式转发给该 service 的每一个 pod

直接创建方法:

1.先创建 deployment (管理 pod 的控制器):

kubectl create deployment 名字 --image=镜像 -o yaml > deploy.yaml

2.部署:

kubectl apply -f deploy.yaml

3.暴露给外面访问:

kubectl expose deployment 刚刚创建的名字 --port=server 的端口 --target-port=容器的端

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值