参考: 文章 命令: cat >> /etc/yum.repos.d/kubernetes.repo <<eof [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/y
文章目录[隐藏] win win # 建议进入github查看说明文档 git clone https://gitee.com/jasonsang/k8s-for-docker-desktop # -split " +")[1] kubectl config set-credentials docker-for-desktop --token="${TOKEN}" echo $TOKEN 安装
swap.*/#&/' /etc/fstab 镜像准备 如果你的节点上面有访问外国网站的工具,可以忽略这一步,我们需要提前将所需的gcr.io上面的镜像下载到节点上面,当然前提条件是你已经成功安装了 kubernetes 两个节点都需要安装 安装 cat > /etc/yum.repos.d/kubernetes.repo <<EOF[kubernetes]name=Kubernetesbaseurl ,所以直接yum install -y kubeadm即可,它会安装相应依赖包。 4.安装 Master 组件,会从 goolge 的 Registry 下载组件的 Docker 镜像,这一步可能会花一些时间,主要取决于网络质量,如果本地已有相关镜像则会优先使用本地的。 kubectl get pods命令可以查看到我们集群中的组件运行状态,如果都是Running状态的话,那么恭喜你,你的master节点安装成功了。
本篇文章主要是通过 VMware 来创建虚拟机,在虚拟机上通过 kubeadm 安装 k8s 集群; 第一部分:虚拟机创建 1 环境信息 安装镜像:ubuntu-22.04.5-live-server-amd64 ,开启 SSH Server 6)选择安装的软件,这里其实可以什么都不选,后面根据需要再进行安装; 等待系统安装完成,登录系统,查看 IP 地址; 第二部分:k8s 集群创建 安装的环境信息: 主机名 set-timezone Asia/Shanghai 安装 ntp 服务: apt install ntp systemctl start ntp 3 k8s 组件安装 1)containerd 安装 unix:///var/run/containerd/containerd.sock timeout: 10 debug: true EOF systemctl restart containerd 4 k8s 集群部署 1)更换阿里云 k8s 镜像源 echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" |
上一小节我们安装了docker版本的k8s版本是1.23.12,但是目前的k8s版本截止2024年12月,已经发布到 1.32.0,所以我们这里的版本也安装1.32.0版本(我写这个文章在1年前,发布的版本到了 IP地址 角色 主机名 192.168.31.213 master master01 192.168.31.214 node node01 准备工作 1.操作系统 参考:Kubernetes(k8s) -安装k8s(docker版) 2.初始化 参考:Kubernetes(k8s)-安装k8s(docker版) 部署 1.安装containerd 虽然不安装docker,但是由于containerd是 join 192.168.31.213:6443 --token kv1zhw.zppidspgtkmx7oa7 \ --discovery-token-ca-cert-hash sha256:09e8d758444179d1eff42107578fd8b49c39bc7a36ffa4d74a3bda3d1ad7fc47 后续的操作步骤是一样的,就不一一演示了,把遇到的几个问题总结下 1.没有加载内核模块br_netfilter,导致内核参数修改未生效,安装失败。
安装在目标集群上,执行如下命令:kubectl apply -f https://github.com/512team/dhorse/raw/main/conf/kubernetes-prometheus.yml 使用1.在浏览器访问地址:http://master_ip:30000,如下图所示:图片2.查看k8s自带的指标数据,如下图所示:图片3.点击“Execute”按钮,并切换到“Graph”选项卡,可以看到指标的统计信息
包管理器类似于我们在 Ubuntu 中使用的apt、Centos中使用的yum 或者Python中的 pip 一样,能快速查找、下载和安装软件包。 Helm 由客户端组件 helm 和服务端组件 Tiller 组成, 能够将一组K8S资源打包统一管理, 是查找、共享和使用为Kubernetes构建的软件的最佳方式 # 1.解压 [root@master
EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5d8h nginx-service NodePort 10.111.182.42 <none> 88:80/TCP 8s NodePort 为kubectl get service /nginx-servic 后 88:80/TCP中 80这个端口; 本次为http://任意节点ip:80/ # 3.敲重点:验证k8s强大的自愈能力 删除一个pod [root@master ~]
/bin && chown -R k8s /opt/k8s && mkdir -p /etc/kubernetes/cert &&chown -R k8s /etc/kubernetes && mkdir " # 将二进制目录 /opt/k8s/bin 加到 PATH 中 export PATH=/opt/k8s/bin:$PATH EOF 然后,把全局变量定义脚本拷贝到所有节点的 /opt/k8s/bin /etc/kubernetes" scp ca*.pem ca-config.json k8s@${node_ip}:/etc/kubernetes/cert done 客户端安装 wget 安装软件包 source /opt/k8s/bin/environment.sh for node_ip in ${NODE_IPS[@]} do echo ">>> ${node_ip}" 下载和分发 kube-proxy 二进制文件 参考 06-0.部署master节点.md 安装依赖包 各节点需要安装 ipvsadm 和 ipset 命令,加载 ip_vs 内核模块。
get rs -n summer NAME DESIRED CURRENT READY AGE mysql-deployment-66bf8d5bf4 n summer NAME READY STATUS RESTARTS AGE mysql-deployment-66bf8d5bf4
k8s为什么叫k8s呢? 因为k8s是Kubernetes的简称,因为K和S之间有8个字母,所以才会被称为k8s。 k8s就是其中之一,在k8s之前也有很多容器管理平台,有docker自身的docker swarm,也有apache推出的Mesos等等。 关于k8s详细介绍可参考k8s中文文档 一、环境准备 主机名 IP 角色 基于服务 docker-k8s01 192.168.171.151 master docker docker-k8s02 192.168.171.150 群集 1、安装部署k8s相关工具 注:以下操作在master主机上进行 #安装k8s的master所需组件 [root@docker-k8s01 ~]# yum -y install kubelet-1.15.0 # k8s的.yaml文件存放目录 4、配置node01及node02加入master群集 #两台node节点都需执行如下操作 #安装k8s相关组件 [root@docker-k8s02 ~]# yum
# 1.编辑k8s-eureka-prod.yml 点击查看 apiVersion: v1 kind: ConfigMap metadata: name: eureka-cm data: # periodSeconds: 10 timeoutSeconds: 5 # 2.执行yml文件创建pod [root@master ~]# kubectl apply -f k8s-eureka-prod.yml RESTARTS AGE eureka-0 1/1 Running 3 6m36s eureka-1 0/1 Running 1 2m8s 3 15m eureka-1 1/1 Running 1 11m eureka-2 1/1 Running 2 8m54s
这里,我将集群管理分为以下几种:图片安装集群前置说明Kubernetes的集群安装分为:kubeadm安装和二进制安装。在这里,只会介绍kubeadm的安装。 7.9系统内核:3.10.0-1160环境准备这是安装的不是生产级别的集群,只是为了演示使用。 ="color: #75715e;line-height: 26px;">$ cat > /etc/sysctl.d/k8s.conf #75715e;line-height: 26px;"># See man pages fstab(5), findfs(8) , mount(8) and/or blkid(8) for</span
安装 Dashboard 相较之前的步骤就容易很多了。这里dashboard以Pod的形式运行,以Service的形式提供服务,以node port的方式向集群外暴露服务端口。 port,让集群外部通过node port可以访问Dashboard vi recommended.yml # 添加如下配置 nodePort: 30443 type: NodePort 安装
是实现外部访问统一入口的基础 而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础 # 1.基于DockerFile打包镜像 Dockerfile FROM adoptopenjdk/openjdk8: /urandom -jar com.summer.zuul.jar $botp"] 步骤 [root@master app]# docker build -t k8szuul:v1 . Sending build context to Docker daemon 59.23MB Step 1/6 : FROM adoptopenjdk/openjdk8:latest latest: Pulling from adoptopenjdk/openjdk8 da7391352a9b: Pull complete 14428a6d4bcd: Pull complete 2c2d948710f2 latest ---> 41e67cbb9188 Step 2/6 : ADD app /app ---> 8b55685c2d6d Step 3/6 : WORKDIR /app ---> Running
一、环境初始化 1、检查操作系统的版本 # 此方式下安装kubernetes集群要求Centos版本要在7.5或之上 [root@master ~]# cat /etc/redhat-release CentOS root@master ~]# modprobe br_netfilter # 查看网桥过滤模块是否加载成功 [root@master ~]# lsmod | grep br_netfilter 8、 kubeadm、kubelet和kubectl # 安装kubeadm、kubelet和kubectl [root@master ~] yum install --setopt=obsoletes=0 kubeadm config images list 下载镜像 此镜像在kubernetes的仓库中,由于网络原因,无法连接,下面提供了一种替代方案(先下载镜像,然后再安装K8s) images=( google_containers/$imageName docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io
git clone https://github.com/rook/rook.git
Kubeapps是Bitnami公司的一个项目,其目的是为Kubernetes的使用者们提供已经打包好的应用仪表盘,它拥有网页界面可以更方便的部署和管理 k8s 原生应用。 within your cluster: kubeapps.kubeapps.svc.cluster.local To access Kubeapps from outside your K8s clusterrole=cluster-admin --serviceaccount=default:kubeapps-operator clusterrolebinding.rbac.authorization.k8s.io -1KdLaDEzDkwvuaEQtF0i8BkhvV4gLSNCJPMJg0j6dCCiMhW_yZ0Mk7xfIkZw2VgLLUQqM3T9fgLy5sqMZhNCHTTkYn-qaL0MWf_GTJ9P9Tx1bDlJ6JAD9X36bwYXzq1dd4scZF8Nz8YYWq38U394mQbNnM72XA8ItBBj4Qf5j9YgSvpoq5xrpAxChUnl0hHLizORZWvVYee1RVDIYxYLV-KhkQkKsSduXadxkG2xCQETiaLae2qeu9Q7PFEHNobbgireLEDTOowmIusWhWcoWA 6496dd496c-7vd48 1/1 Running 0 2m2s kubeapps-internal-assetsvc-6496dd496c-8p7jm
kubernetes-dashboard-amd64:v1.10.0 docker tag docker.io/mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.0 k8s.gcr.io /kubernetes-dashboard-admin.yaml apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: kubernetes-dashboard labels: k8s-app: kubernetes-dashboard roleRef: apiGroup : rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount
这段时间已经基本实现了产品应用层从原生的springboot微服务架构迁移到k8s上,过程可谓是瞎子过河一步一个坑,但是好在系统总体能跑起来了;今天研究了下产品计算层(spark集群)如何基于k8s部署操作 本次部署spark on k8s集群,基于kubeapps,简单便捷且一步到胃: 提示 Client启动一个 pod 运行Spark Driver Spark Driver中运行main函数,并创建SparkSession 每个Kubernetes pod创建Executor,并执行应用程序代码 运行完程序代码,Spark Driver 清理 Executor 所在的 pod,并保持为“Complete”状态 # 1.安装 READY STATUS RESTARTS AGE sulky-selection-spark-client 1/1 Running 0 8s