ubuntu kubeadm kubernetes1.14.1搭建教程

一、前期环境准备

修改好相应的主机名后,在每台机器上操作

cat /etc/hosts
127.0.0.1 localhost
172.20.60.36 master
172.20.60.37 node01
172.20.60.38 node02

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

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf


swapoff -a
/etc/fstab/注释Swap

二、Master和Node节点安装docker

apt-get update && apt-get install -y apt-transport-https curl
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
apt-get install docker.io -y
systemctl enable docker
systemctl start docker
systemctl status docker

三、在Master和Node节点安装kubectl,kubelet,kubeadm

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -    # --socks5 IP:PORT  指定代理

添加Kubernetes软件源
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
EOF

apt-get update && apt-get install -y kubelet kubeadm kubectl
systemctl enable kubelet

四、配置Master

echo 'export KUBECONFIG=/etc/kubernetes/admin.conf' >> /etc/profile && source /etc/profile
systemctl daemon-reload
systemctl restart kubelet

下载国内镜像,打tag为k8s.gcr.io
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.14.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.14.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.14.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.14.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.3.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.3.10
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.14.1 k8s.gcr.io/kube-proxy:v1.14.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.14.1 k8s.gcr.io/kube-apiserver:v1.14.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.14.1 k8s.gcr.io/kube-controller-manager:v1.14.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.14.1 k8s.gcr.io/kube-scheduler:v1.14.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.3.1  k8s.gcr.io/coredns:1.3.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.3.10  k8s.gcr.io/etcd:3.3.10
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1  k8s.gcr.io/pause:3.1

集群初始化
kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=172.20.60.36 --kubernetes-version=v1.14.1 --ignore-preflight-errors=Swap 

初始化完毕,查看节点信息kubectl get nodes会发现节点的状态为noready,是因为没有配置网络
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

五、节点加入集群

和master上做同样的docker pull和tag操作,执行master初始化时输出的kubeadm join

小技巧

kubeadm reset
rm -rf /var/lib/cni/ $HOME/.kube/config

kubeadm config images list
kubeadm config images pull

➜  ~ cat  /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://192.168.2.230:1089/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"


systemctl daemon-reload
systemctl restart docker
systemctl show --property=Environment docker
posted @ 2019-04-22 23:00  reaperhero  阅读(587)  评论(0编辑  收藏  举报