k8s摸索之kubeadm快速部署

Posted zhylioooo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s摸索之kubeadm快速部署相关的知识,希望对你有一定的参考价值。

一、虚拟机配置

1、在WMware里装上3台虚拟机,CentOS7最小化系统,配置好独立IP,截图如下:

技术图片技术图片

 

 

 

技术图片

 

 2、修改虚拟机网卡配置,然后启动网卡,再查看ip已经固定

#vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=yes
IPADDR=192.168.126.100
NETMASK=255.255.255.0
GATEWAY=192.168.126.2
DNS1=114.114.114.119
DNS2=114.114.115.119

#启动网卡
ifup ens33
#关闭网卡
ifdown ens33

技术图片

 

 

 二、集群部署

以下均需在所以节点上配置

1、关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

2、关闭selinux

sed -i s/enforcing/disabled/ /etc/selinux/config 
setenforce 0

3、关闭swap

swapoff -a # 临时关闭
sed -ri s/.*swap.*/#&/ /etc/fstab  #永久关闭

4、修改主机名字和配置hosts

#修改主机名字
hostnamectl set-hostname 名字

#vi /etc/hosts

192.168.126.100 k8s-master
192.168.126.101 k8s-node1
192.168.126.102 k8s-node2

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

sysctl --system

6、安装docker,https://docs.docker.com/engine/install/centos/

7、安装kubeadm,kubelet和kubectl

yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

systemctl enable kubelet #设置开机自启

8、部署master,在master上操作,首先查看kubeadm初始化需要的镜像版本,由于访问不了谷歌的镜像需要改会国内的

# 查看镜像版本
kubeadm config images list

技术图片

方法1:此时可以一个一个下载需要的镜像,再用docker tag命令改成对应的名称,或者用下面shell脚本:

#!/bin/bash

set -e

KUBE_VERSION=v1.18.6
KUBE_PAUSE_VERSION=3.2
ETCD_VERSION=3.4.3-0
CORE_DNS_VERSION=1.6.7

GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers

images=(kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
coredns:${CORE_DNS_VERSION})

for imageName in ${images[@]} ; do
  docker pull $ALIYUN_URL/$imageName
  docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
  docker rmi $ALIYUN_URL/$imageName
done

然后发现阿里云镜像没有那么高版本镜像,干脆把kubelet、kubectl、kubeadm降低版本

yum remove kubelet kubeadm kubectl
yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0

再从8开始

方法2:初始化的时候改镜像源

9、初始化

kubeadm init --apiserver-advertise-address=192.168.126.100 --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

技术图片

 

 

 10、配置kubectl,直接按照第一个框内的内容来,为了使用便捷,启用 kubectl 命令的自动补全功能

echo "source <(kubectl completion bash)" >> ~/.bashrc

11、安装pod网络插件,可按中文文档来

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

12、加入node就按第二个红框的内容

 

以上是关于k8s摸索之kubeadm快速部署的主要内容,如果未能解决你的问题,请参考以下文章

Docker&K8s---通过kubeadm快速部署K8s

Docker&K8s---通过kubeadm快速部署K8s

使用kubeadm快速部署一个k8s集群(亲测有效)

使用kubeadm快速部署一个k8s集群

使用kubeadm快速部署一个K8s集群

使用kubeadm快速部署一个k8s集群(亲测有效)