k8s

离线部署 k8s 1.19.4 附离线部署包(包含基础镜像及rp

2021-05-10  本文已影响0人  Andy_Yao

版本信息:

Docker:

REPOSITORY TAG SIZE
Docker v19.03.13 100MB

Kubernetes 镜像

Image Version:

REPOSITORY TAG SIZE
k8s.gcr.io/kube-proxy v1.19.4 118MB
k8s.gcr.io/kube-controller-manager v1.19.4 111MB
k8s.gcr.io/kube-apiserver v1.19.4 119MB
k8s.gcr.io/kube-scheduler v1.19.4 45.7MB
quay.io/coreos/flannel v0.13.0 57.2MB
k8s.gcr.io/etcd 3.4.13-0 253MB
k8s.gcr.io/coredns 1.7.0 45.2MB
k8s.gcr.io/pause 3.2 683kB

安装步骤

安装 docker

复制 docker-packages 到离线机,安装 docker 并启动

1. 安装 yum utilities :

yum install -y --cacheonly --disablerepo=* k8s-installer/docker-packages/yum/*.rpm

2. 安装 Docker file drivers :

yum install -y --cacheonly --disablerepo=* k8s-installer/docker-packages/dm/*.rpm
yum install -y --cacheonly --disablerepo=* k8s-installer/docker-packages/lvm2/*.rpm 

3. 安装 container-selinux :

yum install -y --cacheonly --disablerepo=* k8s-installer/docker-packages/se/*.rpm

4.安装 docker :

yum install -y --cacheonly --disablerepo=* k8s-installer/docker-packages/docker-ce/*.rpm

5. 启动 docker :

systemctl enable docker && systemctl start docker

安装 Kubernetes

1. 安装 Kubernetes utilities

yum install -y --cacheonly --disablerepo=* k8s-installer/k8s-packages/kube/*.rpm

2. 检查所需镜像

kubeadm config images list

3. 导入 k8s 所需镜像

sh k8s-installer/k8s-images/load.sh
--load.sh 
  |- docker load < kube-apiserver:v1.19.4.tar
     docker load < kube-controller-manager:v1.19.4.tar
     docker load < kube-scheduler:v1.19.4.tar
     docker load < kube-proxy:v1.19.4.tar
     docker load < pause:v3.2.tar
     docker load < etcd:v3.4.13-0.tar
     docker load < coredns:v1.7.0.tar
     docker load < flannel:v0.13.0.tar

4. 关闭防火墙

systemctl stop firewalld && systemctl disable firewalld

5. 永久关闭 swap

swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab 

6. 确保 SELinux 是 permissive 模式

setenforce 0 && sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

7. 分别配置 hosts 文件

IP ROLE
xxxxxx master
xxxxxx node

8. 内核调整,将桥接的IPv4流量传递到iptables的链

cat > /etc/sysctl.d/k8s.conf << EOFnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOF$ sysctl --system

建议执行下面的:

cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables

9. 开起 kubelet

systemctl enable kubelet # 一定不能 start

10. 在 master 节点上创建集群,初始化集群

kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.19.4

安装完成后,注意输出指令,如需执行命令请执行

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

11. 配置 kubectl 管理集群

grep -q "KUBECONFIG" ~/.bashrc || {
    echo 'export KUBECONFIG=/etc/kubernetes/admin.conf' >> ~/.bashrc
    . ~/.bashrc
}

12. 检查集群是否创建成功

kubectl get nodes

13. 配置初始化 flannel 网络插件

kubectl apply -f k8s-installer/k8s-network/kube-flannel.yml

14. 修改 kube-apiserver.yaml 配置文件打开 TokenRequestAPI

添加以下配置:

- --service-account-signing-key-file=/etc/kubernetes/pki/sa.key
- --service-account-key-file=/etc/kubernetes/pki/sa.pub
- --service-account-issuer=api
- --service-account-api-audiences=api,vault,factors

15. 查看集群状态是否正常,若不正常请重启集群

kubectl get nodes
kubectl get pods -ALL

15. 查看加入节点的 token

kubeadm token create --print-join-command

16. 从节点执行机加入集群

kubeadm join --token <token> <primary-ip>:<primary-port> --discovery-token-ca-cert-hash sha256:<hash>

17. 从主节点查看集群情况

kubectl get nodes

成功!

上一篇 下一篇

猜你喜欢

热点阅读