专业的编程技术博客社区

网站首页 > 博客文章 正文

从零开始获得CKA证书之组件和环境搭建

baijin 2024-12-31 09:10:00 博客文章 3 ℃ 0 评论

我们先简单介绍一下Kubernetes集群的组件,然后再讲述安装的步骤


Kubernetes集群组件

Kubernetes集群包含2大组件:

  • Master组件

包含API Server, Controller Management,Scheduler和etcd. 为了便于学习安装,我们把它们安装到同一台机器上。

  1. API Server:
    提供HTTP/HTTPS服务,为Kubernetes中所有组件提供RESETful API支持。同时它会读取和更新etcd的后端数据。
  2. Controller Management
    控制着集群中多种不同的资源包含RC控制器、Node控制器、Endpoint 控制器、SA和token。
  3. Scheduler
    根据node上资源容量和利用率为Pod选择适合的Node.
  4. etcd
    一个开源的ley-value存储系统,Kubernetes用它来存储所有的RESTful API对象。
  • 节点组件
    记录Pod的运行状态并报告给Master。
  1. kubelet
    Kube-apiserver的agent: 周期性的将Node的活动如Pod健康状态,Node状态报告给API Server.
  2. Kube-Proxy
    负责处理Service与Pod之间的路由,实现方式为iptable 和IPVS
  3. Docker
    启动容器的工具,处理docker还可以用其他容器技术如rkt

环境搭建

对于K8s环境的搭建我们通常参考网上的各种教程,在进行CKA考试时,你唯一可以参考的资料就是kubernetes的官方文档。

目前kubernetes推荐的安装方式依然是kubeadmin, 所以我们下面的安装步骤主要参考下面的链接

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/

我选用的操作系统是Ubuntu 18.04,1台做Master,3台做Worker.

  1. 安装Docker
curl -fsSL https://get.docker.com/ | sh
systemctl enable docker
systemctl start docker
  1. 安装 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
  1. 在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: 忽略一些系统检查错误

  1. 在Master上安装网络
kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml

Calico默认使用的Pod网段是192.168.0.0/16, 需要和之前的Init指定的保持一致。

如果你在第三步写的是别的网段,你可以把yaml文件下载下来编辑,然后再运行。

  1. 把worker加入集群
kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash>

复制第三步的输出,然后在各worker上运行。

  1. 在Master上确认集群状态
systemctl status kubelet.service
kubectl get node
kubectl get cs

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表