在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.service5.检查相关的软件安装包
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中安装Kubernete
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集群搭建完毕。
- 上一篇:centOS使用.htaccess
- 下一篇:CentOS6.4x84挂载U盘