第一步:安装 ArgoCD

在你的 K8s 集群jxm-master01上执行:

# 创建命名空间
kubectl create namespace argocd

# 安装 ArgoCD
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

等待几分钟,让所有 Pod 启动:

kubectl get pods -n argocd

第二步:获取初始密码并访问 UI

# 获取 admin 初始密码
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo



root@jxm-master01:~# # 获取 admin 初始密码
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
xxxxx

将 ArgoCD 服务暴露到本地(临时测试用):

kubectl port-forward svc/argocd-server -n argocd 8443:443

将svc模式改为nodeport

kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'

查看svc对应的端口

root@jxm-master01:~# kubectl get svc -nargocd argocd-server 
NAME            TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)                      AGE
argocd-server   NodePort   10.96.1.216   <none>        80:32298/TCP,443:31537/TCP   19m

这个pod所在的节点+端口

浏览器访问 http://10.0.0.102:31537

在 ArgoCD 中添加 GitHub 仓库

http/https

argocd中添加仓库时有可能会报错,如下

Unable to connect HTTPS repository: error testing repository connectivity: unable to ls-remote HEAD on repository: failed to list refs: Get "https://github.com/jiangxiamiao/my-app-deploy.git/info/refs?service=git-upload-pack": dial tcp: lookup github.com on 10.96.0.10:53: server misbehaving

问题原因:

  • ArgoCD 的 argocd-repo-server Pod 尝试访问 GitHub 仓库时,需要通过 CoreDNS 解析域名。
  • CoreDNS 返回错误 server misbehaving,通常是因为:
  • CoreDNS 上游 DNS 服务器配置错误(比如无法访问外网 DNS)集群网络策略阻止了 DNS 查询
  • 这里是dns配置问题导致的。
#编辑core dns配置文件进行修改,修改成如下图
kubectl edit configmap coredns -n kube-system

#重启core dns
kubectl rollout restart deployment coredns -n kube-system

然后添加git仓库成功 如图所示

ssh

内网环境下,http的方式有可能会报错。拉取失败。在容器内直接执行 git clone 遇到 Read-only file system 是正常的 —— 这个容器出于安全考虑,根文件系统是只读的。你不应该也不需要在容器内手动克隆仓库。所以使用ssh的方式不会有这个问题。

1、在 Kubernetes 节点上生成新密钥(注意:不要加密码)
# 生成一个新的密钥对,强制覆盖旧的(如果有)
ssh-keygen -t rsa -b 4096 -f ~/.ssh/argocd_github -N ""

这会生成两个文件:

  • ~/.ssh/argocd_github(私钥)
  • ~/.ssh/argocd_github.pub(公钥)
2、查看并复制公钥,添加到 GitHub

bash

cat ~/.ssh/argocd_github.pub

完整复制这一行(以 ssh-rsa 开头,以 argocd@your-cluster 结尾)。

然后:

  • 登录 GitHub → 右上角头像 → Settings → SSH and GPG keys → New SSH key
  • Title 填 argocd,Key 粘贴刚才复制的公钥内容。
  • 点击 Add SSH key

3、在 ArgoCD 中添加仓库时,填写私钥内容

查看并复制私钥(包括 -----BEGIN OPENSSH PRIVATE KEY----- -----END OPENSSH PRIVATE KEY-----

bash

cat ~/.ssh/argocd_github

输出类似:

text

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAACFw...
...(多行)...
-----END OPENSSH PRIVATE KEY-----

在ArgoCD中创建 Application

修改github中的yaml配置,自动触发argocd的部署流程。如下图

更多推荐