在centos 7中安装配置k8s集群的步骤详解

  • Post category:Linux

在CentOS 7中安装Kubernetes集群的步骤详解

1. 安装Docker

首先需要安装Docker作为Kubernetes的底层服务。可以按照以下方式安装Docker:

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce
systemctl enable docker && systemctl start docker

2. 关闭SELinux和防火墙

Kubernetes一般需要关闭SELinux和防火墙,否则可能会遇到网络连接问题。可以执行以下命令关闭他们:

setenforce 0
systemctl stop firewalld && systemctl disable firewalld

3. 添加Kubernetes源

使用以下命令添加最新的Kubernetes源:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64
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

4. 安装Kubernetes组件

使用以下命令安装Kubernetes组件:

yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet

5. 初始化Master节点

首先需要选择一个节点作为Kubernetes集群的Master节点。我们可以在集群中选择一台节点完成Master的初始化,具体操作如下:

kubeadm init --apiserver-advertise-address=192.168.0.1 --pod-network-cidr=10.244.0.0/16

其中,--apiserver-advertise-address参数的值需要替换成当前节点的IP地址。而--pod-network-cidr参数是这个具体示例中才用的IP地址段,选择类似的其他地址段即可。

初始化完成后,会输出一些信息,包括如何加入其他节点到集群中:

kubeadm join 192.168.0.1:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

这是一个加入Kubernetes集群的示例命令,其中一些参数的值是需要替换的,比如--token的值需要从Master初始化的输出信息中获取。

6. 安装网络插件

安装完成后,还需要安装网络插件才能让节点之间互相通信,这里选择使用Flannel网络插件,安装方式如下:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

安装完成后,可以通过以下命令查看节点的状态:

kubectl get nodes

7. 安装Dashboard

安装Dashboard可以方便的管理和监控Kubernetes的各个节点。可以通过以下命令来安装Dashboard:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml

安装成功后,可以使用以下命令查看Dashboard的URL地址:

kubectl describe service kubernetes-dashboard -n kubernetes-dashboard

通过这个地址就可以访问Kubernetes集群的Dashboard了。

示例说明

以下是两个示例,分别是安装Docker和安装Dashboard的详细操作。

示例一:安装Docker

  1. 安装所需的软件包:
yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 添加Docker仓库:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装Docker:
yum install docker-ce
  1. 启动Docker:
systemctl enable docker && systemctl start docker

示例二:安装Dashboard

  1. 部署Dashboard:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml
  1. 创建ServiceAccount:
kubectl create sa admin-user -n kube-system
  1. 绑定ClusterRole和ServiceAccount:
kubectl create clusterrolebinding admin-user --clusterrole=cluster-admin --serviceaccount=kube-system:admin-user
  1. 获取Token:
kubectl describe secret $(kubectl get secrets -n kube-system | grep admin-user | awk '{print $1}') -n kube-system
  1. 通过Token登录Dashboard,访问以下URL:

    https://<kubernetes-master>/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

其中,<kubernetes-master>是Kubernetes集群Master节点的地址。