首页 > 其他分享 >初识k8s,安装k8s,kubesphere一键安装

初识k8s,安装k8s,kubesphere一键安装

时间:2023-06-15 18:44:06浏览次数:49  
标签:kubernetes -- kubesphere yum master docker k8s 安装

 1.轻量级的容器系统是是现在的主流,但一个成熟的项目可能需要成百上千的应用(容器)来支撑,如此一来,大量分布在不同服务器上的容器就靠人工就非常难以管理,而 Kubernetes 的出现就是为了解决这个问题,它将大量的容器编排管理起来。

 

2.容器编排系统角逐历史

mesos apache 分布式资源管理框架 退出历史舞台

doker swarm 2019-07 阿里云docker swarm 剔除

退出历史舞台

kubernetes Google 10年容器化基础架构borg go语言

特点:

  轻量级:消耗资源小

  开源

  弹性伸缩

  负载均衡:IPVS

3.kubernertes 图形角色架构

1.master:服务器控制节点

2.node:服务器节点

3.kubelet:管理容器引擎,实现容器的生命周期管理,控制节点的主要服务

4.controller manager: 决策者,调度node点

5.API server :决策者的决策不会直接告诉工厂而是通过它来进行转达,同样地,工厂的情况也是通过它来转给决策者

6.scheduler:调度者,调度项目的执行

7.etcd:类似map形式的键值对数据库,存放集群的ip映射等信息

  kube-proxy: 将规则些入iptables ,ipvs 实现服务映射

  coredns:给集群SVC创建域名ip映射关系

  dashboard: 给k8s集群提供B/S结构访问体系

  ingress controller:官方只能实现4层代理,ingress可以实现7层代理

  federation:提供跨集群中心多K8S统一管理功能

  prometheus:提供k8s集群监控能力

  hpa:pod自适应伸缩

4.k8s环境准备

 

k8s服务器最低要求配置2C2G,最少准备2台以上,一般建议3台

官方k8s地址:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#before-you-begin

4.1主机原名

  172.16.16.5 instance-emaeg9xj

  172.16.16.4 instance-ocdh4khd

4.2.k8s 修改两台主机原名方便辨识,修改hostname以及hosts

vim /etc/hosts
vim /etc/hostname
#hosts,hostname 按节点对应修改 k8s-master k8s-worker
172.16.16.5 k8s-master 
172.16.16.4 k8s-worker

[root@k8s-master ~]# cat /etc/hostname
172.16.16.5 k8s-master

#配置防火墙

#1.按照官方要求配置

#2.关闭防火墙服务

systemctl stop firewalld # 关闭服务

systemctl disable firewalld # 禁用服务

禁用SELinux

修改/etc/selinux/config, 设置SELINUX=disabled. 重启机器.

禁用交换分区

编辑/etc/fstab, 将swap注释掉.

重启机器.

#重启 reboot -h 

5.安装Docker

 https://docs.docker.com/desktop/install/linux-install/

5.1若有旧版docker可先卸载旧版
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
5.2docker依赖的系统必要工具 yum install -y yum-utils device-mapper-persistent-data lvm2   5.3yum设置阿里源 yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo   5.4查看yum支持的docker版本 yum list docker-ce --showduplicates | sort -r   5.5.1安装docker sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin 5.5.2指定版本安装,建议安装指定版本 sudo yum install docker-ce-20.10.8 docker-ce-cli-20.10.8 containerd.io-20.10.8 docker-compose-plugin-20.10.8   5.6启动docker sudo systemctl start docker   5.7运行一个hello-world镜像验证docker安装启动成功 sudo docker run hello-world

6.安装Kubernetes

6.1添加源,由于国内网络原因, 官方文档中的地址不可用, 需要替换为阿里云镜像地址, 执行以下代码即可:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF

6.2 安装(k8s)1.24版本后不默认配置dockerengine,此处安装k8s版本为1.23.6

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
指定版本
yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6 --disableexcludes=kubernetes
systemctl enable kubelet && systemctl start kubelet

修改k8s网络配置为集群网络

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

6.3以上操作各节点均需执行,以下操作只在Master节点生成k8s初始化文件

kubeadm config print init-defaults > kubeadm-init.yaml

 kubeadm-init.yaml该文件有三处需要修改:

advertiseAddress: 1.2.3.4修改为本机地址

imageRepository: k8s.gcr.io修改为 imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers

将nodeRegistration.name: node 修改为 nodeRegistration.name: k8s-master

下载k8s镜像,初始化k8s

[root@k8s-master ~]$ kubeadm config images pull --config kubeadm-init.yaml
[root@k8s-master ~]$ kubeadm init --config kubeadm-init.yaml
 #初始化后执行如下配置指令

  mkdir -p $HOME/.kube

  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

  sudo chown $(id -u):$(id -g) $HOME/.kube/config

