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 {}
早期部署

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
执行成功效果:


在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即可

安装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


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