K8S,KubeSphere安装与卸载

这段时间研究Kubernetes(K8S),KubeSphere。运行环境的搭建花了很多时间,踩了很多坑,写此分享避免小伙伴从入门到放弃。希望正在学习的容器化技术的小伙伴们看完此文章能够更加得心应手。

安装

 K8S帮助文档地址(https://www.kubernetes.org.cn/k8s)
 KubeSphere帮助文档地址(https://kubesphere.com.cn/docs/quick-start/minimal-kubesphere-on-k8s/)
 服务器配置
 操作系统 centos_7_02_64
 CPU:2核
 内存:8G
 硬盘:25G
 环境软件
 kubelet-1.17.3 kubeadm-1.17.3 kubectl-1.17.3 KubeSphere-2.1
 Docker  20.10.0
 Helm 2.16.3
 OpenEBS 1.5.0
 Flannel

Docker安装

1 安装依赖包

sudo yum install -y yum-utils

2 设置镜像的仓库

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3 更新yum软件包索引

   yum makecache fast

4 安装docker相关的源 docker-ce 社区 ee 企业版

yum install docker-ce docker-ce-cli containerd.io

5 配置镜像加速器(下面命令可从注册阿里云服务器,搜索框输入镜像加速 可获取获取到 如下图)

在这里插入图片描述

 sudo mkdir -p /etc/docker
 sudo tee /etc/docker/daemon.json <<-'EOF'
	{
	  "registry-mirrors": ["https://ke9h1pt4.mirror.aliyuncs.com"]
	}
	EOF
 sudo systemctl daemon-reload
 sudo systemctl restart docker

5 启动docker

   systemctl start docker

验证安装(出现下图打印信息安装成功)

   docker --version

在这里插入图片描述
6 设置开机启动

  systemctl enable docker

K8S 安装

1 关闭防火墙 (安装过程中没关能成功)

  systemctl stop firewalld
  systemctl disable firewalld

2 关闭Linux(必关)

 sed -i 's/enforcing/disabled/' /etc/selinux/config
 setenforce 0

3 关闭swap(必关)

 swapoff -a #临时关闭
 sed -ri 's/.*swap.*/#&/' /etc/fstab #永久关闭 线上使用这种
 free -g #验证,swap必须为0

4 K8S 安装相关命令

4.1 添加阿里云yum源

cat <<EOF > /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
EOF

4.2 K8S组件安装

  yum install -y kubelet-1.17.3 kubeadm-1.17.3 kubectl-1.17.3

4.3 K8S设置开机启动与启动K8S

systemctl enable kubelet && systemctl start kubelet

4.4 查看启动状态

systemctl status kubelet

出现这种提示可以不用管,其他安装就不会出现了
Unit kubelet.service entered failed state.
kubelet.service failed.

4.5 创建Master节点,把下面脚本保存到文件master_create.sh,执行命令sh master_create.sh

     #!/bin/bash
images=(
	kube-apiserver:v1.17.3
    kube-proxy:v1.17.3
	kube-controller-manager:v1.17.3
	kube-scheduler:v1.17.3
	coredns:1.6.5
	etcd:3.4.3-0
    pause:3.1
)
for imageName in ${images[@]} ; do
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done

4.6 初始化kubeadm,–apiserver-advertise-address=10.0.2.21,IP地址是master主机的地址,eth0网卡的地址。

kubeadm init \
--apiserver-advertise-address=10.0.12.25 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--kubernetes-version   v1.17.3 \
--service-cidr=10.96.0.0/16  \
--pod-network-cidr=10.244.0.0/16

出现下面提示表示初始化成功
Your Kubernetes control-plane has initialized successfully!
4.7 执行4.6步骤成功返回脚本如下

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

4.8 单机与集群节点配置
4.8.1 单机Master隔离解除(主节点也能部署工作任务,单台服务器需要设置,集群不用配置)

 kubectl taint nodes --all node-role.kubernetes.io/master-

成功时会输出类似提示:
xxx untainted

4.8.2 集群时需要执行4.6初始化成功返回脚本如下(每台子节点都要执行)

 kubeadm join 10.0.12.25:6443 --token sg47f3.4asffoi6ijb8ljhq \
--discovery-token-ca-cert-hash sha256:81fccdd29970cbc1b7dc7f171ac0234d53825bdf9b05428fc9e6767436991bfb 

4.8.3子节点join结果查看

  kubectl get nodes

4.8.4 4.6步骤返回脚本 kubeadm join … ,token过期重新生成命令

kubeadm token create --print-join-command

4.9安装Pod网络插件
4.9.1 通过脚本链接安装

kubectl apply -f \
https://raw.githubusercontent.com/coreos/flanne/master/Documentation/kube-flannel.yml

4.9.2 通过本地脚本安装

kubectl apply -f  kube-flannel.yml

4.9.3 查看安装结果

kubectl get pods --all-namespaces

出现如下图表示网络插件Flannel安装成功在这里插入图片描述

Helm安装

1 helm安装包本地安装
1.1 下载这个版本helm-v2.16.3-linux-amd64.tar.gz

1.2 解压安装包

tar -zxvf helm-v2.16.3-linux-amd64.tar.gz

1.3移动helm的位置

 cp linux-amd64/helm  /usr/local/bin/

1.4 建helm-rbac.yaml。脚本如下

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system

1.5 运行脚本

kubectl apply -f helm-rbac.yaml

1.6 Helm初始化

 helm init --service-account tiller --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.3 --skip-refresh

1.7 运行命令,安装校验,成功提示

 helm version

在这里插入图片描述
1.8 运行状态校验,如下面截图说明启动成功

   kubectl get pods -n kube-system

在这里插入图片描述
1.9 出现如下,执行下面命令

  Error: configmaps is forbidden: User "system:serviceaccount:kube-system:tiller" cannot list resource "configmaps" in API group "" in the namespace "kube-system"
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}' 

2 脚本安装Helm(由于网络原因比较难成功)
2.1 创建脚本create_helm.sh
2.2 执行脚本

  sh get_helm.sh 

OpenEBS安装(推荐Helm安装)

参考https://v2-1.docs.kubesphere.io/docs/zh-CN/appendix/install-openebs/

KubeSphere安装

1 远程脚本链接安装

kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-minimal.yaml

2 本地脚本链接安装 kubesphere-minimal.yaml

kubectl apply -f  kubesphere-minimal.yaml

2.1 安装日志打印

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

2.2 安装成功日志打印
在这里插入图片描述
2.3 出现下图错误打印忽略
在这里插入图片描述
2.4 KubeSphere检验安装结果,如下图为安装成功

kubectl get pods --all-namespaces

在这里插入图片描述
2.5 KubeSphere 浏览器登录
在这里插入图片描述

卸载

K8S卸载

1 重置

 kubeadm reset

2 删除文件

rm -rf $HOME/.kube

Helm卸载

1 执行命令

kubectl get -n kube-system secrets,sa,clusterrolebinding -o name|grep tiller|xargs kubectl -n kube-system delete
kubectl get all -n kube-system -l app=helm -o name|xargs kubectl delete -n kube-system

KubeSphere 卸载

1 执行命令

kubectl delete -f kubesphere-minimal.yaml

2 执行脚本

 sh del.sh

安装过程所需文件

在这里插入图片描述
如需要扫码关注,联系获取
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值