离线安装kubernetes-1.20.1


离线安装kubernetes-1.20.1

docker安装
 1.导入rmp包
 2.rpm -Uvh --force --nodeps *.rpm
3.systemctl start docker.service 
4.systemctl enable docker.service
5.安装docker-compose
  将docker-compose-Linux-x86_64复制到、/usr/local/bin/docker-compose
 chmod +x /usr/local/bin/docker-compose
docker-compose -v


修改/etc/docker/daemon.json
//这个可以
{"registry-mirrors":["https://registry.docker-cn.com"]}
{"insecure-registries":["10.176.50.30:80"]}

、、这个不可用


 {
"exec-opts": ["native.cgroupdriver=systemd"],
"insecure-registries": ["10.176.50.30"],  # 私有仓库地址
"registry-mirrors":["http://10.176.50.30"]  #私有仓库地址
}
#################################################################################
一、找一台能下载的linux(centos7.6),下载依赖的安装包和镜像

环境设置,master和node都要执行
1. 设置主机名与时区
timedatectl set-timezone Asia/Shanghai 
systemctl enable --now chronyd
timedatectl set-local-rtc 0
systemctl restart rsyslog && systemctl restart crond


2. 添加hosts网络主机配置,三台虚拟机都要设置,方便寻找主机
hostnamectl set-hostname master #132执行
hostnamectl set-hostname node1 #133执行
hostnamectl set-hostname node2 #137执行
vim /etc/hosts
192.168.26.70 master
192.168.26.73 node1
192.168.26.77 node2

3. 关闭防火墙,三台虚拟机都要设置,这一步操作是为了防止在学习阶段由于防火墙造成的各种网络问题,生产环境跳过这一步,
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl disable firewalld
systemctl stop firewall

swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab


------个人感觉可以不用
设置主机名、/etc/hosts
配置ssh无密码登录
ssh-keygen -t rsa
ssh-copy-id root@172.16.0.164(指定对应可以登录到本主机的ip)


关闭防火墙、SElinux
关闭虚拟内存
cat >> /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge‐nf‐call‐ip6tables = 1
net.bridge.bridge‐nf‐call‐iptables = 1
EOF


echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables
echo "1" >/proc/sys/net/ipv4/ip_forward

#################################################################
####################################################################
master
0.导入包 rpm和tar包
1.安装kubernetes
rpm -Uvh --force --nodeps *.rpm

2.加载docker镜像
docker load -i kube-controller-manager-v1.19.3.tar
 docker load -i kube-apiserver-v1.19.3.tar
 docker load -i kube-scheduler-v1.19.3.tar
 docker load -i kube-proxy-v1.19.3.tar
 docker load -i flanneld-v0.13.0-amd64.docker 
 docker load -i pause-3.2.tar 
 docker load -i coredns-1.7.0.tar 
 docker load -i etcd-3.4.13-0.tar 
 docker load -i dashboard-v2.0.1.tar
 docker load -i metrics-scraper-v1.0.4.tar

3.初始化master节点
kubeadm init --apiserver-advertise-address 10.176.50.30 --apiserver-bind-port 6443 --kubernetes-version 1.19.3 --pod-network-cidr 10.244.0.0/16
 需要记录下token 后续node节点加入集群需要用到


kubeadm join 10.176.50.30:6443 --token ivor96.05gt59exbwrjzvkc \
    --discovery-token-ca-cert-hash sha256:8fe83ec3da1a0caaf07ed5aa49710ba4b08a57d7b99ed3e84b0f48a29e148937

kubeadm join 10.176.50.30:6443 --token jo25ei.d7h3qt42wd2lh4y8     --discovery-token-ca-cert-hash sha256:8fe83ec3da1a0caaf07ed5aa49710ba4b08a57d7b99ed3e84b0f48a29e148937

netstat -tunlp | grep 10250

