【无标题】

阿里云搭建k8s集群环境

前言:

在开始学习k8s过程中,需要搭建一套环境,但是呢,很多教程用的是虚拟机,搭建多个虚拟机,由于个人的电脑性能限制和网络问题,于是考虑用阿里云服务器,搭建一个集群环境,供自己学习使用,只是学习,不需要太多的配置,价格很实惠,也很方便,顺便记录这个过程吧。


目的:搭建一主两从k8s集群环境(主要用来学习和测试用,实际生产中多主多从)

服务器配置:CPU:2核,内存2G,磁盘40G(默认),系统centos:7.6

阿里云官网安装教程
按照官方的来,在设置到flannel的时候,参考本帖的flannel的方法,上面链接中flannel方法不能用

一:创建系统实例

这里需要创建三个实例,系统为centos:7.6,在创建实例之前需要往账号里面冲100块大洋,账号里低于100块,不能创建。废话不多说,上图。

在这里插入图片描述
这里选择配置,我这里配置是下图,还有一些别的配置看个人需求吧。
在这里插入图片描述

这里选择操作系统,我使用的是centos:7.6,这里看的视频说的是7.5下面的版本不太行。

在这里插入图片描述

这里设置系统登录密码

在这里插入图片描述

这里分别把创建的实例名称改一下,方便区分,我设置的是k8s-master,k8s-node1,k8s-node2

在这里插入图片描述

分别配置三个系统实例完毕后,开始正式主题,配置k8s集群环境了。

在这里插入图片描述

二:配置集群环境

2.1 master,node配置相同点

这里master,node都进行如下配置

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

暂时关闭SWAP分区

swapoff -a

永久禁用SWAP分区

swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

禁用Selinux

setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

将系统中桥接的IPv4以及IPv6的流量串通:

cat >/etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

安装Docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker
docker --version

继续复制粘贴,每一个节点还需要进行如下的修改

 Setup daemon.
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

mkdir -p /etc/systemd/system/docker.service.d

复位docker

systemctl daemon-reload
systemctl restart docker

安装Kubernetes的安装组件

vi /etc/yum.repos.d/kubernetes.repo

把下面复制粘贴进去,这里注意一下,csdn直接复制往系统里面粘贴,[kubernetes]会出现复制不全的现象,这里手打一下[kubernetes],然后输入 按esc输入 :wq,保存退出。

# 在这个文件中输入
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enable=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

指定版本进行kubeadm、kubelet、kubectl的安装

systemctl enable kubelet.service

2.2(注意)master环境特殊配置

在经过上述共同配置后,这里进行Master特殊配置

master初始化环境:这里一定注意,把–apiserver-advertise-address后面加入自己实例的私网ip(我看很多帖子说用公网ip,但是我试过了,根本行不通,用丝网ip!!!丝网ip可以在控制台看见,主机的私网ip)

kubeadm init \
--apiserver-advertise-address=此处为master节点的私ip\
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.15.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16  

运行上述的初始化命令,此时会如下面这样卡住

[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory “/etc/kubernetes/manifests”. This can take up to 4m0s
[kubelet-check] Initial timeout of 40s passed


这时候要新开一个终端,在终端里输入下面指令,打开一个文件,类似于下面这样的

vi/etc/kubernetes/manifests/etcd.yaml

在这里插入图片描述

这时候把红框里面的修改成下面方框里面这样的,其他不要动。

在这里插入图片描述

稍等后master节点初始化就会完成,在这个部分安装完成后,会得到一个如下的token,把这个token保存一下,后面要用

在这里插入图片描述

接下来,在终端执行几个命令:

使用下述命令可查看集群中节点情况

kubectl get node

会报错:The connection to the server localhost:8080 was refused - did you specify the right host or port?

输入下面指令

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile

在master终端中输入

kubectl get node

出现类似下面这样NotReady

在这里插入图片描述

进行网络配置,输入

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

等待,结束后在终端多次输入kubectl get node,master状态变成ready

若是集群状态一直是 notready,用下面语句查看原因,
journalctl -f -u kubelet.service
若原因是: cni.go:237] Unable to update cni config: no networks found in /etc/cni/net.d
mkdir -p /etc/cni/net.d #创建目录给flannel做配置文件
vim /etc/cni/net.d/10-flannel.conf #编写配置文件

{
 "name":"cbr0",
 "cniVersion":"0.3.1",
 "type":"flannel",
 "deledate":{
    "hairpinMode":true,
    "isDefaultGateway":true
  }
}

接下来进行node配置

2.3node节点特殊配置

打开node实例终端,进行配置

修改配置

echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables

加入master集群,把master保存的直接粘贴就行,类似下面这样子的

kubeadm join k8s-api-server:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:6997d9c13cf7d9f108b2a6c8b3ce8d0838fa9ed9fda7a14e3513b3e4bd123456

传flannel网络配置

在master终端里面,进行这样

scp -r /etc/cni/ 你的node的用户名@你的node的公网ip:/etc/

node这样基本配置结束了,下面进行在master多次输入

kubectl get node

出现类似下面这样,成功。

在这里插入图片描述

配置完毕,提醒一点,不用的时候记得在控制台把实例给手动停止,不然会一直扣费!!!

参考链接

链接: link
链接: link
链接: link
链接: link

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值