CentOS7.8搭建k8s v1.17.9

1.写在前面

         用过一段时间的k8s集群部署后,心血来潮自己租了两台阿里云服务器来搭建k8s集群并部署一些docker上去。其中参考了很多网上的教程,都是参差不齐、东拼西凑的,从而也走了很多弯路,但是服务器是自己租的大不了重装系统重新部署😇,废话不多说直接上干货。

2.准备工作

        服务器:阿里云2核4g(不能低于2核2g)

        操作系统:CentOS7.8

        部署规划

121.40.124.240        k8s-master

121.40.124.230        k8s-node01

3.关闭防火墙、selinux、swap命令

systemctl stop firewalld
setenforce 0
swapoff -a

4.添加主机名与IP对应的关系

vim /etc/hosts

172.24.228.45        k8s-master

172.24.229.33        k8s-node01

        注意阿里云服务器配置hosts的ip地址用内网ip  

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

6.安装docker

  • 安装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
  • 设置docker服务开机自启
systemctl enable docker
systemctl start docker
  •  查看版本号

7.添加阿里云yum源

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[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

8.安装kubeadm、kubelet和kubectl

        这里最好指定版本号来安装,不然会发生组件版本不兼容的情况

yum makecache fast
yum install -y kubelet-1.17.9 kubeadm-1.17.9 kubectl-1.17.9 --nogpgcheck

9.部署Kubernetes Master

  • 初始化kubeadm

        apiserver-advertise-address改为自己master节点ip,初始化过程稍长需要等待

kubeadm init --apiserver-advertise-address=172.24.228.45 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.17.9 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

        当出现Your Kubernetes control-plane has initialized successfully!  这行提示表示初始化成功,并记录下这行语句下面的命令进行执行

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

        最后还会有两行命令需要拿小本本记录下来,是需要后面在子节点服务上面执行,为master添加节点

kubeadm join 172.24.228.45:6443 --token rgdiu8.ak5o5hdcuec36qk1 \
    --discovery-token-ca-cert-hash sha256:912bd3abf667dee7f0eb43dbcb5b361c98ebf662eee932e9a9d4202d0ed3216a
  • 现在就可以使用kubectl命令了,这是运行状态的截图,这步的状态应该是NotReady状态

         执行kubectl get pods -n kube-system命令可以看到前两个coredns组件的状态都是pending,这是因为还没有安装flannel网络组件

10.安装flannel

  •  执行下面命令下载kube-flannel.yml文件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

        无法下载的去github上面去clone下来上传到自己服务器上,👉kube-flannel.yml文件

  • 修改kube-flannel.yml文件两处拉取镜像的地方,改为quay.io/coreos/flannel:v0.14.0-amd64
  •  执行yml脚本
kubectl apply -f kube-flannel.yml
  • 查看是否部署成功,使用命令kubectl get pods -n kube-system

  • 再次执行kubectl get node发现master节点状态是Ready

  • 如果安装失败了可以使用命令kubeadm reset来清理环境重新初始化

至此,master节点k8s集群部署完成 

11.Node节点加入集群

        node节点服务器上执行1-8步,然后执行第9步让你小本本记录的那条添加节点的命令 

kubeadm join 172.24.228.45:6443 --token rgdiu8.ak5o5hdcuec36qk1 \
    --discovery-token-ca-cert-hash sha256:912bd3abf667dee7f0eb43dbcb5b361c98ebf662eee932e9a9d4202d0ed3216a

        如果你没有记录,使用下面命令在master节点服务器上重新生成

kubeadm token list

kubeadm token create

        发现节点部署到k8s集群

12. 测试k8s集群

        执行kubectl get pod,svc -o wide 命令查看nginx端口号

         通过浏览器可正常访问ng:http://121.40.124.240:32187/

13.部署dashboard

        网上有很多k8s配置dashboard的教程,也很简单,这里就不啰嗦了😄

14.问题

        node节点NotReady状态,重启node节点:systemctl start kubelet

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值