k8s集群式部署
我的配置环境是四台centos7 master2核4g 三台node2核2g
网络: 每台vm主机2块网卡,一块NAT用于上网,别一块配置成 “仅主机模式”,网段为192.168.255.xx
k8s:1.16.2
docker:18.09
以下在所有节点都要做
首先配置hosts
vi /etc/hosts
192.168.255.40 master
192.168.255.36 node1
192.168.255.37 node2
192.168.255.39 node3
保障都能ping通
关防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭selinux
setenforce 0
开启透明网桥
echo “net.bridge.bridge-nf-call-iptables=1” >> /etc/sysctl.conf
echo “net.bridge.bridge-nf-call-ip6tables=1” >> /etc/sysctl.conf
systctl -p
配置docker yum源
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
配置k8s yum源(我用的是aliyun的yum源)
链接点此
vi /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enable=1
配置k8s yum密钥
wget -q https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
wget -q https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
rpm --import yum-key.gpg
rpm --import rpm-package-key.gpg
更新yum下载所需软件 (docker我建议指定版本安装 因为k8s版本不同也要求docker版本不同)
yum update
yum remove docker docker-common docker-selinux docker-engin
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
下载docker
yum list docker-ce --showduplicates | sort -r
yum install docker-ce-18.09.7
启动docker
systemctl start docker
systemctl enable docker
systemctl daemon-reload
service docker restart
安装kubelet kubeadm kubectl
yum install kubelet kubeadm kubectl
以下在master节点
初始化k8s
systemctl enable kubelet
因为k8s.gcr.io访问不了,手动下载docker镜像并修改tag
docker pull mirrorgooglecontainers/kube-apiserver:v1.16.2 #替代docker pull k8s.gcr.io/kube-apiserver:v1.16.2
docker tag mirrorgooglecontainers/kube-apiserver:v1.16.2 k8s.gcr.io/kube-apiserver:v1.16.2
docker pull mirrorgooglecontainers/kube-controller-manager:v1.16.2 #替代docker pull k8s.gcr.io/kube-controller-manager:v1.16.2
docker tag mirrorgooglecontainers/kube-controller-manager:v1.16.2 k8s.gcr.io/kube-controller-manager:v1.16.2
docker pull mirrorgooglecontainers/kube-scheduler:v1.16.2 #替代docker pull k8s.gcr.io/kube-scheduler:v1.16.2
docker tag mirrorgooglecontainers/kube-scheduler:v1.16.2 k8s.gcr.io/kube-scheduler:v1.16.2
docker pull mirrorgooglecontainers/kube-proxy:v1.16.2 #替代docker pull k8s.gcr.io/kube-proxy:v1.16.2
docker tag mirrorgooglecontainers/kube-proxy:v1.16.2 k8s.gcr.io/kube-proxy:v1.16.2
docker pull mirrorgooglecontainers/pause:3.1 #替代docker pull k8s.gcr.io/pause:3.1
docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
docker pull mirrorgooglecontainers/etcd:3.3.15-0 #替代docker pull k8s.gcr.io/etcd:3.3.15-0
docker tag mirrorgooglecontainers/etcd:3.3.15-0 k8s.gcr.io/etcd:3.3.15-0
docker pull coredns/coredns:1.6.2 #替代docker pull k8s.gcr.io/coredns:1.6.2
docker tag coredns/coredns:1.6.2 k8s.gcr.io/coredns:1.6.2
kubeadm init --kubernetes-version=v1.16.2 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --apiserver-advertise-address=192.168.255.33 --ignore-preflight-errors=Swap
安装flannel网络(参照官方文档)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
检查k8s是否正常启动
kubectl get pods -n kube-system
kubectl get nodes
到此k8s部署完成