#初始化后控制台会有加入集群命令

#节点加入集群命令

kubeadm join 172.16.16.5:6443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:0f11bea2726c6814d7fb4b48d75ff27f7ada1770f1b8b79b1fed097256272f43

#若忘记命令可以重新生成加入集群命令显示在控制台

kubeadm token create --ttl 0 --print-join-command

6.4 安装好k8s后可查看k8s节点状态,将其他节点执行上叙加入集群命令则可看到加入节点状态

[root@k8s-master /]# kubectl get node
NAME   STATUS     ROLES                  AGE     VERSION
node   NotReady   control-plane,master   4m43s   v1.23.6
#主节点显示NotReady,执行清除污节点后可恢复正常
kubectl taint nodes --all node-role.kubernetes.io/master-

6.5k8s网络插件 calico

https://projectcalico.docs.tigera.io/getting-started/kubernetes/quickstart

#命令安装 Calico网络插件

wget https://docs.projectcalico.org/v3.23.3/manifests/calico.yaml

kubectl apply -f calico.yaml

#命令监控确认所有 pod 都在运行。

watch kubectl get pods --all-namespaces

6.6Dashboard(k8s面板)选装

#下载安装
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
#查看kubernetes-dashboard 命名空间
kubectl get svc --namespace=kubernetes-dashboard
#修改kubernetes-dashboard service 外部可访问,将type: ClusterIP 改为 type: NodePort
kubectl -n kubernetes-dashboard edit service kubernetes-dashboard
#查看service
kubectl -n kubernetes-dashboard get service kubernetes-dashboard
#配置登录,新建account.yaml
sudo vim account.yaml
#填充如下信息

# Creating a Service Account
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard


---
# Creating a ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard

#构建account.yaml
kubectl apply -f account.yaml

 查看Dashboard 对外端口

  kubectl -n kubernetes-dashboard get service kubernetes-dashboard

#Dashboard token在控制台获取

kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

#输入获取Dashboard token命名后控制台会显示如下类似token信息,可通过token登录Dashboard

eyJhbGciOiJSUzI1NiIsImtpZCI6IlJGemtRaHE2ZHlsb2VVN3BkUEZ3ZHZDUllfdkhrWUhHem5BMGN3X0J4ZDQifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLXg0d2JwIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIyOWU5NjU3OC1mYTQ0LTQwYTAtODczZi01NjE4ODBhMDI3ZjYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.QS7YNyX24FPNOqS63ApIwEZg5bxaTwHdqmYM5hW3VEGuMIUHgP-qk1wk8lGvWHy9O0rNqFRf9wzxQJcI2dGH1vRiludxMwspzD9XpfbuA9p0hlioadOwHy590ZZBr-n64nSxtFGjGT6b6_W4ILK6HX-VG7rSd7_XAfQKtp9zaf_0zofhS7VQWjrwE9c6BaY2tgBPAOyChILFDJH2whyKWX293W_txPuJLGnUyCrBmOcfNIIzTolgqTN0lpxdPnTp4BUSJB5wspdfFKht-C4qNfC_HY06vWELpCQjateUIRngndn2CRxwyab2OzR600vpFEXVy_OXO2gUUu-HCXij9w

7.以上为k8s的官方原始安装方式,下叙为一键安装方式kubesphere一键安装方式

https://kubesphere.io/zh/docs/v3.3/quick-start/all-in-one-on-linux/

7.1.时区调整为上海

sudo timedatectl set-timezone "Asia/Shanghai"

Linux下防火墙有两种分别是iptables和firewalld,在centos7之前centos用的防火墙是iptables,自从centos7过后防火墙的使用就从iptables变成了firewalld。

7.2.关闭防火墙

systemctl stop firewalld #临时关闭

systemctl disable firewalld #永久关闭,即设置开机的时候不自动启动

7.3.下载kubekey

export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh -

7.3.1.为 kk 添加可执行权限:

chmod +x kk

7.3.2 创建集群

./kk create config [--with-kubernetes version] [--with-kubesphere version] [(-f | --file) path]

./kk create config --with-kubernetes v1.21.5 --with-kubesphere v3.2.1 -f config-sample.yaml

3.3 编辑配置文件 config-sample.yaml

spec:
hosts:
- {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, user: ubuntu, password: Testing123}
- {name: node1, address: 192.168.0.3, internalAddress: 192.168.0.3, user: ubuntu, password: Testing123}
- {name: node2, address: 192.168.0.4, internalAddress: 192.168.0.4, user: ubuntu, password: Testing123}
roleGroups:
  etcd:
  - master
  control-plane:
  - master
  worker:
  - master
  - node1
  - node2
