加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_郴州站长网 (http://www.0735zz.com/)- 云通信、区块链、物联设备、云计算、站长网!
当前位置: 首页 > 云计算 > 正文

怎么快速部署 Kubernetes

发布时间:2022-08-27 12:43:01 所属栏目:云计算 来源:互联网
导读:What is Kubernetes? Kubernetes 这个单词来自于希腊语,含义是舵手或领航员。Kubernetes,也称为 K8S,其中 8 是代表中间 ubernete 的 8 个字符。 官网描述如下图:生产级别的容器编排系统,是用于自动部署,扩展和管理容器化应用程序的开源系统。 (编排
  What is Kubernetes?
  Kubernetes 这个单词来自于希腊语,含义是舵手或领航员。Kubernetes,也称为 K8S,其中 8 是代表中间 “ubernete” 的 8 个字符。
 
  官网描述如下图:生产级别的容器编排系统,是用于自动部署,扩展和管理容器化应用程序的开源系统。 (编排:按照一定的目的依次排列;调配、安排)。
 
  在这里插入图片描述
 
  K8S 是 CNCF 毕业的项目,本来 Kubernetes 是 Google 的内部项目,后来开源出来,又后来为了其茁壮成长,捐给了 Cloud Native Computing Foundation(CNCF:云原生计算基金会)
 
  我们在 github 上可以看到,Kubernetes 是采用 Go 语言开发的。Go(又称 Golang)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
 
  在这里插入图片描述
 
  ​
 
  Kubernetes 架构示意简图
  在这里插入图片描述
 
  Master(系统由控制面)
  k8s 集群控制节点,对集群进行调度管理,接受集群外用户去集群操作请求;
 
  Master Node 由 API Server、Scheduler、ClusterState Store(ETCD 数据库)和 Controller MangerServer 所组成;
 
  Nodes (数据面)
  集群工作节点,运行用户业务应用容器;
 
  Nodes 节点也叫 Worker Node,包含 kubelet、kube proxy 和 Pod(Container Runtime);
 
  Kubernetes 环境搭建方式
  部署 Kubernetes 环境(集群)主要有多种方式:
 
  kubeadm:Kubeadm 是一个 K8s 部署工具,提供 kubeadm init 和 kubeadm join 两个操作命令,可以快速部署一个 Kubernetes 集群;
  minikube:minikube 可以在本地运行 Kubernetes 的工具,minikube 可以在个人计算机(包括 Windows,macOS 和 Linux PC)上运行一个单节点 Kubernetes 集群,以便您可以试用 Kubernetes 或进行日常开发工作;
  二进制包方式:从 Github 下载发行版的二进制包,手动部署安装每个组件,组成 Kubernetes 集群,步骤比较繁琐,但是能让你对各个组件有更清晰的认识;
  yum 安装方式:通过 yum 安装 Kubernetes 的每个组件,组成 Kubernetes 集群,不过 yum 源里面的 k8s 版本已经比较老了;
  第三方工具:利用一些大神封装的工具进行 k8s 环境的安装;
  还有一种就是一些云服务公司的公用云平台 k8s。
  Kubeadm 部署 Kubernetes
  本文将介绍以上的第一种方式进行示意部署讲解:
 
  kubeadm 是官方社区推出的一个用于快速部署 kubernetes 集群的工具,这个工具能通过两条指令完成一个 kubernetes 集群的部署;
 
  创建一个 Master 节点:
 
  复制
  kubeadm init
  1.
  将 Node 节点加入到 Master 集群中:
 
  复制
  $ kubeadm join <Master 节点的 IP 和端口>
  1.
  Kubernetes 部署环境要求
  一台或多台机器,操作系统 CentOS 7.x-86_x64
  硬件配置:内存 2GB 以上,CPU 2 核或 CPU 2 核以上;
  集群内各个机器之间能相互通信(必须);
  集群内各个机器可以访问外网,需要拉取镜像(非必须,也可手动下载需要的文件包);
  禁止 swap 分区;
  Kubernetes 部署环境准备
  关闭防火墙:
 
  复制
  systemctl stop firewalld
  systemctl disable firewalld
  1.
  2.
  关闭 selinux:
 
  复制
  sed -i 's/enforcing/disabled/' /etc/selinux/config  #永久
  setenforce 0  #临时
  1.
  2.
  关闭 swap(k8s 禁止虚拟内存以提高性能):
 
  复制
  sed -ri 's/.*swap.*/#&/' /etc/fstab #永久
  swapoff -a #临时
  1.
  2.
  在 master 添加 hosts (ip 地址根据自己预先设置的为准):
 
  复制
  cat >> /etc/hosts << EOF 192.168.52.100 k8smaster 192.168.52.101 k8snode EOF
  1.
  设置网桥参数:
 
  复制
  cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF
  sysctl --system  #生效
  1.
  2.
  时间同步:
 
  复制
  yum install ntpdate -y
  ntpdate time.windows.com
  1.
  2.
  Kubernetes 安装具体步骤
  所有服务器节点安装 Docker、kubeadm、kubelet、kubectl,Kubernetes 默认容器运行环境是 Docker,因此首先需要安装 Docker;
 
  (1) 安装 Docker
 
  更新 docker 的 yum 源:
 
  复制
  yum install wget -y
  wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
  1.
  2.
  安装指定版本的 docker(自行替换最新版本号 x.x.x.x):
 
  复制
  yum install docker-ce-x.x.x.x -y
  1.
  配置加速器加速下载:
 
  复制
  /etc/docker/daemon.json
  {
     
  "registry-mirrors": ["https://cr.console.aliyun.com/"]
  }
  1.
  2.
  3.
  4.
  5.
  然后执行,不然会提示警告:
 
  复制
  systemctl enable docker.service
  1.
  (2) 接下搭建:kubeadm、kubelet、kubectl , 添加 k8s 的阿里云 YUM 源:
 
  复制
  cat > /etc/yum.repos.d/kubernetes.repo << EOF [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
  1.
  (3) 安装 kubeadm,kubelet 和 kubectl
 
  复制
  yum install kubelet-1.24.1 kubeadm-1.24.1 kubectl-1.24.1 -y
  1.
  然后执行,不然会提示警告:
 
  复制
  systemctl enable kubelet.service
  1.
  查看有没有安装:
 
  复制
  yum list installed | grep kubelet
  yum list installed | grep kubeadm
  yum list installed | grep kubectl
  1.
  2.
  3.
  查看安装的版本:
 
  复制
  kubelet –version
  1.
  Kubelet:运行在 cluster 所有节点上,负责启动 POD 和容器;
  Kubeadm:用于初始化 cluster 的一个工具;
  Kubectl:kubectl 是 kubenetes 命令行工具,通过 kubectl 可以部署和管理应用,查看各种资源,创建,删除和更新组件;
  此时应重启一下系统 reboot(centos);
 
  (4) 部署 Kubernetes Master 主节点(此命令在 master 机器上执行)
 
  复制
  kubeadm init --apiserver-advertise-address=192.168.52.100 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.24.1 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
  1.
  补充:service-cidr 的选取不能和 PodCIDR 及本机网络有重叠或者冲突,一般可以选择一个本机网络和 PodCIDR 都没有用到的私网地址段,比如 PODCIDR 使用 10.244.0.0/16, 那么 service cidr 可以选择 10.96.0.0/12,网络无重叠冲突即可;
 
  接下来在 master 机器上执行:
 
  复制
  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config
 
  kubectl get nodes
  1.
  2.
  3.
  4.
  5.
  接下来把 node 节点加入 Kubernetes master 中,在 Node 机器上执行;

(编辑:开发网_郴州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读