这里仅限使用在开发环境,学习使用
安装须知,内存必须至少10个G,磁盘40个G
如果磁盘不足,参考这个链接做下扩容
Centos7扩容_愛沢かりん的博客-CSDN博客_centos7怎么扩容
下载tar地址
链接:https://cloud.189.cn/t/JRZrmiBFbeUj
(访问码:6cae)
访问网盘
下载k8s-2022-04-24.tar
接下来把文件上传到服务器
cd /usr/local
tar xf k8s-2022-04-24.tar
cd k8s-2022-04-24
./install.sh
选择第一个
│ │
│ K8s单机版安装完毕,web控制界面dashboard地址(默认账号密码admin/Kuboard123)为: http://IP:30080 │
│ 内网yum网址为:http://IP:42344 │
│ 集群grafan监控地址为http://IP:30000 ,默认账户密码admin admin │
│ │
│ k8s默认nfs持久化路径为: /data/nfs │
│ │
│ k8s应用商店kubeapps地址: http://IP:38082 │
│ 登录token获取命令: sh /root/K8s/k8s_yaml/get_kubeapps_token.sh │
│ │
│ 如有疑问请加QQ群893480182
等待几分钟,执行完毕
接下来我们看下k8s的控制台
默认账号密码admin/Kuboard123
接下来我们看下grfana
http://192.168.184.128:30000/login
账号:admin
密码:admin
接下来回到控制台,添加集群
随便输入一个名称,点击确定
然后把这些命令复制,粘贴到虚拟机中
刷新k8s控制台
使用选择admin,点击集群概要
就可以看到我们的概要界面了
这时候我们在docker中添加下harbor的仓库地址
没有安装的先安装下harbor
docker安装harbor_我是一只代码狗的博客-CSDN博客
cat > /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://dockerhub.azk8s.cn","https://hub-mirror.c.163.com"],
"insecure-registries": ["192.168.184.136:80"],
"exec-opts": ["native.cgroupdriver=cgroupfs"],
"log-driver": "json-file",
"log-opts": {"max-size": "10m","max-file": "10"}
}
EOF
然后重启docker使配置文件生效
systemctl daemon-reload
systemctl restart docker
接下来我们做下测试,看能不能拉取到harbor的数据
docker run -d -p 9003:9003 --name demo3 192.168.184.136:80/public/mydemo3:0.1
如果拉取成功,说明配置成功了
接下来我们创建k8s部署(deployment)脚本
选择名称空间->default 进入详情
点击常用操作,选择从YAML创建
内容如下
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 2
selector:
matchLabels:
app: my-pod
template:
metadata:
labels:
app: my-pod
spec:
containers:
- name: demo3
image: 192.168.184.136:80/public/mydemo3:0.1
ports:
- containerPort: 9003
Deployment的说明
apiVersion: apps/v1 ##版本写死
kind: Deployment ##类型写死
metadata: ##Deployment的元数据
name: ##Deployment的名字
spec: ##Pod的信息
replicas: 2 ##Pod的副本数
selector: ##标签选择器
matchLabels: ##查找匹配的标签
app: ##要和下面的app一样的名字
template: ##Pod的模板信息,根据模板信息来创建Pod
metadata: ##Pod的元数据
labels: ##Pod的标签
app: ##要和上面的app一样的名字
spec: ##容器的信息
containers: ##容器
- name: ##docker run 启动之后的容器名
image: ##容器所需的镜像 我们的harbor的地址的镜像
ports: ##端口
- containerPort: ##容器暴露的端口这个容器访问的端口
然后点击确定,在点应用
在点确定
我们可以看到,创建成功了2个副本,点击进入详情
点击追踪日志,就能看到日志信息
点击容器组,我们可以看到有2个容器
我们也可以进行扩容,在工作负载,点击伸缩
可以看到进行扩容和缩容,点击确定,然后等待1分钟
我们的容器组就变成了4个
如果我们不想在控制台创建Deployment,那么也可以在虚拟机中创建
我们先把控制台的删除掉
选择工作负载
点击删除,确定
点击应用
点击确定
可以看到我们的容器组有一层横线,等几秒后就清空了
接下来回到我们的虚拟机
mkdir -p /etc/k8s
cd /etc/k8s
cat > my-deployment.yml <<-'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 2
selector:
matchLabels:
app: my-pod
template:
metadata:
labels:
app: my-pod
spec:
containers:
- name: demo3
image: 192.168.184.136:80/public/mydemo3:0.1
ports:
- containerPort: 9003
EOF
然后创建Deployment
kubectl apply -f my-deployment.yml
可以看到以及创建成功了
我们可以看下pod的情况
kubectl get pods
如果我们不想要这个Deployment可以删除掉
kubectl delete deployment my-deployment
可以看到 一段时间之后,pod就不存在了
接下来我们先恢复控制台的yaml
然后我们来创建Service的yaml
内容如下
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: NodePort
ports:
- port: 9003
name: service-port
nodePort: 31000
selector:
app: my-pod
Service 说明
apiVersion: v1 固定写死
kind: Service 固定写死
metadata: #元数据
name: 服务的名称
spec:
type: 固定 使用宿主机端口,能够访问个Node的外部客户端通过Node的ip和端口就能访问服务器
port: 发布的微服务的端口号
name: 随便命名
nodePort: 浏览器访问的端口号大于30000 小于32500
selector:
app: 和Deployment的yaml里面的app的内容一样
点击 确定 应用 确定
然后在服务这里,就看到我们之前创建好的服务了
接下来我们通过Service提供的端口访问我们微服务的接口,可以看到访问成功了
http://192.168.184.128:31000/aa
注意这里不能输入我们自己的9003,而是service的31000
如果不想使用控制台创建yaml,我们也可以在虚拟机中创建
cd /etc/k8s
cat > my-service.yml <<-'EOF'
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: NodePort
ports:
- port: 9003
name: service-port
nodePort: 31000
selector:
app: my-pod
EOF
创建service
kubectl apply -f my-service.yml
可以看到,已经存在,我们先删除service,在创建
kubectl delete service my-service
kubectl apply -f my-service.yml
kubectl get service
可以看到创建成功了
我们只有创建了service才能在浏览器访问我们的微服务,否则不能访问,
由service和微服务进行交互