docker + K8S + Rancher + Harbor的安装
1. 系统初始化
-
关闭防火墙
systemctl stop firewalld
-
禁用防火墙开机自启
systemctl disable firewalld
-
永久-关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 重启 reboot
-
关闭swap分区
# 永久 sed -ri 's/.*swap.*/#&/' /etc/fstab # 重启 reboot
-
设置主机名
#每台服务器设置 hostnamectl set-hostname <hostname>
-
在节点上添加hosts
cat >> /etc/hosts << EOF 192.168.210.1 k8s-master 192.168.210.2 k8s-node1 192.168.210.3 k8s-node2 EOF
-
将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 vm.swappiness = 0 EOF # 加载br_netfilter模块 modprobe br_netfilter # 查看是否加载 lsmod | grep br_netfilter # 生效 sysctl --system
-
时间同步
#在每个节点添加时间同步 yum install ntpdate -y ntpdate time.windows.com
-
开启ipvs
#在每个节点执行 yum -y install ipset ipvsadm #在所有节点执行如下脚本 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 #检查是否加载 lsmod | grep -e ipvs -e nf_conntrack_ipv4
2 . Docker和K8S安装
- 安装Docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce-18.06.3.ce-3.el7
systemctl enable docker && systemctl start docker
docker version
- 设置镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
- 添加阿里云的YUM软件源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
- 安装kubeadm、kubelet和kubectl
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
vim /etc/sysconfig/kubelet
# 修改
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
systemctl enable kubelet
- 部署k8s的Master节点
kubeadm init \
--apiserver-advertise-address=<master IP> \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
在初始化的过程中,如果master IP是公网IP,可能会卡住,在卡住的过程中,重新启用一个客户端,把在这个文件设置为0.0.0.0。
vim /etc/kubernetes/manifests/etcd.yaml
把–listen-client-urls和–listen-peer-urls的127.0.0.1改为0.0.0.0
- --listen-client-urls=https://0.0.0.0:2379
- --listen-metrics-urls=http://127.0.0.1:2381
- --listen-peer-urls=https://0.0.0.0:2380
根据提示信息,使用kubectl:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 添加k8s的Node节点
# 向k8s集群中添加Node节点
kubeadm join <master ip>:6443 --token 4016im.eg4e10yamcbxjm59 \
--discovery-token-ca-cert-hash sha256:ce2111ce594e5189255144a72268250e5eedda87470cc3a1f69f8c973927699e
默认的token有效期为24小时,当过期之后,这时可以使用如下的命令创建token:
kubeadm token create --print-join-command
# 生成一个永不过期的token
kubeadm token create --ttl 0
-
部署CNI网络插件。
根据kubectl get nodes查看nodes状态。如果没有装CNI插件,节点会是NotReady状态。
#在Master节点部署CNI网络插件(可能会失败,如果失败,请下载到本地,然后安装):
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml
#查看部署CNI网络插件进度
kubectl get pods -n kube-system
- 查看集群健康状态:
kubectl get cs
kubectl cluster-info
3. Rancher和Harbor安装
网上下载docker-compose和harbor安装包。
- 安装docker-compose:
# 赋权限,并剪切到/usr/local/sbin/docker-compose目录
chmod +x docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/local/sbin/docker-compose
-
harbor安装
#解压: tar zxf harbor-offline-installer-v2.4.1.tgz #copy并修改配置文件: cp harbor.yml.tmpl harbor.yml #主要修改 hostname ip, Port #执行脚本 ./install.sh
配置开机自启
/usr/local/sbin/docker-compose -f /data/software/harbor/docker-compose.yml up -d
设置权限:
chmod +x /etc/rc.local /etc/rc.d/rc.local
安装完毕。
-
配置每台节点,Docker harbor镜像库
配置文件的默认路径:/etc/docker/daemon.json
"insecure-registries": ["ip:port"]
-
安装rancher
拉起rancher 2.7.2镜像。
docker run -d --privileged=true --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:v2.7.2
-
导入已有集群。
找到目录集群管理,点击导入已有集群按钮。选择通用。
根据提示在master执行提示的命令。等待即可。中间可以用下面命令查看是否启动Ok。
kubectl get pods -n cattle-system
-
部署测试应用(截图)。
配置Harbor 账号密码:
引用文章出处:
https://www.cnblogs.com/xuweiweiwoaini/p/13884112.html
https://zhuanlan.zhihu.com/p/410371256