Linux_Jenkins

发布时间 2023-08-09 17:04:53作者: Boldcc
typora-copy-images-to: img

jenkins安装

https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/

安装jdk git maven
# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo  网络不行的话就自写
# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

自写yum源
# vim /etc/yum.repos.d/jenkins.repo
[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat-stable
gpgcheck=0

yum安装jenkins
# yum provides jenkins   
找到jenkins-2.346.1-1.1.noarch.rpm
# rpm -ivh jenkins-2.346.1-1.1.noarch.rpm


修改 端口 root用户
# vim /etc/sysconfig/jenkins 
# vim /usr/lib/systemd/system/jenkins.service
# systemctl daemon-reload


创建软链接
# ln -snf /usr/local/src/java/bin/java /usr/bin/java    使用安装的java





启动jenkins
# systemctl start jenkins

访问并修改密码
# cat /var/lib/jenkins/secrets/initialAdminPassword

http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

jenkins配置maven
    name: JAVA_HOME value:XXX
    name: MAVEN_HOME value:/usr/cyz/apache-maven-3.6.1
    name: PATH+EXTRA value: $MAVEN_HOME/bin



jenkins卸载

# rpm -qa | grep jenkins
# rpm -e jenkins-2.346.1-1.1.noarch
# rpm -ql jenkins
# find / -name jenkins
# find / -name jenkins | xargs -I {} rm -rf {}

早期部署

image-20230414114257774

Jenkins持续集成,持续交付,持续部署


Docker

Docker安装
阿里云镜像站安装docker-ce版本
# step 1: 安装必要的一些系统工具
yum install yum-utils device-mapper-persistent-data lvm2 -y
# Step 2: 添加软件源信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
yum makecache fast
yum install docker-ce -y
# Step 4: 开启Docker服务
systemctl start docker

注意:
# vim /etc/yum.repos.d/docker-ce.repo
将[docker-ce-test]下方的enabled=0修改为enabled=1  #开启docker测试版本

安装指定版本的Docker-CE:
Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
Step2: 安装指定版本的Docker-CE
# sudo yum -y install docker-ce-[VERSION]



配置k8s集群需要注意的:
1、配置cgroup-driver为systemd
# vim /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
2、systemctl restart docker
Docker镜像命令
1、docker帮助命令
docker version       # 显示docker的版本信息
docker info          # 显示docker的系统信息,包括镜像和容器的数量
2、查看镜像
dokcer images        #查看当前系统上的镜像
docker search XXXXX  #搜索镜像 这个是去 镜像库里去寻找
3、下载镜像
docker pull          #下载镜像 镜像名[:tag]
docker pull mysql:5.7
4、删除镜像
删除镜像 docker rmi
docker rmi -f 镜像id                  # 删除指定的镜像
docker rmi -f 镜像id 镜像id 镜像id     # 删除多个镜像(空格分隔)
docker rmi -f $(docker images -aq)   # 删除全部的镜像
Docker容器命令

说明:有了镜像才能创建容器

1、查看容器
列出所有运行的容器 docker ps
列出所有的容器 运行过的 历史的 所有 docker ps -a
2、创建容器并启动
docker run [选项] 镜像  (宿主机端口:容器内端口)
docker run tomcat 这个命令是 以 tomcat 镜像 启动 容器,容器没有 命名 ,随机生成名字
新建容器并启动 docker run [可选参数] tomcat

docker run -it -p 30008:8080 tomcat:8.0.53

docker cp 文件名 容器id:路径
/bin/bash 进去
exec 进入正在运行的容器
docker bulid -t tomcat:8.0.53 .
--name name 容器名字:用来区分容器
-d 后台方式运行:相当于nohup :容器里 一定要有 主程序 在运行,静态文件 之类的 不行
常见的坑:docker容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止。
比如:nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了
-it 使用交互式运行:进入容器查看内容
-p 指定容器的端口(四种方式)小写字母p
docker run -it tomcat /bin/bash 这个命令是 进去启动 并 进去 容器内部
3、退出容器
exit # 容器直接停止,并退出
ctrl+P+Q # 容器不停止,退出
4、初学容易犯的错:容器停止之后 这个容器没有删除 ,如果想要重新启动这个容器 就需要用 容器id来启动了,
如果还是 用镜像启动的话 又会启动一个全新的容器了
docker rm 容器id # 删除容器(不能删除正在运行的容器)如果要强制删除:docker rm -f 容器id
docker rm -f $(docker ps -aq) # 删除全部容器
docker ps -a -q|xargs docker rm # 删除所有容器
5、其他
docker logs 
docker logs -tf 625e6fabcdd5
docker logs -tf —tail 10 625e6fabcdd5 十条最新的 日志

查看容器中进程的信息
docker top 625e6fabcdd5

查看镜像的元数据
docker inspect 625e6fabcdd5

进入当前正在运行的容器
docker exec -it 625e6fabcdd5 /bin/bash  # 进入容器后开启一个新的终端,可以再里面操作(常用)
docker attach 625e6fabcdd5              # 进入容器正在执行的终端,不会启动新的进程。


从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的主机的路径


离线导入导出镜像
docker image save -o tomcat8.tar tomcat:8.0.53
docker load -i tomcat8.tar

Kubernetes (1.23.6版本)

前置条件

master=192.168.109.201

node1=192.168.109.202

node2=192.168.109.203

1、关闭防火墙和SELINUX
2、禁用Swap分区
# swapoff -a   临时禁用
# 注释掉关于swap分区的行
yes | cp /etc/fstab /etc/fstab_bak
cat /etc/fstab_bak |grep -v swap > /etc/fstab
3、修改网卡配置
# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
# sysctl -p     重启配置
4、启用内核模块
# vim /etc/sysconfig/modules/ipvs.modules
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
临时启用
# modprobe -- ip_vs
# modprobe -- ip_vs_rr
# modprobe -- ip_vs_wrr
# modprobe -- ip_vs_sh
# modprobe -- nf_conntrack_ipv4
5、配置hosts
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2

# vim /etc/hosts
"192.168.109.201"   master
"192.168.109.202"   node1
"192.168.109.203"   node2
配置国内镜像
# vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
	http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
安装kubeadm,kubectl,kubelet
# yum install kubeadm-1.23.6 kubectl-1.23.6 kubelet-1.23.6 -y
在Master节点部署集群
注意:apiserver-advertise-address后为masetr IP,kubernetes-version为你安装的版本
kubeadm init \
--apiserver-advertise-address=192.168.109.201 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.6 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16

执行成功效果:

image-20230415171446028

在slave节点执行
1、查看记录
Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.109.201:6443 --token iwvymt.5p29mrfe1rt9pp6l \
	--discovery-token-ca-cert-hash sha256:b6a2b72ec7a88ecba575eaf73cad7bc294962c093a0d4cbb362286ea0cebcc66 
2、在master执行
  # mkdir -p $HOME/.kube
  # sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  # sudo chown $(id -u):$(id -g) $HOME/.kube/config
3、在slave执行
kubeadm join 192.168.109.201:6443 --token iwvymt.5p29mrfe1rt9pp6l \
	--discovery-token-ca-cert-hash sha256:b6a2b72ec7a88ecba575eaf73cad7bc294962c093a0d4cbb362286ea0cebcc66 
4、如果token值失效
#  kubeadm token create                           生成token
#  openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'        生成sha56
5、更改节点NAME
kubeadm reset
修改名字
利用token和sha56加入cluster
安装calico
https://github.com/flannel-io/flannel 
kubectl apply -f 文件名
运行 kubectl get pods --all-namespaces  直到所有的STATUS为Running即可

image-20230416153647351

安装docker-compose
curl -L  https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose
安装harbor
./prepare
./install.sh

关闭、开启harbor
docker-compose stop
docker-compose up -d

image-20230420212925458

image-20230420213449611

此处介绍一下我的项目,core主要用来存放  asp.net core 所需要的sdk;jenkins主要是用来存放的jenkins镜像和jenkins-slave镜像;project 主要存放我的asp.netcore 项目的镜像,供k8s拉取