在fedora32/centos8上安装Kubernetes集群
Repository: Author: GitHub
Introduction:
CreateTime:2020-6-21 09:11:19
UpdateTime:2020-6-21 17:39:16
Copyright: 唐涛 HOME | 首页 © 2020
Email: tangtao2099@outlook.com
文章目录
Kubernetes是Google基于Borg开源的容器编排调度引擎,作为CNCF(Cloud Native Computing Foundation)最重要的组件之一,它的目标不仅仅是一个编排系统,而是提供一个规范,可以让你来描述集群的架构,定义服务的最终状态,kubernetes可以帮你将系统自动得达到和维持在这个状态。
更直白的说,Kubernetes用户可以通过编写一个yaml或者json格式的配置文件,也可以通过工具/代码生成或直接请求kubernetes API创建应用,该配置文件中包含了用户想要应用程序保持的状态,不论整个kubernetes集群中的个别主机发生什么问题,都不会影响应用程序的状态,你还可以通过改变该配置文件或请求kubernetes API来改变应用程序的状态。
运行环境
[root@localhost ~]# cat /etc/redhat-release
Fedora release 32 (Thirty Two)
[root@localhost ~]# cat /proc/version
Linux version 5.6.19-300.fc32.x86_64 (mockbuild@bkernel01.iad2.fedoraproject.org) (gcc version 10.1.1 20200507 (Red Hat 10.1.1-1) (GCC)) #1 SMP Wed Jun 17 16:10:48 UTC 2020
kubernetes版本 v1.18.4
[root@localhost ~]# kubectl version
Client Version: version.Info{
Major:"1", Minor:"18", GitVersion:"v1.18.4", GitCommit:"c96aede7b5205121079932896c4ad89bb93260af", GitTreeState:"clean", BuildDate:"2020-06-17T11:41:22Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{
Major:"1", Minor:"18", GitVersion:"v1.18.4", GitCommit:"c96aede7b5205121079932896c4ad89bb93260af", GitTreeState:"clean", BuildDate:"2020-06-17T11:33:59Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
开始搭建集群环境
在安装新组件之前,先升级系统
dnf -y upgrade
禁用SELinux
setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
启用透明伪装并促进虚拟可扩展LAN(VxLAN
)通信,以在整个集群中的Kubernetes Pod之间进行通信。
modprobe br_netfilter
防火墙上启用IP伪装
firewall-cmd --add-masquerade --permanent
firewall-cmd --reload
设置桥接数据包以遍历iptables规则
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
加载新规则
sysctl --system
禁用所有内存交换以提高性能
也可以通过kubernetes手动开启忽略交换分区,但这样可能会降低集群性能💥。
swapoff -a
vim /etc/fstab
---------------注释掉 swap 重启系统----------------
=========================示例=======================
[root@localhost tao]# swapoff -a
[root@localhost tao]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Jun 15 02:13:37 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/fedora_localhost--live-root / ext4 defaults 1 1
UUID=fbdf9a0f-5f7a-4542-9988-b579662fd622 /boot ext4 defaults 1 2
/dev/mapper/fedora_localhost--live-swap none swap defaults 0 0
-----------重启之后----------
[root@localhost tao]# free -h
total used free shared buff/cache available
Mem: 7.7Gi 670Mi 6.4Gi 7.0Mi 709Mi 6.8Gi
Swap: 0B 0B 0B
安装docker
参考前文,或参考官网
在主节点和工作节点上安装Kubernetes
将Kubernetes存储库添加到您的包管理器中。
链接:谷歌存储库
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://package