首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Argo CD 实践教程 06

Argo CD不直接使用任何数据库(Redis被用作缓存),所以它看起来没有任何状态。之前,我们看到了如何实现高可用性的安装,主要是通过增加每个部署的副本数量来完成的。但是,我们也有应用程序定义(如Git源集群和目标集群),以及关于如何访问Kubernetes集群或如何连接到私有Git回购或私有帮助集群的详细信息。这些东西构成了Argo CD的状态,它们保存在Kubernetes资源中——要么是本地资源,比如连接细节的秘密,要么是应用程序和应用程序约束的自定义资源。 灾难可能会由于人工干预而发生,例如Kubernetes集群或Argo CD名称空间正在被删除,或者可能是一些云提供商出现的问题。我们也可能有要将Argo CD安装从一个集群移动到另一个集群的场景。例如,也许当前的集群是用我们不想再支持的技术创建的,比如kubeadm(https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/),现在我们想转移到云提供商管理的技术。 你可能会出现在脑海中:“但我认为这是GitOps,所以一切都保存在Git回购中,这意味着它很容易重新创建?”首先,并不是所有的东西都被保存到Git回购中。例如,当在Argo CD中注册一个新集群时,我们必须运行一个命令,使这些详细信息不在Git中(出于安全原因,这是可以的)。其次,重新创建GitOps回购中的一切可能需要很多时间——可能有数千个应用程序、数百个集群和成千上万的Git回购。更好的选择可能是从备份中恢复到以前的所有资源,而不是从头开始重新创建所有的资源;这样做要快得多。

03

python通过python-gitla

#/usr/bin/python #coding=utf-8 import gitlab plist = '' def allprojects():     #######获取gitlab的所有projects###     projects = gl.projects.list(all=True)     for project in projects:         print project.name,project.id def allgroups():     #######获取gitlab的所有group名称以及ID###     all_groups = gl.groups.list(all=True)     for group in all_groups:         print group.name,group.id def allusers():     #######获取gitlab的所有user名称以及ID###     users = gl.users.list(all=True)     for user in users:         print user.username,user.id,user.name,user.state def assgroup():     #######获取gitlab指定组内所有user以及project名称以及ID信息,本例中组ID为58###     gid = int(raw_input('Input the group ID: '))     group = gl.groups.get(gid)     print group.name     #members = group.members.list(all=True)     #for me in members:     #    print me.username,me.id     projects = group.projects.list(all=True)     for project in projects:         print group.name,project.name     ####################################### def projectinfo():     pid = int(raw_input('Input the project ID: '))     projects = gl.projects.get(pid)     print projects.name,projects.http_url_to_repo def projectid():     gid = int(raw_input('Input the group ID: '))     group = gl.groups.get(gid)     repo = str(raw_input('Input your repo name: '))     project = gl.projects.get(group.name + '/' + repo)     print project.id def assuser():     #######获取gitlab指定user###     uid = int(raw_input('Input the user ID: '))     user = gl.users.get(uid)     print user.name if __name__ == '__main__':     gl = gitlab.Gitlab('http://10.50.22.22/', private_token='xxxxxxxxxxj')     info = {1:'allprojects()',2:'allgroups()',3:'allusers()',4:'projectinfo()',5:'projectid()',6:'assuser()',7:'assgroup()'}     serp = '-' * 20     print '''%s 1. 列出所有的projects 2. 列出所有的groups 3. 列出所有的users 4. 根据project的ID列出project的所有信息 5. 列出指定的project ID 6. 列出指定的user 7. 列出指定的组内的信息   %s''' % (serp,serp)     num = int(raw_input('Input yout choice: '))     exec info[num]

01
领券