controlPlaneEndpoint:
  domain: lb.kubesphere.local
  address: ""
  port: 6443

7.3.4添加docker 加速器地址

docker依赖的系统必要工具

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

7.3.5 使用配置文件创建集群

./kk create cluster -f config-sample.yaml

7.3.5.1 报错问题

 

安装如下插件

yum install -y conntrack && yum install -y socat

然后继续执行3.5 配置文件创建集群

 访问如下地址即可进入kubesphere面板

Console: http://192.168.0.232:30880

Account: admin Password: P@88w0rd

 

图片参考:

https://juejin.cn/post/7239279470249754679

https://juejin.cn/post/7217410854844383291

标签:kubernetes,--,kubesphere,yum,master,docker,k8s,安装
From: https://www.cnblogs.com/zh9311/p/17479802.html

相关文章

  • python2安装mysqldb
     yuminstallmariadb-devel 或yuminstallmysql-devel 编辑_mysql.c注释2005行 ......
  • NodeJS系列(1)- 安装配置 NVM + NodeJS
    NodeJS(或Node.js) 是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。简而言之,NodeJS就是运行在服务端的JavaScript。NVM(NodeVersionManage),即NodeJS的版本管理工具。不同项目依赖不同的NodeJS版本......
  • ubuntu 安装 nv驱动
    今天将Ubuntu从9.10升级到10.04后显卡驱动遇到了点小麻烦:不能像以前那样安装Nvidia官方驱动了。据说是因为10.04自带了开源的nouveau驱动所至。因此要手动安装官方驱动先得卸载ubuntu10.04安装时缺省提供的这个驱动。折腾一番后安装成功,简单总结一下安装官方驱动的两个方法:手......
  • CentOS7虚拟机安装
    创建虚拟机。选择典型安装,也可以选择自定义高机来进行个性化的安装,这里选择默认的典型即可。选择稍后安装操作系统。操作系统选择Linux,选择版本CentOS764位,然后点击下一步。输入虚拟机的名称和位置,不建议放在C盘指定虚拟机磁盘容量默认为20G,尽量不要太大20......
  • 利用VMware安装centos7+docker部署Oracle数据库
    由于本机资源有限,docke容器能够利用最小资源实现目前需求准备:VMware、centos镜像文件VMware安装centos后,设置网络桥接模式,联通外网,为安装docker准备执行:首先,将docker部署再虚拟机内,(新机器直接安装,若安装过旧版本需要卸载,请参考https://www.runoob.com/docker/centos-docker-i......
  • Nginx的安装和配置
    Nginxnignx的安装形式三种安装形式:源代码编译安装安装步骤繁琐,耗时长,看你要装多少个模块,编译添加的模块多,安装的就更久rpm安装得提前准备好rpm包,以及相关依赖的rpm包用于离线安装nginx环境yum安装,用哪些形式的仓库阿里云自建yum仓库(的提前准备好ngin......
  • 虚拟机内安装Ubuntu 22.04.2 LTS
    Ubuntu系统下载|Ubuntu文件->新建虚拟机-> 下一步: 下一步: 下一步: 下一步: 注:路径用全英文下一步: 下一步: 下一步:下一步: 下一步: 下一步:下一步: 下一步: 下一步: 自定义硬件: 注:移除打印机新CD/DVD(SATA)->使用ISO映像文件->浏览关闭......
  • Linux安装nodejs
    cd/opt/softwgethttps://cdn.npmmirror.com/binaries/node/v16.15.1/node-v16.15.1-linux-x64.tar.xztar-xvfnode-v16.15.1-linux-x64.tar.xzmvnode-v16.15.1-linux-x64nodejs-v16.15#建立软连接ln-s/opt/soft/nodejs-v16.15/bin/node/usr/bin/nodeln-s/o......
  • 安装win10虚拟机
    1、前期工作下载win10镜像:zh-cn_windows_10_consumer_editions_version_21h1_updated_aug_2021_x64_dvd_4de56d76.iso安装虚拟机工具:VirtualBox2、新建虚拟机2.1、设置新建虚拟机的名称、安装路径、类型及版本2.2、设置新建虚拟机的内存2.3、设置新建虚拟机的硬盘......
  • CentOs7安装部署Sonar环境(JDK1.8+MySql5.7+sonarqube7.8)
    sonarqube安装前环境准备JDK1.8、MySql5.7。一、JDK安装1、下载jdk #打开下面的网址,选择jdk-8u371-linux-x64.tar.gz进行下载(8u371版本可能会有区别,但是没有影响) http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html2、......