鲲鹏CentOS服务器上快速搭建K8S集群
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。
这个工具能通过两条指令完成一个kubernetes集群的部署:
# 创建一个 Master 节点
$ kubeadm init
# 将一个 Node 节点加入到当前集群中
$ kubeadm join <Master节点的IP和端口 >
1、 安装准备
本文以云服务器KC1实例搭建,云服务器配置如表1-1所示。
表1-1 云服务器配置
项目 | 说明 |
规格 | kc1.large.2 | 2vCPUs | 4GB |
磁盘 | 系统盘:高IO(40GB) |
操作系统要求如表1-2所示。
表1-2 操作系统要求
项目 | 说明 | 下载地址 |
CentOS | 7.6 | 在公共镜像中已提供。 |
Kernel | 4.14.0-115 | 在公共镜像中已提供。 |
购买的服务器如表1-3所示。
环境准备。
节点 | 弹性公网IP | 私有IP地址 |
master | xxx.xxx.xxx.xxx | 192.168.0.2 |
Node1 | xxx.xxx.xxx.xxx | 192.168.0.125 |
2、 环境准备
1) 关闭防火墙
#systemctl stop firewalld
#systemctl disable firewalld
2) 关闭selinux
#sed -i 's/enforcing/disabled/' /etc/selinux/config
# setenforce 0
3) 临时关闭swap
#swapoff -a
4) 设置主机名
master:
#vi /etc/sysconfig/network
HOSTNAME=master
#vim /etc/hosts
192.168.0.2 master
192.168.0.125 node1
node1:
vi /etc/sysconfig/network
HOSTNAME=node1
vim /etc/hosts
192.168.0.2 master
192.168.0.125 node1
5) 将桥接的IPv4流量传递到iptables的链
#cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
3、 安装docker。
执行如下命令。
#yum install docker -y
#systemctl enable docker && systemctl start docker
#docker --version
4、 添加YUM软件源
# cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64
enabled=1
gpgcheck=0
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
5、 安装kubeadm,kubelet和kubectl
# yum install -y kubelet-1.14.0 kubeadm-1.14.0 kubectl-1.14.0
# systemctl enable kubelet
安装kubelet 后会在/etc下生成文件目录/etc/kubernetes/manifests/
6、 Master节点部署
在Master机器上执行如下(如果已经执行过,想重新执行,可通过输入命令kubeadm reset重置后再执行如下命令):
kubeadm init \
--apiserver-advertise-address=192.168.0.2 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.14.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
出现如下信息表示执行成功。
kubeadm 以后将会在 /etc 路径下生成配置文件和证书文件
tree /etc/kubernetes
7、 使用kubectl工具,执行配置文件
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes
看到master状态是NotReady,它在等待网络的加入
8、 安装Pod网络插件(CNI)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
加入网络后再次查询nodes,看到master状态是Ready,表明网络的加入成功
9、 加入Kubernetes Node
向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:这个在master init初始化时会有提示,更换为自己的IP和token。
在node节点上输入如下命令。
kubeadm join 192.168.0.2:6443 --token am3871.951phu0szg19o1te --discovery-token-ca-cert-hash sha256:11b8d9e9f35ccc083856527183065c9841985d7825420b20c4954d0bec226de4
返回如下,说明成功。
10、 查看node1加入状态
在master节点输入如下命令进行查看
kubectl get nodes
返回如下,说明加入成功。
- 点赞
- 收藏
- 关注作者
评论(0)