如何在OpenShift群集中安装ArgoCD

[*]

/ *自定义CSS * /
.tdi_3_e64.td-a-rec {
文本对齐:居中;
} .tdi_3_e64 .td-element-style {
z索引:-1;
} .tdi_3_e64.td-a-rec-img {
文字对齐:左;
} .tdi_3_e64.td-a-rec-img img {
保证金:0自动0 0;
} @Media(最大宽度:767px){
.tdi_3_e64.td-a-rec-img {
文本对齐:居中;
}
}

这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。

将指南下载为PDF


这是续集。

这是续集。
这是续集。

如果将警报模式用于应用程序开发和部署自动化趋势,则应阅读有关GitOps的信息。 GitOps是用于云本机应用程序的连续部署方法。它专注于以开发人员为中心的基础架构操作,并使用开发人员已经熟悉的工具,例如Git和持续部署工具。

Argo CD是用于Kubernetes的声明性GitOps连续交付工具。那是 GitOps 一种模式,它使用Git存储库作为事实来源来定义应用程序的所需状态。 ArgoCD要求对应用程序定义,配置和环境进行声明和版本控制。

Argo CD可在指定的目标环境中自动部署所需的应用程序状态。对于应用程序部署,您可以跟踪分支和标签更新,或者通过Git提交固定到特定版本清单。

[*]

/ *自定义CSS * /
.tdi_2_cac.td-a-rec {
文本对齐:居中;
} .tdi_2_cac .td-element-style {
z索引:-1;
} .tdi_2_cac.td-a-rec-img {
文字对齐:左;
} .tdi_2_cac.td-a-rec-img img {
保证金:0自动0 0;
} @Media(最大宽度:767px){
.tdi_2_cac.td-a-rec-img {
文本对齐:居中;
}
}

在OpenShift群集中安装ArgoCD

请按照以下步骤在OpenShift Container Platform上安装ArgoCD。

步骤1:创建项目名称空间

ArgoCD必须在该名称空间中运行。创建它:

--- With oc command ---
$ oc create namespace argocd

--- With kubectl command ---
$ kubectl create namespace argocd

您必须配置kubectl才能运行命令。请参阅下面的指南。

使用kubectl和kubectx轻松管理多个Kubernetes集群

步骤2:将ArgoCD清单应用于OpenShift

然后,您可以运行安装清单以使用OpenShift进行ArgoCD的实际安装。

--- With oc command ---
mkdir argocd
cd argocd
wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
oc apply -n argocd -f ./install.yaml

--- With kubectl command ---
mkdir argocd
cd argocd
wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
kubectl apply -n argocd -f ./install.yaml

执行输出:

customresourcedefinition.apiextensions.k8s.io/applications.argoproj.io created
customresourcedefinition.apiextensions.k8s.io/appprojects.argoproj.io created
serviceaccount/argocd-application-controller created
serviceaccount/argocd-dex-server created
serviceaccount/argocd-server created
role.rbac.authorization.k8s.io/argocd-application-controller created
role.rbac.authorization.k8s.io/argocd-dex-server created
role.rbac.authorization.k8s.io/argocd-server created
clusterrole.rbac.authorization.k8s.io/argocd-application-controller created
clusterrole.rbac.authorization.k8s.io/argocd-server created
rolebinding.rbac.authorization.k8s.io/argocd-application-controller created
rolebinding.rbac.authorization.k8s.io/argocd-dex-server created
rolebinding.rbac.authorization.k8s.io/argocd-server created
clusterrolebinding.rbac.authorization.k8s.io/argocd-application-controller created
clusterrolebinding.rbac.authorization.k8s.io/argocd-server created
configmap/argocd-cm created
configmap/argocd-rbac-cm created
configmap/argocd-ssh-known-hosts-cm created
configmap/argocd-tls-certs-cm created
secret/argocd-secret created
service/argocd-dex-server created
service/argocd-metrics created
service/argocd-redis created
service/argocd-repo-server created
service/argocd-server-metrics created
service/argocd-server created
deployment.apps/argocd-application-controller created
deployment.apps/argocd-dex-server created
deployment.apps/argocd-redis created
deployment.apps/argocd-repo-server created
deployment.apps/argocd-server created

广告连播将在几秒钟或几分钟内启动。

$ oc get pods -n argocd
NAME                                             READY   STATUS    RESTARTS   AGE
argocd-application-controller-56cc786677-jmlr7   1/1     Running   0          110s
argocd-dex-server-9755c5c9c-mpg8g                1/1     Running   0          110s
argocd-redis-8c568b5db-r6ffj                     1/1     Running   0          110s
argocd-repo-server-778f98fc8f-7gttj              1/1     Running   0          110s
argocd-server-7696cd5f89-v66rn                   1/1     Running   0          110s

将Dex中使用的图像替换为包含OpenShift连接器的图像。

