> 文章列表 > 离线安装K8SV1.20.5单master节点并部署服务测试

离线安装K8SV1.20.5单master节点并部署服务测试

离线安装K8SV1.20.5单master节点并部署服务测试

安装所需安装包下载地址:

离线安装K8S V1.20.5所需的全部安装包:
链接:https://pan.baidu.com/s/1Fp1k8urTA0m-lvVVYxoBCQ?pwd=MAQQ
提取码:MAQQ
–来自百度网盘的分享

docker离线安装包下载:
链接:https://pan.baidu.com/s/1XwqTSsqS-K6n-zUqSA41sQ?pwd=MAQQ
提取码:MAQQ
–来自百度网盘分享

1.部署环境主机

角色master IP
k8s-master 192.168.0.95

hostnamectl set-hostname k8s-master && bash
cat >> /etc/hosts << EOF
192.168.0.95  k8s-master
EOF
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
#关闭swap
swapoff -a # 临时
sed -i 's/.*swap.*/#&/' /etc/fstab # 永久cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system # 生效

2.离线安装docker

tar -xvf docker-20.10.2.tgz
cp docker/*  /usr/bin/ #复制解压下的二进制文件到bin下
cp  docker.service /etc/systemd/system/docker.service
chmod +x /etc/systemd/system/docker.service 
systemctl daemon-reload
systemctl start docker
systemctl enable docker.service
sudo cp docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-composecat > /etc/docker/daemon.json << EOF
{"registry-mirrors": ["https://qj799ren.mirror.aliyuncs.com"],"insecure-registries": ["0.0.0.0/0"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2"
}
EOF
systemctl restart docker  && systemctl status docker
rm -fr docker docker-compose-Linux-x86_64 docker.service docker-20.10.2.tgz #自己上传的包安装成功后就删除

3.离线安装kubeadm,kubelet 和kubectl

tar -zxvf kubernetes-server-linux-amd64.tar.gz
cd kubernetes/server/bin
cp -ar kubelet kubeadm kubectl /usr/bin/cat >/usr/lib/systemd/system/kubelet.service <<EOF
[Unit]
Descriptinotallow=kubelet: The Kubernetes Node Agent
Documentatinotallow=https://kubernetes.io/docs/[Service]
ExecStart=/usr/bin/kubelet
Restart=always
StartLimitInterval=0
RestartSec=10[Install]
WantedBy=multi-user.target
EOF#注意ExecStart内容换行
mkdir -p /usr/lib/systemd/system/kubelet.service.d/
cat >/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf <<EOF
[Service]
Envirnotallow="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubecnotallow=/etc/kubernetes/bootstrap-kubelet.conf --kubecnotallow=/etc/kubernetes/kubelet.conf"
Envirnotallow="KUBELET_CONFIG_ARGS=--cnotallow=/var/lib/kubelet/config.yaml"
Envirnotallow=-/var/lib/kubelet/kubeadm-flags.env
Envirnotallow=-/etc/sysconfig/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
EOFrm -fr  kubernetes-server-linux-amd64.tar.gz kubernetes #自己上传的包安装成功后就删除

4.部署Kubernetes Master

docker load -i k8s_1205.tar.gzkubeadm init --apiserver-advertise-address=192.168.0.134  --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.20.5  --service-cidr=10.96.0.0/12  --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=allmkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

5.安装Pod 网络插件(CNI)

在这里插入代码片

6.单集版的k8s安装后, 无法部署服务,需要去掉污点

kubectl taint nodes --all node-role.kubernetes.io/master- #执行这句就行,就是取消污点
kubectl get node -o yaml | grep taint -A 5 #看不到任何信息就对了

7.测试kubernetes部署服务

cat > nginx.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginxname: nginx
spec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginxname: nginximagePullPolicy: IfNotPresent
---
apiVersion: v1
kind: Service
metadata:labels:app: nginxname: nginx
spec:type: NodePortports:- port: 80protocol: TCPtargetPort: 80selector:app: nginx
EOF#访问地址:http://ip:端口/