Kubernetes集群部署

Kubernetes 集群部署是一项复杂但具有重要意义的任务。

首先,您需要准备好合适的硬件基础设施,这包括具有足够计算资源(CPU、内存、存储)的服务器节点。

在软件方面,您要选择适合您需求的操作系统,如常见的 Linux 发行版(CentOS、Ubuntu 等)。

接下来是安装必要的依赖包和工具,例如 Docker 用于容器运行时环境。

配置网络也至关重要,要确保各个节点之间能够顺畅通信。

然后,您可以选择使用诸如 `kubeadm` 这样的工具来初始化主节点,并将工作节点加入集群。

在部署过程中,还需要关注安全性设置,如设置访问控制策略和认证机制。

例如,如果您的集群需要暴露到外网,那么配置合适的防火墙规则和负载均衡器就是必须的。

另外,监控和日志收集系统的搭建也不能忽视,这有助于您及时发现和解决集群运行中的问题。

总之,Kubernetes 集群部署需要仔细规划和谨慎操作,以确保集群的稳定和高效运行。

master节点的组件

  1. API server

    是 Kubernetes 集群的前端控制入口,负责处理来自客户端(如 kubectl )的请求,并提供了集群状态的读取和写入接口。对外暴露了 HTTP API,以供其他组件和用户与集群进行交互。
  2. kube-controller-manager

    包含了多个控制器,例如 Node Controller 负责监控节点的健康状况,Replication Controller 确保副本集的期望数量与实际数量一致。持续监控集群的状态,并采取必要的操作来维持集群的期望状态。
  3. kube-scheduler

    负责将新创建的未调度的 Pod 分配到合适的节点上。考虑节点的资源可用性、Pod 的资源需求以及其他调度策略来做出决策。

例如,如果一个节点出现故障,kube-controller-manager 中的 Node Controller 会检测到并采取相应的措施,如将该节点上的 Pod 重新调度到其他健康的节点上。而当创建一个新的 Pod 时,kube-scheduler 会根据各个节点的资源使用情况和调度策略,选择一个最适合运行该 Pod 的节点。

Node节点包含的组件

  1. kubelet

    是节点上的主要代理,负责与主节点通信,接收并执行分配给该节点的任务。监控运行在节点上的 Pod,确保 Pod 中的容器处于健康状态。例如,当容器出现故障时,kubelet 会尝试重新启动它。
  2. kube-proxy

    负责为服务提供网络代理和负载均衡功能。

         实现了从集群内部或外部访问服务的流量分发。

如果一个服务有多个后端 Pod,kube-proxy 会根据负载均衡策略将请求分发到不同的 Pod 上,以确保服务的高可用性和性能。

另外,节点上通常还会安装容器运行时(如 Docker ),用于运行容器。

kubernetes网络插件

Flannel

    为每个节点分配一个子网,实现容器之间的跨节点通信。

    配置相对简单,广泛应用于各种场景。

Calico

    基于 BGP 协议,提供了更精细的网络策略控制。

    适用于对网络安全和策略有较高要求的环境。

Weave Net

支持多种网络拓扑,具有较好的性能和扩展性。

  1. Cilium

    以 eBPF 技术为基础,提供高效的网络和安全功能。
  2. kube-router:集成了网络和服务代理功能。

kubeadm快速安装kubernetes集群

1.采用kubeadm方式来安装kubernetes集群,需要一台master节点和两台node节点

(1)配置三台主机的主机名

hostnamectl set-hostname k8s-master
bash
hostnamectl set-hostname k8s-node01
bash
hostnamectl set-hostname k8s-node02
bash

在三台主机上绑定hosts

cd /etc/hosts

192.168.10.101 k8s-master
192.168.10.102 k8s-node01
192.168.10.103 k8s-node02

关闭交换分区

swapoff -a
sed -i '/swap/s/^/' /etc/fstab

在三台主机上安装常用软件

yum -y install vim wget net-tools lrzsz

配置哭bernetes的YUM源

cat <<EOF> /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF


yum clean all

安装kubelet、kubeadm、kubectl

yum install -y kuvelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0

生成初始化配置文件

kubeadm config pring init-defaults > init-config.yaml

初始化配置文件

vim init-config.yaml

拉取所需镜像

kubeadm config images list --config init-config.yaml
kubeadm config images pull --config init-config.yaml

初始化k8s-master

kuberadm init --config=init-config.yaml

复制配置文件到用户的home目录

node节点加入到集群

注意:master中生成的token,直接在master主机中复制过来即可

在k8s-master查看节点

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_proflie
kubectl get nodes

kubectl get pod -A

部署Calico网络插件

也可以提前下载好calica的资源清单直接部署

kubectl create create -f calico.yaml

kubectl get nodes

kubectl get pod --all-namespoces

Metrics-server部署

修改yaml文件并安装

vim components.yaml

--kubelet-insecure-tls   #添加
kubectl create -f comoinents.yaml

测试安装结果

kubectl top node
kubectl top pod -A

Dashboard部署

在k8s工作目录中创建dashborad工作目录

mkdir /opt/k8s/dashboard
cd /opt/k8s/dashboaed

上传所需的yaml文件并部署dashboard

ls
dashboaed-user.yaml dashboard.yaml
kubectl create -f .

查看端口号

kubectl get svc kubernetes-dashboaed -n kubernetes-dashboard

查看token

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值