在Fedora中搭建一个一体化Kubernetes

fedora项目主页https://start.fedoraproject.org/
Kubernetes on Fedora的相关介绍https://fedoramagazine.org/kubernetes-on-fedora-iot-with-k3s/

一.在fedora中安装docker

1.更新软件包

yum update

2.查找docker软件包并安装

yum list docker 

在这里插入图片描述

yum install docker.x86_64

注意需要根据你找到的实际软件包的名字进行安装

3.检查安装后的docker

你可以尝试运行如下命令:

docker<Tab>
docker <Tab><Tab>
docker -h
docker -v

最后一定要运行docker version命令

docker version

在这里插入图片描述对于最后出现的错误是因为fedora不会自动启动docker daemon,需要你手动启动。

4.启动docker daemon服务

systemctl enable docker.service
systemctl start docker.service
sudo docker version

在这里插入图片描述systemctl status docker.service
在这里插入图片描述5.检查相关的软件安装包

rpm -ql docker | less

在这里插入图片描述特定文件说明
/var/lib/docker:docker pull下来的镜像文件及容器都在次目录中。
/etc/sysconfig/docker:当docker命令作为服务的守护进程来运行时,这个文件用来收集提供给docker命令的选项。默认情况下仅增加–selinux-enabled选项来启用针对docker的SELinux支持。该文件中的一项配置DOCKER_CERT_PATH将启动docker服务所需的密钥文件存放目录到指定的/etc/docker
/etc/sysconfig/docker-network:该文件用来收集传给docker服务的网络选项
/etc/syscofig/docker-storage:该文件用来改变docker服务存储数据的方式。默认会使用挂载到/var/lib/docker目录的一个稀疏的回送文件。可以选择使用原始存储设备来保存元数据和数据。
/etc/udev/rules.d/80-docker.rules:该文件用来告知udev服务配置docker服务所使用的设备映射文件,docker服务使用该设备映射文件来访问容器所需的宿主机特性
/usr/share/doc/docker:存放docker的项目文档。包含软件变更和许可证信息,及readme文件。
/usr/share/man:docker命令的联机帮助页

二.在fedora中安装Kubernetes

1.找出相关软件包

yum list kubernetes
yum list etcd

在这里插入图片描述2.安装相关软件包

sudo yum install -y --enablerepo=updates-testing kubernetes.x86_64 etcd.x86_64

在这里插入图片描述在该条命令中使用了–enablerepo=updates-testing特性,目的是为了获取最新版本的k8s,注意,我只是想尝试更多的最新特性,但是它们即有可能不稳定,若发生了次种情况你就需要完全删除相关的软件包,并使用不带此特性的命令重新安装。

在这里插入图片描述最后可见这个一体化的软件包安装了k8s集群的所有组件

3.关闭firewalld

为了让k8s工作,需要安装iptables,查看你的机器中是否安装了iptables,若未安装运行yum install iptables进行安装。
在这里插入图片描述
因为k8s非常依赖iptables防火墙规则进行组件间通信,故此为了方便学习关闭了任何会冲突的防火墙管理器
在这里插入图片描述

systemctl stop firewalld
systemctl disable firewlld
systemctl status firewalld

在这里插入图片描述4.配置Master和Node服务

在一个k8s集群中,在master和node上对k8s进行配置是告诉他们如何进行通信:配置文件为/etc/etcd/etcd.conf和/etc/kubernetes目录中的文件。
此处为仅在一个节点上搭建的一体化k8s,且由于master和node的大多数服务的默认配置都设为在本地宿主机中查找彼此,因此这些信息就不需要添加到一体化集群中。
!!!由于k8s中存在绝对的权限管理:基于角色的默认权限管理。
无论是用户还是k8s自身的服务组件,其都受到ACL(Access Control List)的控制,最初为了方便试用k8s的相关功能:编辑/etc/kubernetes/apiserver文件,从KUBE_ADMISSION_CONTROL这一行删掉ServiceAccount。这让你在进行简单的pod部署时绕过ServiceAccount特性。

# default admission control policies
#KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ResourceQuota"

在这里插入图片描述5.启动master服务

MSERVICES="etcd kube-apiserver kube-controller-manager kube-scheduler"
systemctl restart $MSERVICES
systemctl enable $MSERVICES
systemctl is-active $MSERVICES
systemctl is-enabled $MSERVICES

在这里插入图片描述
6.启动node服务

NSERVICES="kube-proxy kubelet docker"
systemctl restart $NSERVICES
systemctl enable $NSERVICES
systemctl is-active $NSERVICES
systemctl is-enabled $NSERVICES

在这里插入图片描述7.检查集群状态

kubectl cluster-info
kubectl get node

在这里插入图片描述至此一个一体化的k8s集群搭建完毕。

猜你喜欢

转载自blog.csdn.net/qq_41875506/article/details/89666591
今日推荐