SERVICE PHONE
13920192029发布时间:2024-11-22 23:54:06 点击量:
允许打开iptables桥接流量
关闭linux 防火墙
因为对学习环境主机的端口开放不用太关注。如果是生产环境,主机端口是需要按需开放的。关闭swap
安装可以选择docker,也可以是containerd安装docker
安装好之后查看docker 版本:
安装docker 版本配置yum 仓库源,kubernetes官网提供的源,仓库地址无法访问,如下(如果网络没问题也可以使用)
国内可以使用如下配置替代官网提供的仓库:
配置好仓库源之后,进行安装:
kubeadm 版本
安装前准备,提前准备k8s 组件镜像,由于网络问题,不能直接访问gcr.io,需要绕道。
首先通过 kubeadm images list 查看安装依赖的镜像包版本
kubernetes 依赖版本
以下由笔者整理在dockerhub上的镜像资源,可以直接使用
在dockerhub上可以找到大牛上传好的镜像,不过不同的仓库版本不是很全,所以这里统一做了梳理。可以在dockerhub上看到以下镜像的mount 源
开始安装
准备好镜像依赖之后执行:
解释:
--apiserver-advertise-address 指定
--image-repository 指定
--kubernetes-version 指定
--service-cidr 指定service 网络平面,创建service之后,ClusterIP 的cidr范围
--pod-network-cidr 设置pod 网络平面,即设置k8s pod(容器)内的IP范围安装日志
使用kubectl,配置默认的Role
此时node节点处于NotReady状态,可以通过 jourato -xeu kubelet查看kubelet日志
节点not ready 原因
提示没有可用的cni插件,下一步安装cni插件,选择flannel。(也可以使用calico)准备网络插件:
部署flannel 插件
部署好之后,查看集群状态,发现所有组件全部running了。
集群状态
例子部署一个postgresql数据库:
准备部署文件:
因为学习环境,只有一个解节点(master和node共用),因此在部署应用时会报错:
default-scheduler 0/1 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate.
这是因为k8s默认不允许在master节点部署。这也是为了保证一定的可靠性。在学习环境中,可以通过以下命令,解除这种限制:
之后就看到postgresql 安装完成了,可以使用:
postgresql 使用
当然还可以部署Service,使用NodePort类型,提供给节点外部使用。
一个使用IDE形式的k8s 界面,安装和使用非常方便,只需要在官网下载 https://k8slens.dev/ 打开就可使用。支持windows、mac、linux使用方法
打开Lens 如下界面
Lens 添加cluster界面
拷贝~/.kube/config 文本,粘贴在Lens ,如下图:
添加k8s集群
添加之后就可以操作k8s集群了。
Lens 操作界面
Lens支持很多功能,具体可以动手试试。