Skip to main content

Centos8.3部署kubernetes及使用Veeam Kasten K10备份恢复指南-update (上)


Richard Wu
Forum|alt.badge.img

本文详述了在Centos 8.3上安装k8s,安装helm, 创建nfs storageclass,采用Air-Gapped方式安装Veeam Kasten k10, 部署minio并创建S3 bucket作为Veeam kasten k10备份存储库,手工部署mysql并应用kanister blueprint,使用Veeam kasten k10实现针对mysql无代理应用感知备份恢复的详细步骤及截图。

本文使用的测试环境是Centos8.3(4 core CPU/10GB内存/50GB硬盘),k8s版本是1.21.3,  Veeam Kasten K10版本是4.5.12.

 

1.安装kubernetes的环境准备

[root@localhost ~]# hostnamectl set-hostname k8s-131

[root@centos8-k8s ~]# cat /etc/centos-release

CentOS Linux release 8.3.2011

[root@centos8-k8s ~]# yum remove podman

[root@centos8-k8s ~]# swapoff -a

root@centos8-k8s ~]# sed -i 's/.*swap.*/#&/' /etc/fstab

把/etc/fstab中的swap注释掉

 

v2-0196da3db6f9d4056160d055cb2a7e9e_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

禁用selinux:

[root@centos8-k8s ~]# sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

禁用防火墙:

[root@centos8-k8s ~]# systemctl stop firewalld.service

[root@centos8-k8s ~]# systemctl disable firewalld.service

Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

[root@centos8-k8s ~]#

 

2. 安装kubernetes

[root@centos8-k8~]# curl -o /etc/yum.repos.d/CentOS-Base.repo

http://mirrors.aliyun.com/repo/Centos-8.repo

有关阿里云centos 8 EOL的切换方法,可以参考以下链接:

https://help.aliyun.com/document_detail/405635.html

[root@k8s-131 yum.repos.d]# rename '.repo' '.repo.bak' /etc/yum.repos.d/*.repo

[root@k8s-131 yum.repos.d]# wget https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo -O /etc/ yum.repos.d/Centos-vault-8.5.2111.repo

[root@k8s-131 yum.repos.d]# wget https://mirrors.aliyun.com/repo/epel-archive-8.repo -O /etc/yum.rep os.d/epel-archive-8.repo

[root@k8s-131 yum.repos.d]# sed -i 's/mirrors.cloud.aliyuncs.com/url_tmp/g' /etc/yum.repos.d/Centos -vault-8.5.2111.repo && sed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d /Centos-vault-8.5.2111.repo && sed -i 's/url_tmp/mirrors.aliyun.com/g' /etc/yum.repos.d/Centos-vault -8.5.2111.repo

[root@k8s-131 yum.repos.d]# sed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum.repo s.d/epel-archive-8.repo

[root@k8s-131 yum.repos.d]# vi /etc/yum.repos.d/epel-archive-8.repo

把文件内容中的http://mirrors.cloud.aliyuncs.com/ 替换成 http://mirrors.cloud.aliyuncs.com/

 

v2-0367ea3cef7cb71ef69be29aa1c7887f_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

[root@centos8-k8s ~]# vi /etc/yum.repos.d/kubernetes.repo

加入如下内容:

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

 

[root@k8s-131 yum.repos.d]# yum clean all && yum makecache

如果能看到下面的执行结果,说明yum源配置ok.

 

v2-b65731a2fe0a54f2e5baed9454212acd_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