生产不过期的token
kubeadm token create --ttl 0 --print-join-command
 --discovery-token-ca-cert-hash sha256:c7c967d2a75ec67fd4abd69b6f0c5639c68ad92e4457f59fa3565205dc986758 

以下可以在初始化后看到以下信息,执行即可
mkdir -p $HOME/.kube
cp -i /etc/kubernets/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
 

4.配置flanneld网络
修改镜像名字
docker tag quay.io/coreos/flannel:v0.13.0-amd64 quay.io/coreos/flannel:v0.11.0

vim /etc/cni/net.d/10-flannel.conflist
//加上cni的版本号
//文件内容如下
{
  "name": "cbr0",
  "cniVersion": "0.2.0",
  "plugins": [
    {
      "type": "flannel",
      "delegate": {
        "hairpinMode": true,
        "isDefaultGateway": true
      }
    },
    {
      "type": "portmap",
      "capabilities": {
        "portMappings": true
      }
    }
  ]
}
启动ymal
kubectl apply -f kube-flannel.yml

查看组件状态
kubectl get cs

发现 两处unhealthy状态,端口10252和10251端口也没启用。
解决方法
/etc/kubernetes/manifests/目录下的
kube-controller-manager.yaml和kube-scheduler.yaml 删掉- – port=0
重启服务systemctl restart kubelet
########################################################################################
#######################################################################################
node
1.安装kubernetes
rpm -Uvh --force --nodeps *.rpm


2.加载docker镜像
docker load -i kube-proxy-v1.19.3.tar
 docker load -i flanneld-v0.13.0-amd64.docker 
 docker load -i pause-3.2.tar 
 docker load -i metrics-scraper-v1.0.4.tar

3.加入kubernetes集群
用刚才记录下的token,加入集群
kubeadm join 192.168.1.8:6443 --token qrduuk.l0o62raqkip0tnjr \
    --discovery-token-ca-cert-hash sha256:c7c967d2a75ec67fd4abd69b6f0c5639c68ad92e4457f59fa3565205dc986758

echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables

mkdir -p $HOME/.kube
cp -i /etc/kubernets/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

4.配置flanneld网络
修改镜像名字
docker tag quay.io/coreos/flannel:v0.13.0-amd64 quay.io/coreos/flannel:v0.11.0

vim /etc/cni/net.d/10-flannel.conflist
//加上cni的版本号
//文件内容如下
{
  "name": "cbr0",
  "cniVersion": "0.2.0",
  "plugins": [
    {
      "type": "flannel",
      "delegate": {
        "hairpinMode": true,
        "isDefaultGateway": true
      }
    },
    {
      "type": "portmap",
      "capabilities": {
        "portMappings": true
      }
    }
  ]
}
启动ymal
kubectl apply -f kube-flannel.yml


#####################################################################
安装完成
状态检查
1.在master节点执行
    kubectl get nodes

各个节点都是ready状态
如果node节点是not ready状态。
在node 节点查看状态
systemctl status kubelet

2.查看pod状态
kubectl get pod --all-namespaces -o wide

3.查看组件状态
kubectl get cs

发现 两处unhealthy状态,端口10252和10251端口也没启用。
解决方法
/etc/kubernetes/manifests/目录下的
kube-controller-manager.yaml和kube-scheduler.yaml 删掉- – port=0
重启服务systemctl restart kubelet
然后状态就可以了

master,node节点重新加入:
  1.删除所有配置

