【K8S】阿里云VPS内网环境-Kubernetes集群基础部署(CentOS8.2)

   日期:2020-11-09     浏览:104    评论:0    
核心提示:最开始测试部署的k8s集群是在本地的三个虚拟机上,由于服务越来越复杂,决定就直接搭在阿里云的服务器上了。目前的两台机器还行(4+8和2+4),有其它厂商的服务器,但是就得走公网,感觉没多大意义了,所以就用这两台机器来测试了。(PS:轻量应用服务器没得安全组的,hhh)0x01.环境基础阿里云服务器1:4核+8G。系统:Centos8.2,内网ip:172.17.xx.xx,公网ip:39.96.xx.xx阿里云服务器2:2核+4G。系统:Centos8.2,内网ip:172.17.xx.xx,公

最开始测试部署的k8s集群是在本地的三个虚拟机上,由于服务越来越复杂,决定就直接搭在阿里云的服务器上了。目前的两台机器还行(4+8和2+4),有其它厂商的服务器,但是就得走公网,感觉没多大意义了,所以就用这两台机器来测试了。(PS:轻量应用服务器没得安全组的,hhh)
篇幅原因,这里只涉及Kubernetes集群的基础部署,KubeSphere等其他套件部署见后续文章。

0x01.环境基础

  • 阿里云服务器1:4核+8G。系统:Centos8.2,内网ip:172.17.xx.xx,公网ip:39.96.xx.xx
  • 阿里云服务器2:2核+4G。系统:Centos8.2,内网ip:172.17.xx.xx,公网ip:59.110.xx.xx
  • 两台服务器使用同一个VPS,使用同一个安全组,内网可以互相ping通。(如果内网不能互相ping通,那么就是公网集群环境,部署的方式有较大差异。)
  • 两台服务器均安装了Docker。
  • 采用一主一从模式,其中master节点也作为一个node。
  • 安装的Kubernetes及其组件的版本为v1.17.3。
  • 如果nodes增加,只需要按照nodes的部署步骤操作即可。

0x02.Kubenetes组件安装及准备(所有节点执行)

1.准备:关闭swap分区

  • 该版本的Kubernetes默认不支持开启swap的情况下运行。(也可以修改配置保持在开启swap分区的情况下运行,但最好关闭swap分区)
  • 关闭swap分区:
# 暂时关闭swap分区
swapoff -a 
# 永久关闭swap分区 或进入/etc/fstab文件,注释掉swap所在行
sed -ri's/.*swap.*/#&/' /etc/fstab 

2.准备:关闭selinux安全策略

  • selinux实际上没多大用处,但会产生很多没必要的提示。最好关掉。
  • 永久关闭slinux:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

3.准备:桥接IPv4流量

  • 桥接IPv4流量传递到iptables链 ,便于流量统计。
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf

4.配置:yum配置阿里云的Kubernetes源

  • 告诉yum下载阿里云镜像上的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

5.安装:kubeadm,kublet,kubectl

  • 配置好源后直接用yum下载。
yum install -y kubelet-v1.17.3 kubeadm-v1.17.3 kubectl-v1.17.3
  • 安装成功的界面:

6.设置开机启动

systemctl enable kubelet
systemctl start kubelet

7.开放相关端口

  • 由于需要多个服务器间通信,可以选择关闭防火墙或者开放相关的端口。
  • 端口信息:https://v2-1.docs.kubesphere.io/docs/zh-CN/installation/port-firewall/
服务 协议 操作 起始端口 结束端口 备注
ssh TCP allow 22
etcd TCP allow 2379 2380
apiserver TCP allow 6443
calico TCP allow 9099 9100
bgp TCP allow 179
nodeport TCP allow 30000 32767
master TCP allow 10250 10258
dns TCP allow 53
dns UDP allow 53
local-registry TCP allow 5000 离线环境安装
local-apt TCP allow 5080 离线环境安装
rpcbind TCP allow 111 使用 NFS 作为持久化存储
ipip IPIP allow Calico 需要允许 IPIP 协议

0x03.Master节点初始化

1.下载Master节点所需镜像

  • 运行该shell脚本,批量下载Master节点所需镜像。
#!/bin/bash

images=(
	kube-apiserver:v1.17.3
    kube-proxy:v1.17.3
	kube-controller-manager:v1.17.3
	kube-scheduler:v1.17.3
	coredns:1.6.5
	etcd:3.4.3-0
    pause:3.1
)

for imageName in ${images[@]} ; do
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
# docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
done

2.Master节点初始化

  • 使用kubeadm进行Master节点的初始化。
  • apiserver-advertise-address 修改为内网ip。
kubeadm init \
--apiserver-advertise-address=172.17.96.12 \
--kubernetes-version v1.17.3 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=10.244.0.0/16

3.复制配置文件

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

4.部署网络插件

  • 使用配置好的yml文件部署flannel插件。
kubectl apply -f kube-flannel.yml
  • yml文件内容太多,需要请私聊我。

5.让Master也能当作Node使用的方法

kubectl taint node Master名 node-role.kubernetes.io/master-

0x04.node节点加入集群

  • 复制Master节点初始化完成后的token信息,在子结点中粘贴。
kubeadm join 172.17.96.12:6443 --token n7ybwv.0q1d8f7w9k9lok7e \
    --discovery-token-ca-cert-hash sha256:9c8db5e1f190d1b01bfc2084ded47d2c14ff4c143935839a57376f0e71b09cf6

0x05.验证集群是否搭建成功

  • 在Master节点查看,子节点是否在集群中:
kubectl get nodes

  • 查看所有pod的状态是不是Running。如果有pod一直处在某一个状态,那么这个pod就出现了问题,可以查看日志。
kubectl get pods --all-namespaces
# 查看具体pod的日志
kubectl describe pod pod名 --namespace=命名空间

0x06.kubeadm重新初始化

  • Master节点:
# 输入 y 确认
kubeadm reset  

ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down
ip link delete flannel.1
rm /var/lib/cni/ -rf
rm /etc/kubernetes/ -rf
rm /var/lib/kubelet/ -rf  
rm -rf $HOME/.kube
  • 子节点:
rm -rf /etc/kubernetes/*
  • 即可回到初始只安装好三个基本组件的状态。
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服