最近玩k8s烙无,踩了好多坑锋谐,自己總結(jié)了1.13.1版本的部署過程。希望可以幫助到大家
有問題可以留言
所有操作都在root下操作
Master節(jié)點(diǎn)
修改主機(jī)名
hostnamectl set-hostname <name>
保證所有軟件處于最新
yum -y update
關(guān)閉防火墻
systemctl stop firewalld & systemctl disable firewalld
禁用SELINUX
setenforce 0
vi /etc/selinux/config
SELINUX=disabled
創(chuàng)建k8s.conf 文件
vi /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
modprobe br_netfilter //執(zhí)行命令使修改生效
sysctl -p /etc/sysctl.d/k8s.conf
kube-proxy開啟ipvs的前置條件(master,node)
由于ipvs已經(jīng)加入到了內(nèi)核的主干截酷,所以為kube-proxy開啟ipvs的前提需要加載以下的內(nèi)核模塊
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
安裝docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum makecache fast
yum install -y --setopt=obsoletes=0 \
docker-ce-18.06.1.ce-3.el7
systemctl start docker
systemctl enable docker
修改docker轉(zhuǎn)發(fā)策略
vi /lib/systemd/system/docker.service
//在[Service]中添加
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
//然后重啟docker
systemctl daemon-reload
systemctl restart docker
關(guān)閉系統(tǒng)的Swap
swapoff -a
vi /etc/fstab //注釋掉swap的那一行
修改kubernetes源并安裝 kubectl涮拗,kubelet,kubedam
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
enabled=1
yum install -y kubelet-1.13.0
yum install -y kubectl-1.13.0
yum install -y kubeadm-1.13.0
systemctl enable kubelet.service //設(shè)置所有節(jié)點(diǎn)
可以事先將k8s所需要的鏡像下載好并修改tag為初始化k8s所需tag
docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.0
docker pull mirrorgooglecontainers/kube-controller-manager-amd64:v1.13.0
docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.13.0
docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.13.0
docker pull mirrorgooglecontainers/pause:3.1
docker pull mirrorgooglecontainers/etcd-amd64:3.2.24
docker pull coredns/coredns:1.2.6
docker tag mirrorgooglecontainers/kube-apiserver-amd64:v1.13.0 k8s.gcr.io/kube-apiserver:v1.13.0
docker tag mirrorgooglecontainers/kube-controller-manager-amd64:v1.13.0 k8s.gcr.io/kube-controller-manager:v1.13.0
docker tag mirrorgooglecontainers/kube-scheduler-amd64:v1.13.0 k8s.gcr.io/kube-scheduler:v1.13.0
docker tag mirrorgooglecontainers/kube-proxy-amd64:v1.13.0 k8s.gcr.io/kube-proxy:v1.13.0
docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag mirrorgooglecontainers/etcd-amd64:3.2.24 k8s.gcr.io/etcd:3.2.24
docker tag coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6
初始化k8s
kubeadm init --kubernetes-version=v1.13.0 --apiserver-advertise-address <自己master主機(jī)> --pod-network-cidr=10.244.0.0/16
export KUBECONFIG=/etc/kubernetes/admin.conf
/etc/kubernetes/admin.conf
這個(gè)文件主要是集群初始化的時(shí)候用來傳遞參數(shù)的
其他節(jié)點(diǎn)加入
kubeadm join 172.16.119.132:6443 --token 3kcxkv.d64hi78rujporf7i --discovery-token-ca-cert-hash sha256:8903951dd93d04ee76dfc1f75d1a9932f6bd1e902b945060ab00ca46034676b9
此處token來自init成功后的第九步信息 可用kubeadm token list查看
部署flannel網(wǎng)絡(luò)
wget https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml
//在這里的配置文件yml需要指定集群內(nèi)部網(wǎng)卡
vi kube-flaneel.yml
- --iface=eth1 //放在 - --kube-subnet-mgr 平級(jí)的地方
kubectl apply -f kube-flannel.yml
之后使用 kubect get nodes你就會(huì)發(fā)現(xiàn)master 顯示Ready狀態(tài)
Node節(jié)點(diǎn)基本一致 所需要鏡像會(huì)稍有區(qū)別迂苛,
Node節(jié)點(diǎn)
yum -y update
systemctl stop firewalld & systemctl disable firewalld
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
enabled=1
curl https://releases.rancher.com/install-docker/17.03.sh | sh
systemctl start docker & systemctl enable docker
swapoff -a
#注釋掉含swapoff的一行
vi /etc/fstab
yum install -y kubectl-1.13.0
yum install -y kubelet-1.13.0
yum install -y kubeadm-1.13.0
docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.13.0
docker pull coredns/coredns:1.2.6
docker pull mirrorgooglecontainers/pause:3.1
docker pull quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64
docker tag mirrorgooglecontainers/kube-proxy-amd64:v1.13.0 k8s.gcr.io/kube-proxy:v1.13.0
docker tag coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6
docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64
此處的jon是自己master節(jié)點(diǎn)init成功后的信息
kubeadm join 172.16.119.132:6443 --token 3kcxkv.d64hi78rujporf7i --discovery-token-ca-cert-hash sha256:8903951dd93d04ee76dfc1f75d1a9932f6bd1e902b945060ab00ca46034676b9