rm -rf /var/lib/kubelet/
rm -rf /var/lib/dockershim/
rm -rf /var/run/kubernetes
rm -rf /var/lib/cni
rm -rf /etc/kubernetes/* rm -rf ~/.kube/*
rm -rf /var/lib/etcd/*
lsof -i :6443|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :10257|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :10259|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :2379|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :2380|grep -v "PID"|awk '{print "kill -9",$2}'|sh

停止端口使用
netstat -tunlp | grep 10250
kill 端口号id

重新加入master
kubeadm join 10.176.50.30:6443 --token ivor96.05gt59exbwrjzvkc \
    --discovery-token-ca-cert-hash sha256:8fe83ec3da1a0caaf07ed5aa49710ba4b08a57d7b99ed3e84b0f48a29e148937

可以在master 生成永久 token
生产不过期的token 替换上面的token
kubeadm token create --ttl 0 --print-join-command


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
k8s全自动离线部署(高可用),百度下载连接(永久有效,且免费) 当前可选安装版本----------------------------------------------------------------------------------------------------------------------------------------- Kubernetes 1.16.2  -->Docker版本18.09.7-3、18.09.8-3、18.09.9-3、19.03.0-3、19.03.1-3、19.03.2-3、19.03.3-3、19.03.4-3 Kubernetes 1.15.4  -->Docker版本18.09.7-3、18.09.8-3、18.09.9-3、19.03.0-3、19.03.1-3、19.03.2-3、19.03.3-3、19.03.4-3 Kubernetes 1.15.3  -->Docker版本18.09.7-3、18.09.8-3、18.09.9-3、19.03.0-3、19.03.1-3、19.03.2-3、19.03.3-3、19.03.4-3 当前---------------------------------------------------------------------------------------------------------------------------------------------------- 版本:kubernetes(k8s)离线自动化安装系统-v2.6(基于CentOS7.4/7.5/7.6/7.7版本) 升级内容: 1、增加多master集群节点部署功能,即配置文件configs/k8shostlist.ini支持多master节点集群加入 2、增加etcd集群分离部署支持,通过systemctl进行管理,即配置文件configs/etcdhostlist.ini支持多master节点集群加入。 3、经过测试,所有master、node节点依次注入停机故障进行测试,所有业务pod实现100%正常漂移,漂移过程中,出现业务服务响应延时增加现象,但无业务响应异常发生。 4、此版本实现100%一键安装,安装前,整理好配置文件,上传安装包到初始安装主机,直接执行安装脚本,无需任何其他手动处理,即可完成etcd、k8s集群环境搭建。 5、此版本实现了除dockerhub外,所有关键模块,无单点的解决方案。 6、此版本高可用解决方案,对于apiServer的endpoint(k8s.master.com:6443),通过配置/etc/hosts(域名:IP,1:n)模拟VIP, 生产环境下,可以给集群内所有master节点分配一个VIP(k8s.master.com),以避免软负载的流量风暴影响运行稳定性 历史---------------------------------------------------------------------------------------------------------------------------------------------------- 版本:kubernetes(k8s)离线自动化安装系统-v2.5(基于CentOS7.4/7.5/7.6/7.7版本) 升级内容: 1、增加traefik部署以及相关资源创建,除master节点外,其余node节点默认开启服务访问权限 2、demo同时支持ingress和NodePort两种服务发布模式。分别通过虚拟域名+path和NodePort端口即可方案demo服务 3、实现k8s已发布service自动发现和适配能力,在线看板实时动态显示 4、主要模块开机自启动脚本优化,以确保集群所有节点重启后,所有服务运行正常 历史---------------------------------------------------------------------------------------------------------------------------------------------------- 版本:K8s离线自动化安装系统-v2.4(基于CentOS7.4及以上版本) 升级内容: 1、私服镜像仓库搭建支撑harbor、docker-registry 2、安装配置,增加私服镜像仓库端口配置,harbor的admin用户密码配置 3、安装进度条,Ctrl+C支持强制退出,支持保持安装进度和卸载 4、安装帮助文档、使用帮助文档更新 历史---------------------------------------------------------------------------------------------------------------------------------------------------- 版本:K8s离线自动化安装系统-v2.3(基于CentOS7.4及以上版本) 升级内容: 1、增加监控模块heapster部署和配置 2、部署kubernetesui/dashboard最新版 3、授权serviceAccount:dashboard账户获取最大访问权限,满足dashboardUI操作需要 4、安装完成界面,增加dashboard访问URL提示,以及登录dashboard门户的账户token 历史----------------------------------------------------------------------------------------------------------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值