【云原生训练营】模块四 Kubernetes 架构原则和对象设计

本文深入探讨了Kubernetes(K8s)的架构原则和对象设计,包括K8s的安装、概念、架构组件(如API服务器、etcd、Controller Manager和Scheduler)、Kubectl使用、生态系统以及核心对象的概览。此外,还介绍了K8s的调度过程、控制器的工作流程以及Kubernetes对象的重要属性TypeMeta。通过对K8s组件和对象的详细解析,帮助读者理解Kubernetes集群管理和容器编排的底层机制。

Kubernetes 架构原则和对象设计

K8s安装

https://github.com/cncamp/101/tree/master/k8s-install/k8s-by-kubeadm

Install docker
apt install docker.io

Update cgroupdriver to systemd
vi /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
systemctl daemon-reload
systemctl restart docker


Letting iptables see bridged traffic
$ cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

$ cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
$ sudo sysctl --system

Update the apt package index and install packages needed to use the Kubernetes apt repository:
$ sudo apt-get update
$ sudo apt-get install -y apt-transport-https ca-certificates curl

Install kubeadm
$ sudo curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -

Add the Kubernetes apt repository
$ sudo tee /etc/apt/sources.list.d/kubernetes.list <<- EOF'
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
EOF


Update apt package index, install kubelet, kubeadm and kubectl
$ sudo apt-get update
$ sudo apt-get install -y kubelet kubeadm kubectl
$ sudo apt-mark hold kubelet kubeadm kubectl


kubeadm init
$ echo "10.0.100.141 cncamp.com" >> /etc/hosts
$ kubeadm init 

–image-repository registry.aliyuncs.com/google_containers
–kubernetes-version v1.22.2
–pod-network-cidr=10.0.100.0/16
–apiserver-advertise-address=10.0.100.141

Copy kubeconfig
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config


Untaint master
$ kubectl taint nodes --all node-role.kubernetes.io/master-

K8s概念

Kubernetes 是谷歌开源的容器集群管理系统,是 Google 多年大规模容器管理技术 Borg 的开源版本,主要功能包括:

  • 基于容器的应用部署、维护和滚动升级;
  • 负载均衡和服务发现;
  • 跨机器和跨地区的集群调度;
  • 自动伸缩;
  • 无状态服务和有状态服务;
  • 插件机制保证扩展性。

在这里插入图片描述

K8s架构

在这里插入图片描述

K8s Master:

  • API服务器:这是 Kubernetes 控制面板中唯一带有用户可访问 API 以及用户可交互的组件。API 服务器会暴露一个 RESTful 的 Kubernetes API 并使用 JSON 格式的清单文件(manifest files)。

  • etcd:etcd 是 CoreOS 基于 Raft 开发的分布式 key-value 存储,可用于服务发现、共享配置以及一致性保障(如数据库选主、分布式锁等)。

    • 基本的key-value存储
    • 监听机制(数据发生变化watch API-Server,长连接)
    • key 的过期及续约机制,用于监控和服务发现
    • 原子 CAS 和 CAD,用于分布式锁和 leader 选举
  • Controller Manager:它运行着所有处理集群日常任务的控制器。包括了节点控制器、副本控制器、端点(endpoint)控制器以及服务账户等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值