Knative v0.16.0安装全过程

文章目录

前言

Knative是构建在容器、kubernetes以及Istio的基础之上的Serverless解决方案。Knative有两个组件,它们既可以各自独立安装部署,也可以一起安装相互配合。

基本环境搭建

Knative 0.16版本需要kubernetes 1.15以上版本的支持。

软件版本
Kubernetes1.23.15
Istio1.6.8
Knative Serving1.8.3
Knative Eventing0.16.0
Tekton Pipeline0.16.3
Tekton Trigger0.8.1
Tekton Dashboard0.10.0

Kubernetes安装

主机名IP操作系统硬件配置
master192.168.1.91centos74CPU RAM:6GB
node1192.168.1.92centos74CPU RAM:6GB
node2192.168.1.93centos74CPU RAM:6GB

常规配置(三台虚拟机均需进行配置)

关闭防火墙
# systemctl disable firewalld
# systemctl stop firewalld
关闭Selinux
# sed -i 's/enforcing/disabled/' /etc/selinux/config
禁用swap
# sed -ri 's/.*swap.*/#&/' /etc/fstab
配置域名解析
# cat >> /etc/hosts <<EOF
192.168.1.91     master
192.168.1.92     node1
192.168.1.93     node2
EOF
将桥接的IPv4流量传递到iptables的链
# cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
EOF
# modprobe br_netfilter
# lsmod | grep br_netfilter
# sysctl --system
配置ipvs功能

在kubernetes中service有两种代理模型,一种是基于iptables,另一种是基于ipvs的。ipvs的性能要高于iptables的,但是如果要使用它,需要手动载入ipvs模块。

# yum -y install ipset ipvsadm
# cat > /etc/sysconfig/modules/ipvs.modules <<EOF
	#!/bin/bash
	modprobe -- ip_vs
	modprobe -- ip_vs_rr
	modprobe -- ip_vs_wrr
	modprobe -- ip_vs_sh
	modprobe -- nf_conntrack_ipv4
	EOF
# chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4 
配置时间同步
# 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
# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://qdzgikwk.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如果有什么学习感悟,还是会更新的。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Asset Studio v0.16.0是一个用于处理和管理可视化素材的软件。它提供了许多功能,方便用户创建、导入和编辑各种类型的素材。 首先,Asset Studio v0.16.0允许用户创建自定义的二维和三维精灵。通过简单的操作,用户可以选择颜色、形状和纹理等属性来定制自己的精灵。同时,用户还可以通过调整光照和阴影效果来进一步增强精灵的表现力和逼真感。 此外,Asset Studio v0.16.0还支持导入外部素材。用户可以将自己喜欢的图片、视频或模型文件导入到软件中进行处理和编辑。通过调整大小、裁剪、旋转和变换等功能,用户可以对导入的素材进行自定义处理,以满足自己的设计需求。 此外,Asset Studio v0.16.0还具有强大的渲染和效果功能。用户可以根据需要选择不同的渲染器,如标准、物理和路径追踪渲染器,以实现高质量的渲染效果。此外,软件还提供多种效果预设,如模糊、阴影和光效等,用户可以轻松应用到素材中,使其更加丰富和生动。 另外,Asset Studio v0.16.0还支持多种输出格式。用户可以选择将素材导出为常见的图像格式,如JPEG和PNG,或者导出为视频文件,如MP4和AVI。而且,软件还支持与其他设计软件的兼容性,用户可以将处理好的素材无缝地导入到其他软件中进行二次编辑或合成。 综上所述,Asset Studio v0.16.0是一款功能强大的可视化素材处理和管理软件,通过它,用户可以轻松创建、导入和编辑不同类型的素材,并实现高质量的渲染和效果。无论是新手还是专业人士,都能够通过这个软件实现自己的创意和设计需求。 ### 回答2: Asset Studio是一个由Google开发的工具集,用于处理Android应用程序中使用的各种资源。v0.16.0是Asset Studio的一个特定版本。 Asset Studio将多种资源处理功能整合在一起,方便开发者创建、修改和管理Android应用程序的各种资源,包括图标、启动图、通知图标、动画资源等。通过图形化界面,开发者可以轻松导入、处理和导出各种资源,无需复杂的命令行操作。同时,Asset Studio还提供了各种选项和调整参数,以满足不同的需求。 在v0.16.0版本中,Asset Studio可能增加了一些新的功能、修复了一些bug,或者改进了现有功能的性能和稳定性。具体的改动内容可以在版本发布的说明文档中查看,这些改动可能是根据开发者的反馈或者项目需要而进行的。无论是添加新功能还是修复问题,这些更新都有助于提高Asset Studio的使用体验,并且使开发者能够更加高效地处理资源。 总之,Asset Studio v0.16.0是一个用于处理Android应用程序中各种资源的工具集的特定版本,它提供了图形化界面和各种功能,方便开发者导入、处理和导出资源,并能够根据需求进行调整和定制。 ### 回答3: assetstudio.v0.16.0 是一个软件的版本号。它可能是一个用于管理和处理资产的工具或平台。v0.16.0 意味着这是该软件的第16个版本中的第0个次要更新版本。 这个版本号通常表示在之前的版本上进行一些改进和修复。通常情况下,在每个版本中都会添加新功能、改进性能、修复漏洞以及提高用户体验。 对于 assetstudio.v0.16.0,可能的改进包括增加对新的资产文件格式的支持、提供更加易用和直观的用户界面、改进资产管理的效率和稳定性等等。 对于用户来说,升级到新的版本可能会带来更好的工作效果和体验。更高版本的软件通常会修复一些之前版本的问题,提供更多的功能选项,并且可能会增强性能和安全性。 然而,用户升级到新版本时也需要留意一些潜在的问题,例如兼容性问题、软件稳定性和性能是否得到改进、是否需要学习新的功能等等。因此,在升级之前,建议用户先了解该版本的具体改进和用户反馈,以确定是否需要升级。 总的来说,assetstudio.v0.16.0 是一个资产管理和处理软件的版本号,它可能提供了一些新功能和改进,提高了用户体验和工作效果。但用户在升级时需要综合考虑各种因素,并确保做好备份和测试工作,以确保顺利进行升级。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值