Kubernetes 小白学习笔记(10)--搭建一个kubernetes集群-组建节点网络

一、在master节点上下载所有核心组件

1. 下载镜像

一定要先切换到root用户再下载

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

注:
azure开放了gcr(google container registry)的代理:gcr.azk8s.cn,我们也可以通过下面的方式来下载k8s.gcr.io上的镜像文件,以pause-amd64:3.0为例:  

 docker pull gcr.azk8s.cn/google_containers/pause-amd64:3.0

下载后再重新打tag。

2. 给镜像打标签

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

查看是否都下载完了

docker images | grep gcr.io

二、初始化master节点

kubeadm init --apiserver-advertise-address=10.0.2.5 --pod-network-cidr=192.168.16.0/20 --ignore-preflight-errors=Swap

# 我自己的配置,此处的192.168.18.132为当前虚拟机的ip
# 这里的kubernetes-version一定要设置成和核心组件相同的版本,比如我们这里应该设置成1.10.2
# kubeadm init --apiserver-advertise-address=192.168.18.132 --pod-network-cidr=192.168.16.0/20 --kubernetes-version=v1.10.2

–pod-network-cidr是指配置节点中的pod的可用IP地址,此为内部IP

–apiserver-advertise-address 为master的IP地址

–kubernetes-version 通过kubectl version 可以查看到

如果报错,可以看看这两个教程

https://blog.csdn.net/u013288190/article/details/109028126

https://blog.csdn.net/u013288190/article/details/109028046

如果报错,则

vi /etc/fstab

把最后一行,注释了

重启虚拟机

reboot now

重启初始化

保留下面这句,后续备用

比如我的

kubeadm join 192.168.18.132:6443 --token dvzyxu.wvxaymbz1x666xwv --discovery-token-ca-cert-hash sha256:10432bdce63bc3ee5fe2f7c71a0e0b9f905facea26f956f4fe67054e8d8e0e6b

export KUBECONFIG=/etc/kubernetes/admin.conf

kubectl get pods -n kube-system -o wide

如果要重启,即重新执行init,需要先执行reset

kubeadm reset

三、安装集群网络


安装weave cni插件:

方法1:
 # kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

方法2: (应对weave pod启动时出现:Network 10.32.0.0/12 overlaps with existing route xx.xx.xx.xx/16 on host 错误信息)

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



 vi weave.yaml
	修改:IPALLOC_RANGE



 # kubectl apply -f weave.yaml

kubectl get pods -n kube-system -o wide

四、worker节点只需要下载pod和proxy

分别安装k8s2和k8s3节点作为worker

1. 下载镜像

docker pull anjia0532/pause-amd64:3.1
docker pull anjia0532/kube-proxy-amd64:v1.10.2

2. 打标签

docker tag anjia0532/pause-amd64:3.1 k8s.gcr.io/pause-amd64:3.1
docker tag anjia0532/kube-proxy-amd64:v1.10.2 k8s.gcr.io/kube-proxy-amd64:v1.10.2

五、将worker节点加入集群

1.在master节点查看所有节点

kubectl get nodes

2. 在worker节点执行加入命令

kubeadm join 192.168.18.132:6443 --token pro2xr.vzzelsp0s09jvd6u --discovery-token-ca-cert-hash sha256:28cb549b407f7d23c61d941459d7cd00849b520e8fb375c1bf22883f19290c00

3. 查看效果

kubectl get nodes

k8s3上也执行相同操作使其加入到集群中

内容来自:https://coding.imooc.com/class/284.html

猜你喜欢

转载自blog.csdn.net/u013288190/article/details/109015040