详细介绍一下在CentOS系统上安装Kubernetes环境?
想要在CentOS系统上安装Kubernetes环境,需要我们安装Docker、然后需要配置Kubernetes仓库、安装Kubeadm、Kubelet和Kubectl等组件,最后还要通过Kubeadm初始化Kubernetes集群。下面我们就来详细介绍一下如何在CentOS上安装Kubernetes集群。
环境准备
- 操作系统:CentOS 7 或 CentOS 8
- 最低硬件要求:2GB RAM,2个CPU核心
- 网络:配置主机名和IP地址,每个节点的IP地址和主机名可以互相解析
关闭Swap(虚拟内存交换分区)
由于Kubernetes需要要求关闭交换分区功能,如下所示,关闭系统的Swap功能。
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab # 永久禁用Swap
关闭防火墙和SELinux
Kubernetes要求关闭防火墙和SELinux,否则可能会导致网络和安全问题。
# 禁用防火墙
systemctl disable --now firewalld
# 禁用SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
设置网络配置
接下来就是需要进行网络的配置将bridge-nf-call-iptables 和 bridge-nf-call-ip6tables 设置为1,如下所示。
cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sysctl --system
完成环境配置之后,接下来就是按照步骤安装Docker、Kubernetes等基础组件。
安装Docker
安装Docker环境,来支持Kubernetes需要的运行容器环境。
# 安装Docker依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加Docker仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker
yum install -y docker-ce docker-ce-cli containerd.io
# 启动并设置Docker开机启动
systemctl enable --now docker
配置Kubernetes仓库
Docker安装完成之后,接下来就是需要配置相关的官方仓库配置,如下所示。
cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
安装Kubernetes组件(Kubeadm、Kubelet、Kubectl)
配置基础Docker和Kubernetes仓库之后,接下来就是安装Kubernetes相关的组件来构建Kubernetes集群管理。如下所示。
# 安装Kubernetes组件
yum install -y kubelet kubeadm kubectl
# 设置Kubelet为开机启动
systemctl enable --now kubelet
初始化Kubernetes集群(仅Master节点执行)
可以在Kubernetes的Master节点上执行如下的命令来初始化Kubernetes的集群管理。
# 使用kubeadm进行初始化(以下命令需要修改网络和主机参数)
kubeadm init --pod-network-cidr=10.244.0.0/16
# 初始化完成后,会输出配置kubeconfig的指令,执行如下命令:
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
安装网络插件
然后安装网络插件,这个插件用来处理Pod之间的通信操作,这里我们选择的是Flannel插件,可以通过如下的命令来进行安装。
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
加入工作节点(Worker节点执行)
接下来,就需要在Worker节点上执行Kubeadm Join命令加入集群,这个命令会在初始化Master节点初始化的时候看到相应的初始化输出结果,如下所示。
# 以下命令仅为示例,需根据实际输出的Join命令进行操作
kubeadm join <master-ip>:<master-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
验证集群状态
我们可以在在Master节点上执行以下命令,查看各组件和节点状态,如下所示。
# 查看节点状态
kubectl get nodes
# 查看所有Pod状态
kubectl get pods --all-namespaces
当然为了方便,我们还可以通过的Kubernetes Dashboard提供的Web图形化页面来进行集群的管理,如下所示。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml
完成后可以通过服务方式或者NodePort方式访问Dashboard。
总结
通过上面的步骤,我们就可以完成在CentOS系统上进行Kubernetes的安装,在生产环境中,还需要考虑到网络、存储、安全配置等内容。需要结合实际的情况来进行调整。