作者:Gauss松鼠会 2022-08-21 16:50:36
云计算
云原生 本文主要介绍用 kubeadm 简单部署 Kubernetes 的过程,其中涉及到提前准备机器、环境、安装包等动作,过程中需要大家细心操作,部分组件、包等不能通过 wget 顺利下载时,建议手工下载。
灌阳网站建设公司创新互联公司,灌阳网站设计制作,有大型网站制作公司丰富经验。已为灌阳千余家提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的灌阳做网站的公司定做!
Kubernetes 这个单词来自于希腊语,含义是舵手或领航员。Kubernetes,也称为 K8S,其中 8 是代表中间 “ubernete” 的 8 个字符。
官网描述如下图:生产级别的容器编排系统,是用于自动部署,扩展和管理容器化应用程序的开源系统。 (编排:按照一定的目的依次排列;调配、安排)。
K8S 是 CNCF 毕业的项目,本来 Kubernetes 是 Google 的内部项目,后来开源出来,又后来为了其茁壮成长,捐给了 Cloud Native Computing Foundation(CNCF:云原生计算基金会)
我们在 github 上可以看到,Kubernetes 是采用 Go 语言开发的。Go(又称 Golang)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
k8s 集群控制节点,对集群进行调度管理,接受集群外用户去集群操作请求;
Master Node 由 API Server、Scheduler、ClusterState Store(ETCD 数据库)和 Controller MangerServer 所组成;
集群工作节点,运行用户业务应用容器;
Nodes 节点也叫 Worker Node,包含 kubelet、kube proxy 和 Pod(Container Runtime);
部署 Kubernetes 环境(集群)主要有多种方式:
本文将介绍以上的第一种方式进行示意部署讲解:
kubeadm 是官方社区推出的一个用于快速部署 kubernetes 集群的工具,这个工具能通过两条指令完成一个 kubernetes 集群的部署;
创建一个 Master 节点:
kubeadm init
将 Node 节点加入到 Master 集群中:
$ kubeadm join
关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
关闭 selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config #永久
setenforce 0 #临时
关闭 swap(k8s 禁止虚拟内存以提高性能):
sed -ri 's/.*swap.*/#&/' /etc/fstab #永久
swapoff -a #临时
在 master 添加 hosts (ip 地址根据自己预先设置的为准):
cat >> /etc/hosts << EOF 192.168.52.100 k8smaster 192.168.52.101 k8snode EOF
设置网桥参数:
cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF
sysctl --system #生效
时间同步:
yum install ntpdate -y
ntpdate time.windows.com
所有服务器节点安装 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
安装指定版本的 docker(自行替换最新版本号 x.x.x.x):
yum install docker-ce-x.x.x.x -y
配置加速器加速下载:
/etc/docker/daemon.json
{
"registry-mirrors": ["https://cr.console.aliyun.com/"]
}
然后执行,不然会提示警告:
systemctl enable docker.service
(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
(3) 安装 kubeadm,kubelet 和 kubectl
yum install kubelet-1.24.1 kubeadm-1.24.1 kubectl-1.24.1 -y
然后执行,不然会提示警告:
systemctl enable kubelet.service
查看有没有安装:
yum list installed | grep kubelet
yum list installed | grep kubeadm
yum list installed | grep kubectl
查看安装的版本:
kubelet –version
此时应重启一下系统 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
补充: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
接下来把 node 节点加入 Kubernetes master 中,在 Node 机器上执行;
向集群添加新节点,执行的命令是 kubeadm init 最后输出的 kubeadm join 命令(如下图):
kubeadm join 192.168.52.101:端口号 --token wa5bif.zfuvbesevdfvf4of \
--discovery-token-ca-cert-hash sha256:87cf5828d54dd80da13c4b57c57360370ea0267a7cc3991989ca3006cf3e44d8
下载 kube-flannel.yml 文件 (flannel 作为 k8s 的集群中常用的网络组件,其 yml 文件的获取,建议去 github 中获取)
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
应用 kube-flannel.yml 文件得到运行时容器;
kubectl apply -f kube-flannel.yml (在 master 机器上执行):
然后查看节点状态: kubectl get nodes (在 master 机器上执行),STATUS:Ready 时,说明我们的 k8s 环境至此就搭建好了。
查看运行时容器 pod (一个 pod 里面运行了多个 docker 容器)
kubectl get pods -n kube-system
以上就是用 Kubeadm 简单部署 Kubernetes 的过程,其中涉及到提前准备机器、环境、安装包等动作,过程中需要大家细心操作,部分组件、包等不能通过 wget 顺利下载时,建议手工下载。
当前文章:如何快速部署Kubernetes
本文路径:http://www.gawzjz.com/qtweb/news3/205753.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联