# 準備工作
* 安裝必要的rpm軟件:
????yum install -y wget vim net-tools epel-release
* 所有節(jié)點關(guān)閉防火墻
????systemctl disable firewalld.service
????systemctl stop firewalld.service
* 關(guān)閉selinux
????setenforce 0
????sed -i 's/^SELINUX=enforcing$/SELINUX= disabled/' /etc/selinux/config
* 禁用交換分區(qū)
????vi /etc/selinux/config
????SELINUX=disabled
* 所有節(jié)點關(guān)閉 swap
????swapoff -a
????#永久禁用,打開/etc/fstab注釋掉swap那一行。
????sed -i 's/.*swap.*/#&/' /etc/fstab
* 設(shè)置所有節(jié)點主機名
????hostnamectl --static set-hostname k8s-master
????hostnamectl --static set-hostname k8s-node-1
* 修改hosts文件
????#所有節(jié)點 主機名/IP加入 hosts解析
????cat <<EOF >> /etc/host
????10.0.1.32 k8s-master
????10.0.1.17 k8s-node1
????EOF
* 修改內(nèi)核參數(shù)
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
# 入門-安裝docker環(huán)境
1. 安裝docker最新版
* 刪除舊的docker
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine docker-ce -y
* 刪除舊的docker文件
rm -rf /var/lib/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
* 此處可能因為墻的問題出現(xiàn)超時報錯,我們改用阿里源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
* 查看倉庫內(nèi)可選的版本包
yum list docker-ce --showduplicates | sort -r
* 選則其中一個包安裝
yum install docker-ce-18.06.1.ce -y
2、啟動docker
systemctl enable docker
systemctl start docker
# 入門1--安裝k8s-master
[安裝k8s](http://node1.unixhot.com/kubernetes/kubeadm-install.html#test)
https://www.cnblogs.com/xingyys/p/11594189.html 1.16安裝
* 配置yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
EOF
* 重建yum緩存
yum clean all
yum makecache fast
yum -y update
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet
2. 初始化 k8s集群
kubeadm config images list
* 配置腳本文件,pull鏡像
```
vim kubeadm.sh
#!/bin/bash
## 使用如下腳本下載國內(nèi)鏡像,并修改tag為google的tag
set -e
KUBE_VERSION=v1.16.0
KUBE_PAUSE_VERSION=3.1
ETCD_VERSION=3.3.15-0
CORE_DNS_VERSION=1.6.2
GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers
images=(kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
coredns:${CORE_DNS_VERSION})
for imageName in ${images[@]} ; do
docker pull $ALIYUN_URL/$imageName
docker tag $ALIYUN_URL/$imageName $GCR_URL/$imageName
docker rmi $ALIYUN_URL/$imageName
done
```
3. 運行腳本,拉取鏡像
sh ./kubeadm.sh
4. master節(jié)點執(zhí)行
sudo kubeadm init \
--apiserver-advertise-address 10.0.1.32 \
--kubernetes-version=v1.16.0 \
--pod-network-cidr=10.244.0.0/16
重要信息:?
```
kubeadm join 10.0.1.32:6443 --token 84l93x.gv8s27ryqqg9eid5 \
--discovery-token-ca-cert-hash sha256:d54371ebe3a69fc1189ca2bb7dcf9c4d092d1828322d726cc62406f387410141
```
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 配置node節(jié)點
kubeadm join 10.0.1.32:6443 --token 84l93x.gv8s27ryqqg9eid5 \
--discovery-token-ca-cert-hash sha256:d54371ebe3a69fc1189ca2bb7dcf9c4d092d1828322d726cc62406f387410141 \
--ignore-preflight-errors=all
# 安裝網(wǎng)絡(luò)插件flannel
安裝flanneld
* 在master上操作,拷貝配置,令kubectl可用
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
* 下載flannel配置文件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kube-flanneld.yaml
* 拉去鏡像
vim flanneld.sh
```
#!/bin/bash
set -e
FLANNEL_VERSION=v0.11.0
#在這里修改源
QUAY_URL=quay.io/coreos
QINIU_URL=quay-mirror.qiniu.com/coreos
images=(flannel:${FLANNEL_VERSION}-amd64
flannel:${FLANNEL_VERSION}-arm64
flannel:${FLANNEL_VERSION}-arm
flannel:${FLANNEL_VERSION}-ppc64le
flannel:${FLANNEL_VERSION}-s390x)
for imageName in ${images[@]} ; do
docker pull $QINIU_URL/$imageName
docker tag $QINIU_URL/$imageName $QUAY_URL/$imageName
docker rmi $QINIU_URL/$imageName
done
```
* 運行腳本,這個腳本需要在每個節(jié)點上執(zhí)行
sh flanneld.sh
* 安裝flanneld
cp kube-flannel.yml kube-flanneld.yaml
kubectl apply -f kube-flanneld.yaml
* flanneld默認安裝在kube-system Namespace中,使用以下命令查看:
kubectl -n kube-system get pods