Knative v0.16.0安装全过程
文章目录
- 前言
- 基本环境搭建
- Kubernetes安装
- 常规配置(三台虚拟机均需进行配置)
- 关闭防火墙
- 关闭Selinux
- 禁用swap
- 配置域名解析
- 配置桥接流量转发
- 配置时间同步
- Docker安装
- 配置docker镜像仓库加速
- 修改防火墙规则
- 配置k8s源仓库
- Kubernetes Master配置
- 部署kubelet、kubeadm、kubectl
- 部署Kubernetes Master
- 建立k8s管理用户
- 配置k8s用户连接
- 验证配置
- k8s node配置
- 部署kubelet、kubeadmin
- 加入k8s集群
- 配置k8s集群网络
- 部署kubernetes控制台
- 配置登录Token
- Istio平台部署
- 安装istioctl命令工具
- 编写IstioOperator自定义配置文件
- 应用配置清单
- 验证已部署的Istio服务运行状态
- Knative Serving安装
- 安装Knative Serving CRD
- 安装Knative Serving核心组件
- 安装Knative网络层Istio控制器,实现Istio与Knative集成
- 安装HPA自动缩放扩展
- 检查Knative Serving相关服务运行状态
- Knative Eventing安装
- 安装Knative Eventing CRD
- 安装Knative Eventing核心组件
- 安装默认Channel层
- 安装Broker层
- 检查Knative Eventing相关服务运行状态
- 安装可观察组件
- 为可观察行组件创建命名空间
- 安装Prometheus和Grafana
- 安装EFK日志收集处理中心
- 安装Jaeger实现分布式追踪
- Tekton安装
- Tekton Pipeline安装
- 安装Tekton的核心组件Pipeline
- 验证Pipeline组件运行状态
- 为PipelineResources配置存储
- Tekton Dashborad安装
- 为Tekton 安装 Dashborad UI
- 验证Dashboard组件运行状态
- 访问TektonDashboard
- Tekton Trigger安装
- 为Tekton安装Trigger
- 验证Trigger组件运行状态
前言
Knative是构建在容器、kubernetes以及Istio的基础之上的Serverless解决方案。Knative有两个组件,它们既可以各自独立安装部署,也可以一起安装相互配合。
基本环境搭建
Knative 0.16版本需要kubernetes 1.15以上版本的支持。
软件 | 版本 |
---|---|
Kubernetes | 1.23.15 |
Istio | 1.6.8 |
Knative Serving | 1.8.3 |
Knative Eventing | 0.16.0 |
Tekton Pipeline | 0.16.3 |
Tekton Trigger | 0.8.1 |
Tekton Dashboard | 0.10.0 |
Kubernetes安装
主机名 | IP | 操作系统 | 硬件配置 |
---|---|---|---|
master | 192.168.1.91 | centos7 | 4CPU RAM:6GB |
node1 | 192.168.1.92 | centos7 | 4CPU RAM:6GB |
node2 | 192.168.1.93 | centos7 | 4CPU RAM:6GB |
常规配置(三台虚拟机均需进行配置)
关闭防火墙
# systemctl disable firewalld
# systemctl stop firewalld
关闭Selinux
# vim /etc/sysconfig/selinux
将SELINUX=enforcing改为SELINUX=disabled
禁用swap
# swapoff -a
# vim /etc/fstab
如图所示将其中关于交换分区的项目注释掉,防止操作系统重新启动后自动挂载交换分区。
配置域名解析
# cat >> /etc/hosts <<EOF
192.168.1.91 master
192.168.1.92 node1
192.168.1.93 node2
EOF
配置桥接流量转发
# cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# sysctl --system
配置时间同步
# yum install ntpdate -y
# ntpdate time.windows.com
Docker安装
# curl https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
# yum install -y docker-ce
# systemctl enable docker && systemctl start docker
配置docker镜像仓库加速
# sudo mkdir -p /etc/docker
# sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://qdzgikwk.mirror.aliyuncs.com"]
}
EOF
# vim /etc/docker/daemon.json
{"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"]
}
## systemctl daemon-reload
# systemctl restart docker
这一部分需要在阿里云官网注册账号,进入控制台,搜索容器镜像服务,接着点击镜像工具栏中的镜像加速器,获取个人的加速器配置文件,进行配置。
修改防火墙规则
Docker从1.13版本开始调整了默认的防火墙规则,禁用了iptables的filter表中FOWARD链,这样会引起Kubernetes集群中跨节点的Pod无法通信。
# iptables -P FORWARD ACCEPT
# iptables-save
配置k8s源仓库
# 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=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes /yum/doc/rpm-package-key.gpg
EOF
Kubernetes Master配置
部署kubelet、kubeadm、kubectl
# yum install -y kubelet-1.23.15 kubeadm-1.23.15 kubectl-1.23.15
# systemctl enable kubelet
部署Kubernetes Master
# kubeadm init \
--apiserver-advertise-address=192.168.1.91 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.15 \
--service-cidr=11.62.0.0/16 \
--pod-network-cidr=11.55.0.0/16
-–apiserver-advertise-address:集群通告地址
-–image-repository:由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
-–kubernetes-version: K8s版本,与上面安装的一致
-–service-cidr :集群内部虚拟网络,Pod统一访问入口
-–pod-network-cidr Pod:网络,需要与接下来部署的CNI网络组件yaml中保持一致
安装完成后,运行docker images 命令,可见到如下输出
如果安装成功,可见到如下输出
关注最后的kudeadm join命令,等会将用到
建立k8s管理用户
# useradd kadmin
配置k8s用户连接
# mkdir -p /home/kadmin/.kube
# cp /etc/kubernetes/admin.conf /home/kadmin/.kube/config
# chown kadmin:kadmin -R /home/kadmin/.kube
验证配置
# su - kadmin
$ kubectl get ns
如果要登出,输入exit即可
k8s node配置
部署kubelet、kubeadmin
# yum install -y kubelet-1.23.15 kubeadm-1.23.15
# systemctl enable kubelet
加入k8s集群
# kubeadm join 192.168.1.91:6443 --token ibgw9p.a3n4on6c05t2prbs \
--discovery-token-ca-cert-hash sha256:903d9e59b49e7db455a8b353ed5ae3d8368502792e8edc7d ad62f00d509a2911
加入完成之后,可见到如下输出
配置k8s集群网络
# curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -o /tmp/calico.yaml
取消注释 CALICO_IPV4POOL_CIDR,并将其值设置为kubernetes的pod-network-cidr的值
# kubectl apply -f /tmp/calico.yaml
如果出现如下问题
原因:kubernetes master没有与本机绑定,集群初始化的时候没有绑定,此时设置在本机的环境变量即可解决问题。
# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile
# source /etc/profile
kubectl apply命令执行成功,可见到如下输出
部署kubernetes控制台
# curl -ls https://gitee.com/xiaojinran/k8s/raw/master/k8s-dashboard/dashboard.yaml -o /tmp/k8s-dashboard.yaml
# kubectl apply -f /tmp/k8s-dashboard.yaml
配置登录Token
# kubectl create serviceaccount dashboard-admin -n kube-system
# kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
# kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
Istio平台部署
当前Knative支持的网络层组件有Ambassdor、Contour、Gloo、Istio、Kong、Kourier
安装istioctl命令工具
# curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.6.8 sh -
# cd istio-1.6.8${ISTIO_VERSION}
# export PATH=$PWD/bin:$PATH
编写IstioOperator自定义配置文件
# cat << EOF > ./istio-minimal-operator.yaml
应用配置清单
# istioctl manifest apply -f istio-minimal-operator.yaml
验证已部署的Istio服务运行状态
# watch kubectl -n istio-system get pods
Knative Serving安装
安装Knative Serving CRD
# kubectl apply -f \
https://github.com/knative/serving/releases/download/v0.16.0/serving-crds.yaml
安装Knative Serving核心组件
# kubectl apply -f \
https://github.com/knative/serving/releases/download/v0.16.0/serving-core.yaml
安装Knative网络层Istio控制器,实现Istio与Knative集成
# kubectl apply -f \
https://github.com/knative/net-istio/releases/download/v0.16.0/release.yaml
安装HPA自动缩放扩展
# kubectl apply -f \
https://github.com/knative/serving/releases/download/v0.16.0/serving-hpa.yaml
检查Knative Serving相关服务运行状态
# watch kubectl get pods -n knative-serving
Knative Eventing安装
安装Knative Eventing CRD
# kubectl apply -f \
https://github.com/knative/eventing/releases/download/v0.16.0/eventing-crds.yaml
安装Knative Eventing核心组件
# kubectl apply -f \
https://github.com/knative/eventing/releases/download/v0.16.0/eventing-core.yaml
安装默认Channel层
# kubectl apply -f \
https://github.com/knative/eventing/releases/download/v0.16.0/in-memory-channel.yaml
安装Broker层
# kubectl apply -f \
https://github.com/knative/eventing/releases/download/v0.16.0/mt-channel-broker.yaml
检查Knative Eventing相关服务运行状态
# watch kubectl get pods -n knative-eventing
安装可观察组件
为可观察行组件创建命名空间
# kubectl apply -f \
https://github.com/knative/serving/releases/download/v0.16.0/monitoring-core.yaml
安装Prometheus和Grafana
# kubectl apply -f \
https://github.com/knative/serving/releases/download/v0.16.0/monitoring-metrics-prometheus.yaml
安装EFK日志收集处理中心
# kubectl apply -f \
https://github.com/knative/serving/releases/download/v0.16.0/monitoring-logs-elasticsearch.yaml
安装Jaeger实现分布式追踪
# kubectl apply -f \
https://github.com/knative/serving/releases/download/v0.16.0/monitoring-tracing-jaeger-in-mem.yaml
Tekton安装
Tekton Pipeline安装
安装Tekton的核心组件Pipeline
# kubectl apply -f \
https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.16.3/release.yaml
验证Pipeline组件运行状态
# kubectl get pods -n tekton-pipelines
为PipelineResources配置存储
# cat <<EOF | kubectl apply -f -
Tekton Dashborad安装
为Tekton 安装 Dashborad UI
# kubectl apply -f \
https://storage.googleapis.com/tekton-releases/dashboard/previous/v0.10.0/tekton-dashboard-release.yaml
验证Dashboard组件运行状态
# kubectl get pods -n tekton-pipelines
访问TektonDashboard
# kubectl --namespace tekton-pipelines \
port-forward svc/tekton-dashboard 9097:9097 --address=<Kubernetes 节点 IP>
Tekton Trigger安装
为Tekton安装Trigger
# kubectl apply -f \
https://github.com/tektoncd/triggers/release/download/v0.8.1/release.yaml
验证Trigger组件运行状态
# kubectl get pods -n tekton-pipelines
最近要开始做项目了,以后可能更多的是别的平台了,比如Fn Project或者OpenWhisk,Knative如果有什么学习感悟,还是会更新的。
Knative v0.16.0安装全过程相关推荐
- kubenetes 1.16.0安装kubernetes-dashboard v2.0.0-beta4
kubenetes github :https://github.com/kubernetes/dashboard/releases kubenetes官网:https://kubernetes.io ...
- Navicat Premium 12.1.16.0 安装与激活
1.Navicat Premium12.1.16.0 与 注册机下载 下载地址:https://pan.baidu.com/s/1HfS9SGNkUK4d5f0nmnYt1A 提取码:tcr0 2.安 ...
- ubuntu 16.0安装mysql8_ubuntu16.0.4 安装 mysql8.0.18的
1.下载mysql.tar.xz 文件 image.png image.png 2.解压到/usr/local/目录,并将文件夹重命名为mysql #解压 sudo tar xvf mysql-8.0 ...
- ubuntu 16.0安装ros-kinetic
1.设置sources.list sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) ma ...
- Knative v1.0.x安装全过程
Knative入门初探风采--新手安装教程 提示:本章为第一篇文章,后续更新时间不定,主要取决于博主进度 文章目录 Knative入门初探风采--新手安装教程 前言 1 Knative v1.0.x安 ...
- SUSE 11 安装sybase ASE 16.0 SP 02安装全过程
SUSE系统下安装Sybase数据库 参考文档: https://wiki.deepin.io/mediawiki/index.php?title=Sybase_%E5%AE%89%E8%A3%85% ...
- CentOS 6.0图解网络安装全过程
转自CentOS 6.0图解网络安装全过程 国内镜像站点(东北大学.网易) 网易镜像站点:http://mirrors.163.com/centos/6.0/isos/ 中科大镜像站点:http:/ ...
- VM虚拟机7.0,下载——安装全过程。
因为本文是从Qzone转载的,如果图片无法打开,请先点击导航栏上的相册,进入Qzone后,再打开本文即可 虚拟机7.0版本,下载,安装全过程! 需要用到的:1:VMware-workstation-f ...
- win10安装misql8_Win10下免安装版MySQL8.0.16的安装和配置教程图解
1.MySQL8.0.16解压 其中dada文件夹和my.ini配置文件是解压后手动加入的,如下图所示 2.新建配置文件my.ini放在D:\Free\mysql-8.0.16-winx64目录下 [ ...
最新文章
- 个人博客打不开时检查下github.com的ip地址是否更改/修改博客内容字体、颜色及大小
- 创建Okhttp自定义Log
- java基础之冒泡排序
- Android开发中StackOverflowError错误实例分析
- html5 测评游戏,暗黑之王评测:HTML5游戏铸就最华丽ARPG冒险
- tfs文件系统之NS配置管理
- 【Pytorch神经网络实战案例】20 基于Cora数据集实现图卷积神经网络论文分类
- 使用PostgREST构建PostgreSQL数据库的REST风格API
- 01 离散时间信号的时域表示
- 用netbeans开发Swing程序,添加自定义控件
- android 播放3gp音频,Android的Media(录音,播放音乐,播放视频等)
- XeLatex在window上编译较慢的解决方法
- Mac 上“预览”中的键盘快捷键
- android app与gprs通信,gprs连接管理app
- Win10重装系统/迁移系统,教你如何简单快速删除原系统文件
- 强势崛起!这所年轻大学南科大,是中国高教的奇迹!
- adreno630gpu参数_高通骁龙AdrenoGPU天梯以及直观分析,推荐。
- java 中国地图_高级UI-svg实现可交互的中国地图
- 【WIN10蓝屏】win10系统蓝屏原因调查
- 优信拍集团php面试题_【优信拍PHP高级工程师面试】优信二手车PHP面试经验。-看准网...