# 准备工作
* 安装必要的rpm软件:
yum install -y wget vim net-tools epel-release
* 所有节点关闭防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
* 关闭selinux
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX= disabled/' /etc/selinux/config
* 禁用交换分区
vi /etc/selinux/config
SELINUX=disabled
* 所有节点关闭 swap
swapoff -a
#永久禁用,打开/etc/fstab注释掉swap那一行。
sed -i 's/.*swap.*/#&/' /etc/fstab
* 设置所有节点主机名
hostnamectl --static set-hostname k8s-master
hostnamectl --static set-hostname k8s-node-1
* 修改hosts文件
#所有节点 主机名/IP加入 hosts解析
cat <<EOF >> /etc/host
10.0.1.32 k8s-master
10.0.1.17 k8s-node1
EOF
* 修改内核参数
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环境
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
* 此处可能因为墙的问题出现超时报错,我们改用阿里源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
* 查看仓库内可选的版本包
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
## 使用如下脚本下载国内镜像,并修改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节点执行
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节点
kubeadm join 10.0.1.32:6443 --token 84l93x.gv8s27ryqqg9eid5 \
--discovery-token-ca-cert-hash sha256:d54371ebe3a69fc1189ca2bb7dcf9c4d092d1828322d726cc62406f387410141 \
--ignore-preflight-errors=all
# 安装网络插件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
```
* 运行脚本,这个脚本需要在每个节点上执行
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