一, 环境准备
- 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.8 master.dongfei.tech master
- 192.168.0.9 node01.dongfei.tech node01
- 192.168.0.10 node02.dongfei.tech node02
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-amd64 v1.11.1
- k8s.gcr.io/kube-scheduler-amd64 v1.11.1
- k8s.gcr.io/kube-apiserver-amd64 v1.11.1
- k8s.gcr.io/kube-controller-manager-amd64 v1.11.1
- k8s.gcr.io/coredns 1.1.3
- k8s.gcr.io/etcd-amd64 3.2.18
- k8s.gcr.io/pause 3.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
来源: http://www.bubuko.com/infodetail-2927662.html