[root@centos8-k8s ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 net-tools

[root@centos8-k8s~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@centos8-k8s ~]# yum -y install docker-ce

 

v2-2398920516aa79c1c83d19bcc3d30bb1_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

 

v2-464354d88e80b83522b04f0498a62a0f_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

 

v2-2f40d428af5fbb84e56308f990e7942e_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

 

v2-d5231c9ba9a1224fade1178e9b5ff474_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

设置阿里云加速器参考链接:

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

[root@centos8-k8s ~]# mkdir -p /etc/docker

[root@centos8-k8s ~]# vi /etc/docker/daemon.json

设置为如下内容:

{

"registry-mirrors" : ["https://vgsgv61q.mirror.aliyuncs.com"]

}

[root@centos8-k8s ~]#systemctl daemon-reload

[root@centos8-k8s ~]#systemctl restart docker

[root@centos8-k8s ~]# yum install -y kubectl-1.21.3 kubelet-1.21.3 kubeadm-1.21.3

 

v2-23889bcdb89726b544d3d29cfd0785d7_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

 

[root@centos8-k8s ~]# systemctl enable kubelet

Created symlink /etc/systemd/system/multi-user.target.wants/kubelet.service → /usr/lib/systemd/system/kubelet.service.

[root@centos8-k8s ~]# systemctl start kubelet

 

[root@centos8-k8s ~]# kubelet --version

Kubernetes v1.21.0

[root@centos8-k8s ~]#docker pull coredns/coredns

[root@localhost yum.repos.d]# docker tag coredns/coredns:latest registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0

以下初始化k8s的命令,除了--apiserver-advertise-address是本机的ip地址,其它的可以不变。

[root@centos8-k8s ~]# kubeadm init --kubernetes-version=1.21.3 --apiserver-advertise-address=192.168.17.131 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.10.0.0/16 --pod-network-cidr=10.122.0.0/16

 

v2-53d8267fdb118053a3e4d4d4a86001ce_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

 

v2-7af5bad3a745e302d5587885da65fff8_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

 

 

v2-8e0442eae22c072c1a2e549a52062e90_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

如果以后添加worker node, 在work node上使用下列命令即可:

kubeadm join 192.168.17.131:6443 --token b4xlai.8cr4z0xk5rl033od \

--discovery-token-ca-cert-hash sha256:bc11bae9f88e65718e286e742108dd93094ffae9e66c76b36d99ddf3e5484d61

[root@centos8-k8s ~]# mkdir -p $HOME/.kube

[root@centos8-k8s ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

[root@centos8-k8s ~]# chown $(id -u):$(id -g) $HOME/.kube/config

[root@centos8-k8s ~]# source <(kubectl completion bash)

[root@centos8-k8s ~]# kubectl get node

NAME STATUS ROLES AGE VERSION

localhost.localdomain NotReady control-plane,master 15m v1.21.0

[root@centos8-k8s ~]# kubectl get pod --all-namespaces

 

v2-d0f5095832627587164469de30af40c4_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

[root@centos8-k8s ~]# kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

 

v2-9dda91a19d67c9dea698640cb12c06c5_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

[root@centos8-k8s ~]# kubectl get pod --all-namespaces

 

v2-e14f54e032ccf6fa854d31f7a343955d_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

 

3. 安装kubernetes-dashboard

[root@centos8-k8s ~]#pwd

/root

[root@centos8-k8s ~]#

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

[root@centos8-k8s ~]# vi recommended.yaml

添加如下红色内容:

kind: Service

apiVersion: v1

metadata:

labels:

k8s-app: kubernetes-dashboard

name: kubernetes-dashboard

namespace: kubernetes-dashboard

spec:

type: NodePort

ports:

- port: 443

targetPort: 8443

nodePort: 30000

selector:

k8s-app: kubernetes-dashboard

[root@centos8-k8s ~]# kubectl create -f recommended.yaml

 

v2-8a417981494249bc44f4323d162a0dad_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

[root@centos8-k8s ~]# kubectl get pod --all-namespaces

 

v2-f53e58edbff0cfad0292a5e5c6987468_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

[root@centos8-k8s ~]# systemctl restart kubelet

[root@Cen8-131 ~]# kubectl get node

 

v2-d0d635dd78f0251e59b189b3dd7abd55_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

浏览器访问 https://192.168.17.131:30000/ 注意是https请求 浏览器会提示有风险,忽略,点击高级访问网站

 

v2-9e00e3e2de9c36e00676f1039b65d20b_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

创建token, 授权token 访问权限

[root@centos8-k8s ~]# kubectl create sa dashboard-admin -n kube-system

[root@centos8-k8s ~]# kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

获取token:

[root@centos8-k8s ~]# ADMIN_SECRET=$(kubectl get secrets -n kube-system | grep dashboard-admin | awk '{print $1}')

[root@centos8-k8s ~]# DASHBOARD_LOGIN_TOKEN=$(kubectl describe secret -n kube-system ${ADMIN_SECRET} | grep -E '^token' | awk '{print $2}')

显示token:

[root@centos8-k8s ~]# echo ${DASHBOARD_LOGIN_TOKEN}

eyJhbGciOiJSUzI1NiIsImtpZCI6Il9rRXVVNFYxRVF4ejhtUWo2azQ4QW83ZVNFVU1rX2E2bGM5T0p1eWRUVk0ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tZnZocGsiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNDkwZTg2OTUtOWE1NC00YzJjLTljNTEtZDk1NTQ0ZjM4MjUzIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.eQIH-VFkJaRoJT_kTigbSXzCuS5qEkljDGJdoOsM1zmKmSGonQJ2dfdM08tE7JCygyIBXqZMcS1QkaBKpLnqAYN1RdDRW9vLBs_MuQKBKhkzxldfWjHV6HAcdRCGas7uVkzuF61q14vzkadAmGAx0F6VVaWDZVloVUswFNISZ3K4C0v7fEo3a0i7Labmxg-xuyepAlLbVDGDRGcJGoSedXrJLG8MfLCczBMymO0lr6SNAyRkyqOoFWlnGXIlK15xyVbmPWKi-Oi9qKBw6_p0bHSWtCGEXCUAYc2-5Yuh6uOXK_ad3QO3tkAyo7ng0ArHfGTjdcEG-e06euBkYZPJrQ

复制上述token,在浏览器中粘贴,点击“登录“按钮即可,因为kubernetes的dashboard缺省过一段时间就会自动退出,需要重新输入token才能登录,该token长期有效,可以把token保留在文件中,以备以后使用。

 

v2-5aec09172520ccf375691a87f954dc53_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

 

v2-cee61a7f16fa6891d2bb192ba7fa78af_720w.jpg?source=d1c2d5a6

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

使用kubeadm初始化的集群,出于安全考虑Pod不会被调度到master node上,不参与工作负载。本文档只有一个master node,为了允许在master node上部署pod,需运行以下命令:

[root@centos8-k8s ~]# kubectl taint nodes --all node-role.kubernetes.io/master-

node/centos8-k8s untainted

 

 

 

 

0 comments

Be the first to comment!