美文网首页
使用kubeadm搭建k8s全流程详细介绍

使用kubeadm搭建k8s全流程详细介绍

作者: ghjhhyuyuy | 来源:发表于2019-03-28 19:15 被阅读0次
  • 首先需要安装docker(这里指定安装的17.03.2版,因为想试着装下k8s1.10.2版,如果是装新版k8s就不用指定版本了)

##先获取证书
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
##添加仓库
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
##更新
apt-get update
##
##下载docker
apt-get install docker-ce=17.03.2~ce-0~ubuntu-xenial
  • 然后是下载kubectl、kubeadm和kubelet(由于没有添加证书,所以下载时会询问你是否确定下载,选是就好,强迫症患者也可自行添加证书∩▂∩)

vim /etc/apt/sources.list.d/kubernetes.list
##添加
deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
##保存退出
##更新
apt-get update
##下载
apt-get install kubectl=1.10.2-00
apt-get install kubeadm=1.10.2-00
apt-get install kubelet=1.10.2-00
  • 第三步下载镜像(可使用阿里的镜像库,之前搭最新版使用的时候感觉挺好用的,这里没有使用)

docker pull anjia0532/kube-apiserver-amd64:v1.10.2
docker pull anjia0532/kube-controller-manager-amd64:v1.10.2
docker pull anjia0532/kube-scheduler-amd64:v1.10.2
docker pull anjia0532/kube-proxy-amd64:v1.10.2
docker pull anjia0532/etcd-amd64:3.1.12
docker pull anjia0532/pause-amd64:3.1
docker pull anjia0532/k8s-dns-sidecar-amd64:1.14.8
docker pull anjia0532/k8s-dns-kube-dns-amd64:1.14.8
docker pull anjia0532/k8s-dns-dnsmasq-nanny-amd64:1.14.8

##改名字,因为k8s搭建时找的是对应名字的镜像,不改名字也找不到
docker tag anjia0532/kube-apiserver-amd64:v1.10.2 k8s.gcr.io/kube-apiserver-amd64:v1.10.2
docker tag anjia0532/kube-scheduler-amd64:v1.10.2 k8s.gcr.io/kube-scheduler-amd64:v1.10.2
docker tag anjia0532/kube-controller-manager-amd64:v1.10.2 k8s.gcr.io/kube-controller-manager-amd64:v1.10.2
docker tag anjia0532/kube-proxy-amd64:v1.10.2 k8s.gcr.io/kube-proxy-amd64:v1.10.2
docker tag anjia0532/etcd-amd64:3.1.12 k8s.gcr.io/etcd-amd64:3.1.12
docker tag anjia0532/pause-amd64:3.1 k8s.gcr.io/pause-amd64:3.1
docker tag anjia0532/k8s-dns-sidecar-amd64:1.14.8 k8s.gcr.io/k8s-dns-sidecar-amd64:1.14.8
docker tag anjia0532/k8s-dns-kube-dns-amd64:1.14.8 k8s.gcr.io/k8s-dns-kube-dns-amd64:1.14.8
docker tag anjia0532/k8s-dns-dnsmasq-nanny-amd64:1.14.8 k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64:1.14.8

关闭swap

vim /etc/fstab
注释最后一行
reboot now
如果服务器不方便重启也可使用相关命令关闭

执行到这里master和node共通配置就完成了,虚拟机玩家可以在此复制出其他虚拟机节点,节省配置时间,复制时记得选中重置ip。接下来我们要展示的是master上的操作

1.初始化master

kubeadm init --pod-network-cidr=192.168.16.0/20 --apiserver-advertise-address=10.0.2.16 --kubernetes-version=v1.10.2
这上面的ip都要根据本机情况配置,不能一味照搬照抄。apiserver-advertise-address为本机ip,pod-network-cidr似乎是随便选的一个内网可用ip

注意:记下这部分内容(每个人不一样)
kubeadm join 10.0.2.16:6443 --token jcg6k4.j1ocy4r53558cje6 --discovery-token-ca-cert-hash sha256:3483e6761cf4740d880592831996f7e59d0163a7204b81b3b65090fa29549f62

设置环境变量KUBECONFIG

vim .bashrc
在末尾加入
export KUBECONFIG=/etc/kubernetes/admin.conf
或者直接执行(但这样重启后还需重新配置才能正常使用)
export KUBECONFIG=/etc/kubernetes/admin.conf

查看一下pod的状态

kubectl get pods -n kube-system -o wide

下载weave的配置文件,这里网络用的weave,大家也可自行选择

curl -L "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" > weave.yaml

修改

vim weave.yaml

##添加
- name: IPALLOC_RANGE
                  value: 192.168.16.0/20
例子
image.png
执行weave.yaml

kubectl apply -f weave.yaml

再查看一下pod的状态,都启动后master就配置完毕了

去到node节点,输入刚刚记下的那段内容,将node添加到master(我这里是kubeadm join 10.0.2.16:6443 --token jcg6k4.j1ocy4r53558cje6 --discovery-token-ca-cert-hash sha256:3483e6761cf4740d880592831996f7e59d0163a7204b81b3b65090fa29549f62)

ps:这里有个坑,node的主机名不要与master一样,不然master的容器会在添加node后不断重启,node也无法添加成功,我当时因为这个坑弄了好久,排除了各种各样的问题,简直悲惨,如果大家遇到添加节点的问题,可以使用journalctl在node上查看日志,或者在master上使用kubectl logs <pod_name>查看pod日志排错,对了忘说了,内存太小也可能会导致pod跑不起来,所以最好保证master有至少2G的内存哦

相关文章

网友评论

      本文标题:使用kubeadm搭建k8s全流程详细介绍

      本文链接:https://www.haomeiwen.com/subject/heifbqtx.html