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)控制器以及服务账户等。

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

被折叠的 条评论
为什么被折叠?



