赞
踩
1、关机顺序
2、开机顺序
(1)、k8s-ha1、k8s-ha2
(2)、master01、master02、master03
(3)、node01、node02
mast01上传 ingress-nginx.yaml
node01、node02 上传 ingress-nginx.tar 、kube-webhook-certgen.tar
#导入到镜像
for img in ingress-nginx.tar kube-webhook-certgen.tar
> do
> docker load -i $img
> done
#master01编辑新建文件ingress-nginx.yaml
vim ingress-nginx.yaml
#打开行号
:set nu
#搜索Service
/Service
#按小写n快速查找下一个
#将文件中的Servcie类型LoadBalancerg改为NodePort
type: NodePort
#将ingress-nginx-controller的Pod开启hostNetwork与节点共享网络名称空间,则Pod监听节点的80和443端口
spec:
hostNetwork: true #手动增加
containers:
#部署
kubectl apply -f ingress-nginx.yaml
#获取名称空间
kubectl get ns
kubectl get pod -n ingress-nginx
#进入ingress
kubectl exec -it ingress-nginx-controller-55d7ffbbf8-8vl8n -n ingress-nginx -- /bin/bash
#查看ingress下的nginx目录
ls /etc/nginx
cat /etc/nginx/nginx.conf
新准备一台机器作为nfs服务器
#设置hostname hostnamectl set-hostname k8s-nfs #安装nfs服务端软件包(服务端) yum install nfs-utils -y #编辑文件 vim /etc/exports 内容如下: /storageclass 192.168.30.0/24(rw,no_root_squash) #创建目录/storageclass mkdir /storageclass #启动NFS systemctl start nfs systemctl enable nfs #node01、node02上安装 nfs(客户端) yum install nfs-utils -y #node01、node02 检查是否能访问到共享目录 showmount -e 192.168.30.200 #Master01 编辑文件nfs-clients-rbac.yml(文件名自定义) vim nfs-clients-rbac.yml #进入粘贴模式 :set paste #按回车健 拷贝内容到该文件 #RBAC文件应用到kubectl kubectl apply -f nfs-clients-rbac.yml #Master01 编辑文件nfs-client-deployment.yml(文件名自定义) vim nfs-client-deployment.yml 要改的内容如下: value: 192.168.30.200 #传递NFS服务器IP地址 - name: NFS_PATH value: /storageclass #传递NFS服务器共享路径 volumes: - name: nfs-client-root nfs: server: 192.168.30.200 #后端NFS服务器IP地址 path: /storageclass #后端NFS服务器共享路径 nfs-client-provisioner 运行在node节点下 #Kubernetes 环境检查 master01 节点的污点(taint)信息 kubectl describe node master01 | grep -i taint #node01、node02上传provisioner压缩文件并导入镜像 docker load -i nfs-subdir-external-provisioner.tar #Master01部署驱动nfs-client-deployment.yml kubectl apply -f nfs-client-deployment.yml kubectl get pod #编辑storageclass.yml vim storageclass.yml 内容如下: apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: nfs-client provisioner: k8s-sigs.io/nfs-subdir-external-provisioner parameters: archiveOnDelete: "false" #应用 kubectl apply -f storageclass.yml #查看所有可用的存储类的列表 kubectl get sc #获取 Kubernetes 集群中所有 Pod 的详细信息 kubectl get pod -o wide
1、准备一台机器放harbor私有仓库
#上传,安装docker
tar -xf docker-20.10.21.tar.gz
cd docker
yum install ./*.rpm -y
#上传安装docker-compose、加权限
chmod +x docker-compose
#移动
mv docker-compose /usr/bin
#查看docker-compose版本
docker-compose --versin
#启动docker并设置开机自启
systemctl start docker
systemctl enable docker
2、harbor(私有仓储)有点大,使用xftp上传harbor包
#解压、进入harbor tar -xf harbor-v2.5.1.tgz cd harbor #导入harbor镜像 docker load -i harbor.v2.5.1.tar.gz #复制文件,并编辑 cp harbor.yml.tmpl harbor.yml vim harbor.yml 修改host、注释https协议 #当前目录执行脚本 ./install.sh 成功后它会以容易方式运行harbor(一共有9个容器在运行) #查看容器 docker ps 浏览器访问harbor 192.168.30.20 admin 12345 本机指定Harbor仓库地址 vim /etc/docker/daemon.json { "insecure-registries": ["http://192.168.0.25"] } 重启docker让配置文件生效 systemctl restart docker #此时看容器数量只有6个,解决方法(先全部关闭容器,再重启一下就ok了) docker ps #harbor目录先关闭全部容器 docker-compose down docker-compose up -d #后台运行docker容器,否则占用前台终端
#master01新建目录 mkdir wordpress #master01创建名称空间 kubectl create ns wordpress #查询名称空间 kubectl get ns #进入wordpress目录,并新建编辑mysql.yml文件 cd wordpress vim mysql.yml admin123 #node01,node02 拉取mysql镜像 docker pull mysql:5.7 #创建Pod kubectl create -f mysql.yml #查看Pod kubectl get pod -n wordpress #进入mysql容器,登录mysql kubectl exec -it mysql-0 -n wordpress -- /bin/bash mysql -uroot -padmin123 #验证(显示所有数据库) show databases; #数据库主机验证命令 ls /storageclass ls /storageclass/wordpress-data-mysql-0-pvc-e7a7a759-770b-4940-a58d-6169539a0854 出现如下内容: wordpress-data-mysql-0-pvc-e7a7a759-770b-4940-a58d-6169539a0854
1、下载wordpress项目,配置数据库连接
#nfs服务器主机命令 wget https://cn.wordpress.org/wordpress-6.0-zh_CN.tar.gz #nfs服务器主机解压 tar -xf wordpress-6.0-zh_CN.tar.gz #nfs服务器主机 cd wordpress #nfs主机改配置文件名称 cp wp-config-sample.php wp-config.php #master01查看数据库地址 kubectl get pod -n wordpress -o wide #测试重启mysql pod,mysql自动重启了,容器组ip改变了 kubectl delete pod mysql-0 -n wordpress #查看其中dns,随便拷贝一个dns地址出来(例如:172.16.235.5) kubectl get pod -n kube-system kubectl get pod -n kube-system -o -wide #安装dig命令(dns解析工具)工具包 yum install bind-utils -y #dns解析mysql dig @172.16.235.5 mysql-svc.wordpress.svc.cluster.local dig @172.16.235.5 mysql-svc.wordpress.svc.cluster.local +short #nfs主机编辑配置文件,数据库地址不能配置IP,因为一旦发生重启IP地址会变动 #地址配置:mysql-svc.wordpress.svc.cluster.local vim wp-config.php #wordpress身份认证的信息通过该地址获取:https://api.wordpress.org/secret-key/1.1/salt/ #nfs主机拉取centos镜像 docker pull centos:7.9.2009
2、配置nginx镜像仓储
#nfs主机wordpress目录下新建编辑nginx.repo文件
https://nginx.org/en/linux_packages.html#RHEL
内容如下:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
3、通过Dockerfile来构建wordpress镜像
内容看文件:dockerfile
#构建镜像
docker build -t wordpress:v6.0 .
4、harbor 后台新建仓库 wordpress
地址:http://192.168.30.200/
admin
12345
5、推送项目镜像到harbor、并配置集群的镜像仓储
#镜像打标签 docker tag wordpress:v6.0 192.168.30.200/wordpress/wordpress:v6.0 #登录镜像仓库,要输入用户名+密码 docker login 192.168.30.200 #推送镜像到仓库 docker push 192.168.30.200/wordpress/wordpress:v6.0 在集群节点指定Harbor仓库地址 vim /etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"], "insecure-registries": ["http://192.168.30.200"] } #重启docker生效 systemctl restart docker
#master01新建编辑部署文件 wordpress.yml vim wordpress.yml #应用到集群 kubectl apply -f wordpress.yml #查看svc kubectl get svc -n wordpress #查看ingress,查看运行的IP地址(192.168.30.14) kubectl get pod -n ingress-nginx -o wide #修改本机电脑host #指定域名 192.168.30.14 web.wordpress.com #nfs服务器查看nginx日志 ls /storageclass/ ls /storageclass/wordpress-ngx-log-pvc-5ed5cdbf-a07e-4c37-9c06-db5b247a4115 tail /storageclass/wordpress-ngx-log-pvc-5ed5cdbf-a07e-4c37-9c06-db5b247a4115/access.log
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。