oc -n argocd patch deployment argocd-dex-server  -p '{"spec": {"template":  {"spec": {"containers": [{"name": "dex","image": "quay.io/redhat-cop/dex:v2.22.0-openshift"}]}}}}'

通过运行以下命令来验证更新的Dex Pod是否正在运行。

oc get pods -l=app.kubernetes.io/name=argocd-dex-server

步骤3:获取ArgoCD服务器的密码

确认所有Pod都在运行后,您将获得自动生成的ArgoCD服务器的初始密码。

ARGOCD_SERVER_PASSWORD=$(oc -n argocd get pod -l "app.kubernetes.io/name=argocd-server" -o jsonpath='{.items[*].metadata.name}')

确认密码已保存。

$ echo $ARGOCD_SERVER_PASSWORD
argocd-server-7696cd5f99-v86rn

步骤4:使用OpenShift Route发布ArgoCD服务器

为了通过OpenShift根目录公开服务,OpenShift必须修补ArgoCD服务器部署。

oc -n argocd patch deployment argocd-server -p '{"spec":{"template":{"spec":{"$setElementOrder/containers":[{"name":"argocd-server"}],"containers":[{"command":["argocd-server","--insecure","--staticassets","/shared/app"],"name":"argocd-server"}]}}}}'

你应该得到 已修补 如果成功,则输出。

deployment.apps/argocd-server patched

接下来,发布ArgoCD服务器。

oc -n argocd create route edge argocd-server --service=argocd-server --port=http --insecure-policy=Redirect

确认路由已创建。

$ oc get route -n argocd
NAME            HOST/PORT                                         PATH   SERVICES        PORT   TERMINATION     WILDCARD
argocd-server   argocd-server-argocd.apps.mycluster.example.com          argocd-server   http   edge/Redirect   None

通过运行以下命令转到指定位置,验证您可以访问Web控制台。

echo https://$(oc get routes argocd -o=jsonpath='{ .spec.host }')

您可以即时编辑yaml设置以更新您的路线中使用的主机名。

$ oc edit route -n argocd

步骤5:下载Argo CD CLI

从下载最新版本的Argo CD 释放 页。

VERSION=$(curl --silent "https://api.github.com/repos/argoproj/argo-cd/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/1/')
curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/download/$VERSION/argocd-linux-amd64

使argocd CLI可执行。

sudo chmod +x /usr/local/bin/argocd

检查客户端版本。

$ argocd version --client
argocd: v1.5.5+0fdef48
  BuildDate: 2020-05-16T04:02:57Z
  GitCommit: 0fdef4861e12026e133224f7c9413072340e2983
  GitTreeState: clean
  GoVersion: go1.14.1
  Compiler: gc
  Platform: linux/amd64

使用用户名 管理员 登录Argo CD IP或主机名的密码:

--- Get route ---
ARGOCD_ROUTE=$(oc -n argocd get route argocd-server -o jsonpath='{.spec.host}')

--- Get Admin password ---
ARGOCD_SERVER_PASSWORD=$(oc -n argocd get pod -l "app.kubernetes.io/name=argocd-server" -o jsonpath='{.items[*].metadata.name}')

--- Login to ArgoCD API ---
argocd --insecure --grpc-web login ${ARGOCD_ROUTE}:443 --username admin --password ${ARGOCD_SERVER_PASSWORD}

使用以下命令更改密码:

argocd --insecure --grpc-web --server ${ARGOCD_ROUTE}:443 account update-password --current-password ${ARGOCD_SERVER_PASSWORD} --new-password

步骤6:访问ArgoCD仪表板

然后,您可以使用根URL访问ArgoCD控制台。

登录凭据是

用户名: 管理员

初始密码可以通过以下方法获得。

kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o name | cut -d'/' -f 2

登录后,将显示ArgoCD仪表板。

如何在OpenShift群集中安装ArgoCD

步骤7:将ArgoCD与OpenShift身份验证集成

我读 OpenShift身份验证与ArgoCD的集成 完全集成指南。

有关如何使用ArgoCD GitOps工具部署应用程序的说明,请参阅ArgoCD文档页面。另一个有用的资源是 入门 页。

其他Kubernetes / OpenShift文章:

如何使用Kompose将Docker Compose应用程序迁移到Kubernetes

使用Kubernetes / OpenShift运行Rook的Ceph工具箱

将Harbor Image Registry Pull Secret添加到Kubernetes / OpenShift

如何在OpenShift和Kubernetes中检查Pod /容器指标

这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。

将指南下载为PDF


这是续集。

这是续集。
这是续集。

[*]
/ *自定义CSS * /
.tdi_4_570.td-a-rec {
文本对齐:居中;
} .tdi_4_570 .td-element-style {
z索引:-1;
} .tdi_4_570.td-a-rec-img {
文字对齐:左;
} .tdi_4_570.td-a-rec-img img {
保证金:0自动0 0;
} @Media(最大宽度:767px){
.tdi_4_570.td-a-rec-img {
文本对齐:居中;
}
}

Sidebar