搜索

jenkins 整合k8s - FLOWERS_WAN - 博客园


发布时间: 2022-11-24 18:27:05    浏览次数:78 次

1. jenkins 添加SSH Server ,把k8s的master主机添加进k8s。

 

 

 

 

2. 将pipeline文件添加进gitab,并且增加tag标签

 

3. 修改jenkinsfile文件stage步骤。

 

 

 

4. 配置ssh 无密码登入,生成公钥和秘钥

[root@localhost .ssh]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:dEOIy7GOvXLWhwb3r4o3gtcGJmX+iyqMGlSMviBJqvY root@localhost
The key's randomart image is:
+---[RSA 2048]----+
|       . ..      |
|  o   o ..       |
| o o . +. o      |
|+..   *. . .     |
|=o   B  S        |
|= . o B .        |
|o=   + O o       |
|o.+ o *oX o      |
|o  E.*o=o=.o.    |
+----[SHA256]-----+

 

4. 把 /root/.ssh中的id_rsa.pub 拷贝到需要登入的目标服务器中的/root/.ssh/ authorized_keys

[root@localhost .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyrgSRxWn5kuTtKMbVVEM/PITxbkkRoulrymPlz4CJ9fNwXgRul0v0hIy1vR6W0Y+7IfpmBnp1b8gwVjQskUvIEQUfy243G5Oca5E1M5aRFS/qqtGZaQNYqIiS+kk/3oFJm7xn8vGnpqjGOgPdeVhnrHYzAO37q+ZtXxZNbsiGSmsVM+6ykmPeAyZg7sTDYWvD8aovTFL67wgWTA8lKDbx8yBoZWIxPHFbh4T0np
l8S5dLZhGfoPIIFaji56KHixueOjWmlgcJIdjorIKtMfCHSkaWMaD4nfUTbdwzZuFPjMLjW5z1oHS8r49/bf7Wc+7MI5sbiJNgJ1yh2jwp7W9v

[root@k8s-master01 .ssh]# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyrgSRxWn5kuTtKMbVVEM/PITxbkkRoulrymPlz4CJ9fNwXgRul0v0hIy1vR6W0Y+7IfpmBnp1b8gwVjQskUvIEQUfy243G5Oca5E1M5aRFS/qqtGZaQNYqIiS+kk/3oFJm7xn8vGnpqjGOgPdeVhnrHYzAO37q+ZtXxZNbsiGSmsVM+6ykmPeAyZg7sTDYWvD8aov
TFL67wgWTA8lKDbx8yBoZWIxPHFbh4T0npl8S5dLZhGfoPIIFaji56KHixueOjWmlgcJIdjorIKtMfCHSkaWMaD4nfUTbdwzZuFPjMLjW5z1oHS8r49/bf7Wc+7MI5sbiJNgJ1yh2jwp7W9v

 

5.测试是否成功。

[root@localhost .ssh]# ssh root@192.168.30.117 ls /usr/local/k8s
pipeline.yml

6.生成pipeline流水线脚本

 

 

 

 

7.修改jenkinfile,添加步骤。

stage('远程执行k8s-master的kubectl命令') {
            steps {
                sh 'ssh root@192.168.30.117 kubectl apply -f /usr/local/k8s/pipeline.yml'
            }
        }

 

8. 统一jenkinsfile和pipeline文件中的版本。

 

 

 

 

9. 编译后报错,故障原因为

首先确认

  1. Jenkins的Git使用的ssh, 不需要预先记录known_hosts, 配置好就可以直接用
  2. SSH Agent必须要先在命令行下访问一下对方IP, 记录了known_hosts后, 才能正常使用因为安装为服务的Jenkins使用的是jenkins用户,而且是/bin/false的用户, 不能像普通用户那样登录然后ssh一下对方IP, 你需要按以下方式处理

 

 

 [root@localhost .ssh]# su -s /bin/bash jenkins

bash-4.2$ cd /var/lib/jenkins/.ssh/

bash-4.2$ ssh root@192.168.30.117
Last login: Sat Oct 15 19:28:07 2022 from 192.168.30.107

# 查看.ssh下是否已经有known_hosts, 有的话, 是什么内容, 正常情况下, 这时候是没有对应IP记录的

[root@localhost .ssh]# cat known_hosts
192.168.30.117 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNjhibYp5lVtJpJePhjiSNrbA4xqJh7VvZ+2tZnPGHHCitf1Qh6w3IklhugTPe/03

 

10 编译后第二个报错

 

 因为使用ssh执行命令和登录后执行Linux所加载的环境变量不同,在使用ssh执行命令时没有加载/etc/profile的环境变量。

vim /root/.bashrc 添加如下行。

 

免责声明 jenkins 整合k8s - FLOWERS_WAN - 博客园,资源类别:文本, 浏览次数:78 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-24 06:27:05。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://www.cnblogs.com/fenghua001/p/16795076.html