在k8s上安装部署 argoCD 实现CD
·
第一步:安装 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
# 获取 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中添加仓库时有可能会报错,如下
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-serverPod 尝试访问 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仓库成功 如图所示


内网环境下,http的方式有可能会报错。拉取失败。在容器内直接执行 git clone 遇到 Read-only file system 是正常的 —— 这个容器出于安全考虑,根文件系统是只读的。你不应该也不需要在容器内手动克隆仓库。所以使用ssh的方式不会有这个问题。
# 生成一个新的密钥对,强制覆盖旧的(如果有)
ssh-keygen -t rsa -b 4096 -f ~/.ssh/argocd_github -N ""
这会生成两个文件:
~/.ssh/argocd_github(私钥)~/.ssh/argocd_github.pub(公钥)
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。




查看并复制私钥(包括 -----BEGIN OPENSSH PRIVATE KEY----- 和 -----END OPENSSH PRIVATE KEY-----):
bash
cat ~/.ssh/argocd_github
输出类似:
text
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAACFw...
...(多行)...
-----END OPENSSH PRIVATE KEY-----







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

更多推荐
所有评论(0)