K8S,KubeSphere安装与卸载

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

K8S,KubeSphere单机与集群安装与卸载

安装

Docker安装

K8S 安装

Helm安装

OpenEBS安装(推荐Helm安装)

KubeSphere安装

卸载

K8S卸载

Helm卸载

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

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-clicontainerd.io

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

sudomkdir-p /etc/dockersudotee/etc/docker/daemon.json<<-'EOF'{"registry-mirrors":["https://ke9h1pt4.mirror.aliyuncs.com"]}EOFsudosystemctl daemon-reloadsudosystemctl restart docker

5 启动docker

systemctlstartdocker

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

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</etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF

4.2 K8S组件安装

yuminstall-y kubelet-1.17.3 kubeadm-1.17.3 kubectl-1.17.3

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

systemctlenablekubelet&&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/bashimages=(kube-apiserver:v1.17.3    kube-proxy:v1.17.3kube-controller-manager:v1.17.3kube-scheduler:v1.17.3coredns:1.6.5etcd:3.4.3-0    pause:3.1)forimageNamein${images[@]};dodocker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageNamedone

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/.kubesudocp-i/etc/kubernetes/admin.conf$HOME/.kube/configsudo 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初始化成功返回脚本如下(每台子节点都要执行)

kubeadmjoin10.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的位置

cplinux-amd64/helm/usr/local/bin/

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

apiVersion: v1kind: ServiceAccountmetadata:  name: tiller  namespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  name: tillerroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: cluster-adminsubjects:-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 APIgroup""in the namespace"kube-system"

kubectl create serviceaccount--namespace kube-system tillerkubectl create clusterrolebinding tiller-cluster-rule--clusterrole=cluster-admin--serviceaccount=kube-system:tillerkubectl 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 deletekubectl 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 执行脚本

shdel.sh

安装过程所需文件

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容