kubernetes 已经成为容器编排领域的王者,它是基于容器的集群编排引擎,具备扩展集群、滚动升级回滚、弹性伸缩、自动治愈、服务发现等多种特性能力。 本文将带着大家快速了解 kubernetes ,了解我们谈论 kubernetes 都是在谈论什么。 kubernetes 架构 从宏观上来看 kubernetes 的整体架构,包括 Master、Node 以及 Etcd。 Master 即主节点,负责控制整个 kubernetes 集群。它包括 Api Server、Scheduler、Controller 等组成部分。它们都需要和 Etcd 进行交互以存储数据。 Api Server:主要提供资源操作的统一入口,这样就屏蔽了与 Etcd 的直接交互。功能包括安全、注册与发现等。 Scheduler:负责按照一定的调度规则将 Pod 调度到 Node 上。 Controller:资源控制中心,确保资源处于预期的工作状态。 Node 即工作节点,为整个集群提供计算力,是容器真正运行的地方,包括运行容器、kubelet、kube-proxy。 kubelet:主要工作包括管理容器的生命周.... 关于 Kubernetes 的这些原理,你一定要了解 Kubernetes
通过Deployment来创建一组Pod来提供具有高可用性的服务。虽然每个Pod都会分配一个单独的Pod IP,然而却存在如下两个问题: Pod IP仅仅是集群内可见的虚拟IP,外部无法访问。 Pod IP会随着Pod的销毁而消失,当ReplicaSet对Pod进行动态伸缩时,Pod IP可能随时随地都会变化,这样对于我们访问这个服务带来了难度。 Service 负载均衡之Cluster IP service是一组pod的服务抽象,相当于一组pod的LB,负责将请求分发给对应的pod。service会为这个LB提供一个IP,一般称为cluster IP 。使用Service对象,通过selector进行标签选择,找到对应的Pod: 示例: [root@k8s-master deployment]# cat svc-myblog.yaml apiVersion: v1 kind: Service metadata: name: myblog namespace: demo spec: ports: - port: 80 protocol: TCP targetPort: 8.... Kubernetes服务访问 Kubernetes
一 、环境概述: cat >> /etc/hosts <<EOF 10.0.0.202 master 10.0.0.197 node1 10.0.0.163 node2 EOF 挂载数据盘: mkdir /data mkfs.xfs -f /dev/vdb mount /dev/vdb /data 安装部署 Docker,并修改 Docker 的数据存放位置。 准备 Kubernetes 的v1.16.4的相关二进制文件,具体可参考CHANGELOG-1.16。(略) 系统主机名初始化,主机 SSH 授信免密登录。 ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub node1 ssh-copy-id -i ~/.ssh/id_rsa.pub node2 关闭 selinux,关闭 iptables 准备部署目录,并把/data/kubernetes/bin 加入到环境变量 PATH 中。 mkdir -p /data/kubernetes/{cfg,bin,ssl,log} echo "export P.... K8S二进制部署过程-v1.17.0 Kubernetes
一、 K8S架构 除了核心组件,还有一些推荐的Add-ons: 组件名称 说明 kube-dns 负责为整个集群提供DNS服务 Ingress Controller 为服务提供外网入口 Heapster 提供资源监控 Dashboard 提供GUI Federation 提供跨可用区的集群 Fluentd-elasticsearch 提供集群日志采集、存储与查询 K8S核心功能: 自愈: 重新启动失败的容器,在节点不可用时,替换和重新调度节点上的容器,对用户定义的健康检查不响应的容器会被中止,并且在容器准备好服务之前不会把其向客户端广播。 弹性伸缩: 通过监控容器的cpu的负载值,如果这个平均高于80%,增加容器的数量,如果这个平均低于10%,减少容器的数量 服务的自动发现和负载均衡: 不需要修改您的应用程序来使用不熟悉的服务发现机制,Kubernetes 为容器提供了自己的 IP 地址和一组容器的单个 DNS 名称,并可以在它们之间进行负载均衡。 滚动升级和一键回滚: Kubernetes 逐渐部署对应用程序或其配置的更改,同时监视应用程序运行状况,以确保它不会同时终止所有实例。 ..... K8S基础搭建使用 Kubernetes