当前位置 : 主页 > 操作系统 > centos >

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

来源:互联网 收集:自由互联 发布时间:2023-07-28
一、前置条件 在开始安装配置k8s集群之前,请确认以下前置条件: 在所有节点(Master和Worker)上禁用防火墙或者将必须的端口(如: 10250, 2379-2380, 6443, 10251-10252等)加入到了防火墙的白

一、前置条件

在开始安装配置k8s集群之前,请确认以下前置条件:

  1. 在所有节点(Master和Worker)上禁用防火墙或者将必须的端口(如: 10250, 2379-2380, 6443, 10251-10252等)加入到了防火墙的白名单中。
  2. 所有节点的时间保持同步
  3. 所有节点的主机名和IP地址配置正确

二、安装Docker

Kubernetes是基于Docker容器技术构建的,因此在安装Kubernetes之前,我们需要先安装Docker。

  1. 安装Docker

yum install -y docker

  1. 启动Docker

systemctl start docker
systemctl enable docker

  1. 配置Docker镜像加速

在国内使用Docker官方镜像源的下载速度非常慢,因此我们需要配置一个Docker镜像加速器。

这里以阿里云镜像加速器为例,

将以下内容添加到 “/etc/docker/daemon.json” 文件中(如果文件不存在则创建它):

{
"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]
}

其中xxx为阿里云的镜像加速器地址。

然后重启Docker服务:

systemctl restart docker

三、安装Kubernetes

  1. 添加Kubernetes源

cat <<EOF >/etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

自由互联热门推荐:PDF电子发票识别软件,一键识别电子发票并导入到Excel中!10大顶级数据挖掘软件!人工智能的十大作用!

  1. 安装Kubernetes组件

yum install -y kubelet kubeadm kubectl

  1. 启动Kubernetes

systemctl start kubelet
systemctl enable kubelet

  1. 部署Kubernetes Master

在某一台节点上执行以下命令:

kubeadm init --apiserver-advertise-address=<master-node-ip> --pod-network-cidr=10.244.0.0/16

其中 --apiserver-advertise-address 参数为Master节点IP地址,--pod-network-cidr 参数为flannel网络使用的IP地址段。

执行完上面的命令后,会输出一个类似于下面的信息:

“`
Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

 mkdir -p $HOME/.kube
 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
 sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should now deploy a pod network to the cluster.
Run “kubectl apply -f [podnetwork].yaml” with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 172.31.30.10:6443 –token nxg6dk.z2gg5mq6gl4mplm3 \
–discovery-token-ca-cert-hash sha256:69cb50a94d3c2fd0d6e17464647bd83cdff18afcb447c99159c4f600494bf8a9
“`

备注:

  • 执行前应该确保上述初始参数一定要正确;
  • kubeadm 命令执行完毕后,会在当前用户的 $HOME/.kube/config 文件中生成一个 Kubernetes 的管理密钥(kubeconfig)文件。
  • 安装CNI插件

Kubernetes默认使用Flannel作为网络插件,我们可以通过以下方式来安装Flannel:

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

  1. 加入Kubernetes节点

在所有的Kubernetes节点上执行以下命令:

kubeadm join <master-node-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

其中,<master-node-ip> 换成 master 节点的 IP 地址, <token><hash>在执行 kubeadm init 命令时生成,可以在初始化成功后通过命令 kubeadm token create --print-join-command 查看。

四、验证Kubernetes集群

  1. 验证集群状态

执行以下命令,查看集群状态

kubectl get nodes

如果所有的节点都已经加入成功,会输出类似于以下信息:

NAME STATUS ROLES AGE VERSION
k8s-master Ready control-plane,master 3m2s v1.22.2
k8s-node1 Ready <none> 2m6s v1.22.2
k8s-node2 Ready <none> 2m6s v1.22.2

  1. 部署一个简单的应用

创建一个简单的nginx pod,并暴露到NodePort上:

kubectl run nginx --image=nginx --replicas=1 --port=80
kubectl expose pod nginx --type=NodePort --port=80 --name=nginx-service

查看部署状态:

kubectl get pods
kubectl get svc

输出以下信息,证明nginx pod部署成功:

“`
NAME READY STATUS RESTARTS AGE
nginx-d8b54f4cb-5bk7s 1/1 Running 0 43s

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-service NodePort 10.100.49.182 80:30584/TCP 46s
“`

现在打开一个浏览器,访问任意一台节点IP地址加上30584端口号,如果出现nginx默认的欢迎页面,则证明部署成功。

以上就是CentOS 7上使用kubeadm安装配置Kubernetes的全部过程。

网友评论