kubernetes(环境搭建)
系统环境 #master、node节点都执行
#1、检查系统版本(7.5以上)
cat /etc/redhat-release
#2、主机名解析
vim /etc/hosts
192.168.109.100 master
192.168.109.101 node1
192.168.109.102 node2
#3、时间同步(yum install -y chrony)
systemctl start chronyd
systemctl enable chronyd
date
#4、禁用iptables和firewalld服务(kubernetes和docker在运行中会产生大量的iptables规则,为了不让系统规则跟它们混淆,直接关闭系统的规则)
systemctl stop firewalld
systemctl disable firewalld
systemctl stop iptables
systemctl disable iptables
#5、禁用selinux
vim /etc/selinux/config
SELINUX=disabled
getenforce #重启后生效
#6、禁用swap分区(swap会对系统性能产生负面影响,若有原因不能关swap分区,需要在集群安装过程中通过明确的参数进行配置说明)
vim /etc/fstab
注释掉此行(最后一行) #/dev/mapper/centos-swap swap
#7、修改linux的内核参数
#修改linux内核参数,添加网桥过滤和地址转发功能
vim /etc/sysctl.d/kubernetes.conf
#添加如下配置
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward =1
#重新加载
sysctl -p
#加载网桥过滤模块
modprobe br_netfilter
#检查网桥模块是否加载成功
lsmod | grep br_netfilter
#8、配置ipvs
#安装ipset,ipvsadmin
yum install ipset ipvsadmin -y
#添加需要加载的模块写入脚本文件
cat <<EOF > /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
#添加权限
chmod +x /etc/sysconfig/modules/ipvs.modules
#执行脚本
/bin/bash /etc/sysconfig/modules/ipvs.modules
#查看模块是否加载成功
lsmod | grep -e ip_vs -e nf_conntrack_ipv4
#9、重启
reboot
#检查selinux
getenforce
#检查swap
free -m
-----------------------------------------------------------------
安装docker
#1、切换镜像源(yum install -t wget)
wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
#2、查看镜像源中支持的docker版本
yum list docker-ce --showduplicates
#3、安装指定版本的docker-ce
yum install --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7 -y
#4、添加一个配置文件
mkdir /etc/docker
cat <<EOF > /etc/docker/daemon.json
{
"exec-opts":["native.cgroupdriver=systemd"],
"registry-mirrors":["https://kn0t2bca.mirror.aliyuncs.com"]
}
EOF
#5、启动docker
systemctl start docker
#6、设置开机自启
systemctl enable docker
------------------------------------------------------
安装kubernetes组件
#1、切换镜像源
vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
#2、安装kubeadm、kubelet、kubectl
yum install --setopt=obsoletes=0 kubeadm-1.17.4-0 kubelet-1.17.4-0 kubectl-1.17.4-0 -y
#3、配置kubelet的cgroup
vim /etc/sysconfig/kubelet #添加下面配置
KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"
#4、开机自启kublet
systemctl enable kubelet
-------------------------------------------------------
准备集群镜像
#查看所需集群镜像
kubeadm config images list
#下载镜像
images=(
kube-apiserver:v1.17.4
kube-controller-manager:v1.17.4
kube-scheduler:v1.17.4
kube-proxy:v1.17.4
pause:3.1
etcd:3.4.3-0
coredns:1.6.5
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done
#4、集群初始化
#创建集群 #只在master节点上执行
kubeadm init \
--kubernetes-version=v1.17.4 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--apiserver-advertise-address=192.168.84.128 #master主机ip
#按提示执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#node加入(master里提示)
kubeadm join 192.168.84.128:6443 --token sviy0r.2roebax5xdj7wo5t \
--discovery-token-ca-cert-hash sha256:b18eb5870bb6737b178df29270a283af3c6ff350bc90b0ba096356da33b457e9
------------------------------------------------
安装网络插件
#获取fannel配置文件
###wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml###已失效
###将文件中的quay.io仓库改为quay-mirror.qiniu.com###
自己找kube-flannel.yml源码文件吧
#启动fannel
kubectl apply -f kube-flannel.yml
#查看集群节点状态
kubectl get nodes

浙公网安备 33010602011771号