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安裝
| 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.comDocker安裝
# 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 EOFKubernetes 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沒有與本機綁定,集群初始化的時候沒有綁定,此時設置在本機的環境變量即可解決問題。
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 podsKnative 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-servingKnative 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.yamlTekton安裝
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安装全过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PBX
- 下一篇: weblogic windows 打补丁