1.准备3台主机
2.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3.关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
关闭swap
swapoff -a //临时关闭
vi /etc/fstab //永久关闭,删除swap行数据
4.配置hosts
cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.18.135.203 k8s-master
10.18.135.204 k8s-node1
10.18.135.206 k8s-node2
5.将流量导入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
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker
docker --version
7.添加阿里云yum软件源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[hubernetes]
name=kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
8.安装 kubeadm,kubelet和kubectl
yum install -y kubelet-1.13.3 kubeadm-1.13.3 kubectl-1.13.1 kubernetes-cni-0.6.0
缺失包处理
yum install -y cri-tools-1.13.0-0.x86_64 --nogpgcheck
yum install -y kubelet-1.13.3 --nogpgcheck
yum install -y kubeadm-1.13.3 --nogpgcheck
systemctl enable kubelet
9.部署k8s master
kubeadm init \
--apiserver-advertise-address=10.18.135.211 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.13.3 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
10.使用kubectl工具
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes
11.安装pod网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
检查
get pods -n kube-system
12.安装node节点(node节点执行,master init后的提示语句)
kubeadm join 10.18.135.211:6443 --token n5vq77.ffk4knxe65pz1b95 --discovery-token-ca-cert-hash sha256:2e10250481d236447dc6cbc0717051bba98e7fffeaf0ab528260584ccda4359f
docker pull quay.io/coreos/flannel:v0.11.0-amd64
13.测试
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pods,svc -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/nginx-5c7588df-66c5v 1/1 Running 0 5m55s 10.244.1.2 k8s-node1 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes ClusterIP 10.1.0.1 <none> 443/TCP 4h7m <none>
service/nginx NodePort 10.1.145.66 <none> 80:30754/TCP 3m12s app=nginx
浏览器访问http://10.18.135.211:30754/ (任意node ip都可以访问,说明集群部署成功)
k8s集群安装成功