kubeadm部署k8s-v1.11.1叢集
一、環境準備
- master:192.168.0.8,kubelet,kubeadm,kubectl:apiserver,manager,scheduler,proxy,pause,etcd,coredns
- node01:192.168.0.9,kubeadm,kubelet
- node02:192.168.0.10,kubeadm,kubelet
節點網路:192.168.0.0/24
Service網路:10.96.0.0/12
Pod網路:10.244.0.0/16(flannel預設)
1、準備基礎環境(所有節點)
1. 基於主機名解析 # vim /etc/hosts 192.168.0.8master.dongfei.techmaster 192.168.0.9node01.dongfei.technode01 192.168.0.10node02.dongfei.technode02 2. 關閉firewalld # systemctl disable firewalld # systemctl stop firewalld 3. 關閉selinux # vim /etc/selinux/config SELINUX=disabled # setenforce 0 # reboot 4. 時間同步 # yum install chrony # vim /etc/chrony.conf server ntp.aliyun.com iburst stratumweight 0 driftfile /var/lib/chrony/drift rtcsync makestep 10 3 bindcmdaddress 127.0.0.1 bindcmdaddress ::1 keyfile /etc/chrony.keys commandkey 1 generatecommandkey logchange 0.5 logdir /var/log/chrony # systemctl enable chronyd # systemctl start chronyd # chronyc chronyc> waitsync #手動同步
2、準備docker環境(所有節點)
# vim /etc/yum.repos.d/docker-ce.repo [docker-ce-stable] name=Docker CE Stable - $basearch baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg # yum localinstall http://mirrors.aliyun.com/centos-vault/7.3.1611/extras/x86_64/Packages/container-selinux-2.9-4.el7.noarch.rpm -y # yum list docker-ce --showduplicates |sort -r#列出docker可用版本 # yum install -y --setopt=obsoletes=0 docker-ce-17.12.1.ce-1.el7.centos # systemctl start docker # systemctl enable docker # docker load < k8s-images-1.11.1.tar # docker image ls k8s.gcr.io/kube-proxy-amd64v1.11.1 k8s.gcr.io/kube-scheduler-amd64v1.11.1 k8s.gcr.io/kube-apiserver-amd64v1.11.1 k8s.gcr.io/kube-controller-manager-amd64v1.11.1 k8s.gcr.io/coredns1.1.3 k8s.gcr.io/etcd-amd643.2.18 k8s.gcr.io/pause3.1
- 附:k8s-images-1.11.1.tar連結:https://pan.baidu.com/s/1G63o1IiqJCHdla5tM8wXvA 提取碼:928b
- 附:pull docker image scripts
#!/bin/bash k8s='kube-apiserver-amd64:v1.11.1 kube-controller-manager-amd64:v1.11.1 kube-scheduler-amd64:v1.11.1 kube-proxy-amd64:v1.11.1 pause:3.1 etcd-amd64:3.2.18 coredns:1.1.3' for i in $k8s; do docker pull k8s.gcr.io/$i; done docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=" "}{print $1,$2}') -o k8s-images-1.11.1.tar
3、修改核心引數(所有節點)
# vim /etc/sysctl.conf net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 # sysctl -p # cat /proc/sys/net/bridge/bridge-nf-call-iptables # cat /proc/sys/net/bridge/bridge-nf-call-ip6tables # cat /proc/sys/net/ipv4/ip_forward
二、部署k8s-master
1、配置yum源並安裝k8s
# vim /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes Repo baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg # yum list kubeadm --showduplicates |sort -r # yum install kubelet-1.11.1-0 kubeadm-1.11.1-0 kubectl-1.11.1-0 -y
2、初始化kubernetes_master
# systemctl enable kubelet # vim /etc/sysconfig/kubelet KUBELET_EXTRA_ARGS="--fail-swap-on=false" # kubeadm init --kubernetes-version=v1.11.1 --pod-network-cidr=10.224.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap kubeadm join 192.168.0.8:6443 --token 8zzav4.06acl9bocom2ee77 --discovery-token-ca-cert-hash sha256:31c20527733b81e0ab20daafe6a3f34e8d4b9da899dd0e1e6f6a47ec455e6d55
3、配置kubectl認證
# mkdir -p $HOME/.kube # cp -i /etc/kubernetes/admin.conf $HOME/.kube/config # chown $(id -u):$(id -g) $HOME/.kube/config # kubectl get componentstatus#檢視元件狀態 # kubectl get cs
4、部署flannel
# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml # kubectl get nodes # kubectl get pods -n kube-system
三、將node加入叢集
- 按照以上master的方法安裝docker-ce
- 按照以上master的方法配置kubernetes源
- 按照以上master的方法匯入docker映象
- 在所有的node節點上操作相同
1、安裝kubeadm和kubelet
# yum list kubeadm --showduplicates |sort -r # yum install kubelet-1.11.1-0 kubeadm-1.11.1-0 -y # systemctl enable kubelet # vim /etc/sysconfig/kubelet KUBELET_EXTRA_ARGS="--fail-swap-on=false"
2、將node加入叢集(以下資訊從master初始化完成後列印到螢幕的資訊獲取)
# kubeadm join 192.168.0.8:6443 --token 8zzav4.06acl9bocom2ee77 --discovery-token-ca-cert-hash sha256:31c20527733b81e0ab20daafe6a3f34e8d4b9da899dd0e1e6f6a47ec455e6d55 --ignore-preflight-errors=Swap
3、master上檢視nodes狀態
# kubectl get nodes # kubectl get pods -n kube-system -o wide