云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上( 二 )


Sync:同步指将应用程序迁移到其目标状态的过程,比如通过对 Kubernetes 集群应用变更
Sync operation status:同步操作状态指的是同步是否成功
Refresh:刷新是指将 Git 中的最新代码与实时状态进行比较,弄清楚有什么不同
Health:应用程序的健康状况 , 它是否正常运行?能否为请求提供服务?
Tool:工具指从文件目录创建清单的工具,例如 Kustomize 或 Ksonnet 等
Configuration management tool:配置管理工具
Configuration management plugin:配置管理插件
环境准备概述需要安装K8S集群 , 前面文章我们分别使用KubeAdmin和Rancher部署过完整K8S集群,如果是建议测试的可以使用Kubekey快速部署一个AllInOne单节点K8S,Kubekey为kubesphere下子项目,后面在安装K9S以命令行界面方式查看和管理K8S集群 。
安装Kubekeymkdir kubekeycd kubekey# 下载最新版本v2.2.2wget https://github.com/kubesphere/kubekey/releases/download/v2.2.2/kubekey-v2.2.2-linux-amd64.tar.gztar -xvf kubekey-v2.2.2-linux-amd64.tar.gz# 解压完为有文件名为kk可执行文件,查看版本信息./kk version

云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上

文章插图
创建K8Sexport KKZONE=cn# 生成配置./kk create config --name kk-k8s
云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上

文章插图

云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上

文章插图
修改config-kk-k8s.yaml内容如下,viconfig-kk-k8s.yaml
apiVersion: kubekey.kubesphere.io/v1alpha2kind: Clustermetadata:name: kk-k8sspec:hosts:- {name: k8snode, address: 192.168.50.95, internalAddress: 192.168.50.95, user: root, password: "zijimima"}roleGroups:etcd:- k8snodecontrol-plane:- k8snodeworker:- k8snodecontrolPlaneEndpoint:## Internal loadbalancer for apiservers# internalLoadbalancer: haproxydomain: kk-k8s.api.comaddress: ""port: 6443kubernetes:version: v1.23.8clusterName: cluster.localautoRenewCerts: truecontainerManager: dockeretcd:type: kubekeynetwork:plugin: calicokubePodsCIDR: 10.233.64.0/18kubeServiceCIDR: 10.233.0.0/18## multus support. https://github.com/k8snetworkplumbingwg/multus-cnimultusCNI:enabled: falseregistry:privateRegistry: ""namespaceOverride: ""registryMirrors: []insecureRegistries: []addons: []开始创建集群
setenforce 0yum install socat conntrack ebtables ipset./kk create cluster -f config-kk-k8s.yaml
云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上

文章插图
等待一段时间安装,安装完成后打印安装完成的日志
云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上

文章插图
yum install bash-completion -y# 安装Kubectl 这个之前文章有,这里就不再说明echo "source <(kubectl completion bash)" >> ~/.bashrcsource ~/.bashrc安装K9S这里我们使用前面文章基于Rancher创建好的K8S集群
mkdir k9scd k9s# 下载最新版本v0.26.3wget https://github.com/derailed/k9s/releases/download/v0.26.3/k9s_Linux_x86_64.tar.gz# 解压文件tar -xvf k9s_Linux_x86_64.tar.gz./k9s version
云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上

文章插图
直接执行./k9s,冒号后输入也支持简写比如ns
云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上

文章插图
OpenLB
  • OpenELB 是一个开源的云原生负载均衡器实现 , 可以在基于裸金属服务器、边缘以及虚拟化的 Kubernetes 环境中使用 LoadBalancer 类型的 Service 对外暴露服务 。OpenELB 项目最初由 KubeSphere 社区[2] 发起,目前已作为 CNCF 沙箱项目[3] 加入 CNCF 基金会,由 OpenELB 开源社区维护与支持 。
  • 在 k8s 原生集群上部署 OpenELB 作为 k8s 的 LoadBalancer , 主要涉及 OpenELB 的 Layer2 模式和 BGP 模式两种部署方案 。
  • 与 MetalLB 类似,OpenELB 也拥有两种主要工作模式:Layer2 模式和 BGP 模式 。OpenELB 的 BGP 模式目前暂不支持 IPv6 。无论是 Layer2 模式还是 BGP 模式,核心思路都是通过某种方式将特定 VIP 的流量引到 k8s 集群中,然后再通过 kube-proxy 将流量转发到后面的特定服务
例如:Layer2 模式需要我们的 k8s 集群基础环境支持发送 anonymous ARP/NDP packets 。因为 OpenELB 是针对裸金属服务器设计的,因此如果是在云环境中部署,需要注意是否满足条件 。
云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上

文章插图