前言: 网上搭建k8s的文章很多,但很多都无法按其说明在阿里云ecs服务器成功搭建,所以我就花了些时间基于自己成功搭建k8s的步骤写了个操作手册,希望对想搭建k8s环境的盆友有所帮
前言: 网上搭建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
向集群添加新节点,执行在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. 至此安装完毕,不喜者勿入.