微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

基于阿里云ECS服务器的k8s集群环境搭建

未分类 aide_941 3℃

前言:  网上搭建k8s的文章很多,但很多都无法按其说明在阿里云ecs服务器成功搭建,所以我就花了些时间基于自己成功搭建k8s的步骤写了个 操作手册,希望对想搭建k8s环境的盆友有所帮助。

声明:  由于本人对k8s不是很熟悉,大部分也是参考别人的文章而写,再次对同行的分享表示感谢.

1. 集群信息:

master01 :  39.100.137.XX (172.26.214.XX)

slave1:       39.98.155.XX (172.26.214.XX)

slave2:       39.98.154.XX (172.26.214.XX)

 

2. 设置主机名: master, slave均需配置

#master执行

>vi /etc/sysconfig/network

HOSTNAME=master01

#slave1执行

>vi /etc/sysconfig/network

HOSTNAME=master01

#slave2执行

>vi /etc/sysconfig/network

HOSTNAME=slave02

 

3. 设置主机名与ip的对应关系: master, slave均需配置

>cat /etc/hosts

172.26.214.XX  master01

172.26.214.XX  slave01

172.26.214.XX  slave02

 

4. 关闭swap:master, slave均需配置

重启机器后,如果是临时关闭,别忘记再次执行.

>swapoff -a     #临时关闭

>vim /etc/fstab  #永久关闭

将/dev/mapper/centos-swap swap swap default 0 0 这一行前面加个#号将其注释掉

 

5. 将桥接的IPv4流量传递到iptables : master, slave均需配置

>vim /etc/sysctl.conf

添加:

net.ipv4.ip_forward = 1

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

 

6. 载入sysctl.conf配置文件: master, slave均需执行

>sysctl -p

 

7. 添加阿里云YUM软件源 : master, slave均需配置

>cd /etc/yum.repos.d

>touch kubernetes.repo

>vi 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

8. 安装kubeadm,kubelet和kubectl :master, slave均需配置

yum install -y kubelet-1.15.1 kubeadm-1.15.1 kubectl-1.15.1

 

9. 如果已经提前安装docker, 则重启下docker

我本地在装k8s之前已经按照好docker.

注意: 每个节点都需提前安装好docker环境.

 

10. 启动kubelet : master, slave均需执行

#systemctl enable kubelet: 添加开机自启动

>systemctl enable kubelet && systemctl start kubelet

 

11. 初始化k8s master : 只在master执行

kubeadm init

–image-repository registry.aliyuncs.com/google_containers

–kubernetes-version v1.15.1

–pod-network-cidr=10.244.0.0/16

初始化参数解释:

–service-cidr: 指定serverice网络地址, 可以理解为一个负载均衡的虚拟vip

–apiserver-advertise-address: 指定Master api 组件ip地址,用于与其它节点通信.

–pod-network-cidr=10.244.0.0/16: k8s的网络插件所需要用到的配置信息,用来给node分配子网段, 这是flannel的配法.

 

12. 配置kubectl认证信息: 只在master执行

# 对于非root用户

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 对于root用户

>vi /etc/profile

export KUBECONFIG=/etc/kubernetes/admin.conf

也可以直接放到~/.bash_profile

>echo “export KUBECONFIG=/etc/kubernetes/admin.conf” >> ~/.bash_profile

 

13. 安装Pod网络插件(CNI): 只在master执行

要让 Kubernetes 集群能够工作,必须安装 Pod 网络,否则 Pod 之间无法通信

Kubernetes 支持多种网络方案,这里我使用 flannel

kube-flannel.yml 地址:

https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml

将其内容保存至本地文件kube-flannel.yml,然后执行:

>kubectl apply -f ./kube-flannel.yml

 

14. Node节点配置, 将node 加入master :只在node节点执行.

kubeadm join <Master节点的IP和端口>

向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:这个在master init初始化时会有提示,将示例中的ip更换为子节点的IP

#slave1执行:

>kubeadm join 172.26.214.XX:6443 –token amqw4o.i3eya5a1z5f6zuq7 \

–discovery-token-ca-cert-hash \

sha256:c45e01b12ea2e2954c8659328d972da5aa217e54c44c11c496b548b0df4c3095

#slave2执行:  和slave1执行命令相同.

注意:此命令执行后,需要一段时间才能, 在主机用kubectl get nodes命令查到新加入的node.

 

15. 开放端口

在阿里云后台开放: 6443 2379 2380 10250~10252, 31620 端口. 具体方法请自行研究如何设置阿里云访问端口.\

 

16. 验证安装结果

>kubectl get nodes

>kubectl get pods -n kube-system

 

17. 安装Dashboard

自行参考: https://blog.csdn.net/networken/article/details/85607593

 

18. 至此安装完毕,不喜者勿入.

转载请注明:SuperIT » 基于阿里云ECS服务器的k8s集群环境搭建

喜欢 (0)or分享 (0)