当前位置首页 > Fedora知识

在Fedora中搭建一个一体化Kubernetes

阅读次数:224 次  来源:admin  发布时间:

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 

在Fedora中搭建一个一体化Kubernetes

yum install docker.x86_64

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

3.检查安装后的docker

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

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

最后一定要运行docker version命令

docker version

在Fedora中搭建一个一体化Kubernetes对于最后出现的错误是因为fedora不会自动启动docker daemon,需要你手动启动。

4.启动docker daemon服务

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

在Fedora中搭建一个一体化Kubernetessystemctl status docker.service在Fedora中搭建一个一体化Kubernetes5.检查相关的软件安装包

rpm -ql docker | less

在Fedora中搭建一个一体化Kubernetes特定文件说明

/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中安装Kubernete

1.找出相关软件包

yum list kubernetes
yum list etcd

在Fedora中搭建一个一体化Kubernetes2.安装相关软件包

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

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

在Fedora中搭建一个一体化Kubernetes最后可见这个一体化的软件包安装了k8s集群的所有组件

3.关闭firewalld

为了让k8s工作,需要安装iptables,查看你的机器中是否安装了iptables,若未安装运行yum install iptables进行安装。

在Fedora中搭建一个一体化Kubernetes

因为k8s非常依赖iptables防火墙规则进行组件间通信,故此为了方便学习关闭了任何会冲突的防火墙管理器

在Fedora中搭建一个一体化Kubernetes

systemctl stop firewalld
systemctl disable firewlld
systemctl status firewalld

在Fedora中搭建一个一体化Kubernetes4.配置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"

在Fedora中搭建一个一体化Kubernetes5.启动master服务

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

在Fedora中搭建一个一体化Kubernetes

6.启动node服务

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

在Fedora中搭建一个一体化Kubernetes7.检查集群状态

kubectl cluster-info
kubectl get node

在Fedora中搭建一个一体化Kubernetes至此一个一体化的k8s集群搭建完毕。

上一篇:centOS使用.htaccess
下一篇:CentOS6.4x84挂载U盘