网站首页 > 博客文章 正文
我们先简单介绍一下Kubernetes集群的组件,然后再讲述安装的步骤
Kubernetes集群组件
Kubernetes集群包含2大组件:
- Master组件
包含API Server, Controller Management,Scheduler和etcd. 为了便于学习安装,我们把它们安装到同一台机器上。
- API Server:
提供HTTP/HTTPS服务,为Kubernetes中所有组件提供RESETful API支持。同时它会读取和更新etcd的后端数据。 - Controller Management
控制着集群中多种不同的资源包含RC控制器、Node控制器、Endpoint 控制器、SA和token。 - Scheduler
根据node上资源容量和利用率为Pod选择适合的Node. - etcd
一个开源的ley-value存储系统,Kubernetes用它来存储所有的RESTful API对象。
- 节点组件
记录Pod的运行状态并报告给Master。
- kubelet
Kube-apiserver的agent: 周期性的将Node的活动如Pod健康状态,Node状态报告给API Server. - Kube-Proxy
负责处理Service与Pod之间的路由,实现方式为iptable 和IPVS - Docker
启动容器的工具,处理docker还可以用其他容器技术如rkt
环境搭建
对于K8s环境的搭建我们通常参考网上的各种教程,在进行CKA考试时,你唯一可以参考的资料就是kubernetes的官方文档。
目前kubernetes推荐的安装方式依然是kubeadmin, 所以我们下面的安装步骤主要参考下面的链接
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/
我选用的操作系统是Ubuntu 18.04,1台做Master,3台做Worker.
- 安装Docker
curl -fsSL https://get.docker.com/ | sh
systemctl enable docker
systemctl start docker
- 安装 kubeadm, kubelet and kubectl
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
- 在Master上初始化集群
kubeadm init --pod-network-cidr 192.168.0.0/16 --ignore-preflight-errors strings
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
参数说明:
--pod-network-cidr: 需要Pod网段和本地网络处于不同的地址段
--ignore-preflight-errors strings: 忽略一些系统检查错误
- 在Master上安装网络
kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml
Calico默认使用的Pod网段是192.168.0.0/16, 需要和之前的Init指定的保持一致。
如果你在第三步写的是别的网段,你可以把yaml文件下载下来编辑,然后再运行。
- 把worker加入集群
kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash>
复制第三步的输出,然后在各worker上运行。
- 在Master上确认集群状态
systemctl status kubelet.service
kubectl get node
kubectl get cs
猜你喜欢
- 2024-12-31 二进制部署k8s集群
- 2024-12-31 Kubernetes系列之集群部署
- 2024-12-31 容器化部署SpringBoot微服务
- 2024-12-31 【云原生】k8s 一键部署(ansible)
- 2024-12-31 【云原生】k8s 离线部署讲解和实战操作
- 2024-12-31 探索eBPF:Linux内核的黑科技
- 2024-12-31 Kubernetes 常见故障排查和处理
- 2024-12-31 使用RKE的方式快速部署K8S集群
- 2024-12-31 在 Anolis 8.8 | Rocky 9.3 | AlmaLinux 9.3 上部署 k8s v1.28.3 集群
- 2024-12-31 k8s集群报错:check that the calico/node container is running and has
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 360℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)