Skip to content

kevinyan815/LearningKubernetes

Folders and files

NameName
Last commit message
Last commit date
Nov 4, 2021
Jan 11, 2025
Jul 24, 2021
Jan 11, 2025
Jan 11, 2025
Jun 11, 2021
Apr 9, 2022
Apr 9, 2022
Jul 3, 2022
Jan 11, 2025
Sep 28, 2021
May 11, 2021
Sep 16, 2020
Jan 11, 2025
Jun 26, 2022
Jun 26, 2022
Nov 22, 2021
Jun 26, 2022
Jun 26, 2022
Jun 26, 2022

Repository files navigation

K8s 快速入门动手实践

K8s 学习笔记

Kubernetes学习笔记-已更新到第25篇,持续更新中······

安装MySQL

  • 创建ConfigMap 把my.cnf里的配置放在ConfigMap对象里,后面作为配置文件会挂载进Pod
kubectl apply -f mysql-singleton/mysql-configmap.yaml
  • 创建MySQL应用的Pod和向外提供服务的Service
kubectl apply -f mysql-singleton/deployment-service.yaml
  • 从电脑链接MySQL
# 假设电脑上Kubernetes用的是Minikube, 这里只是例子, 也可以用K3d,用什么安装工具在电脑上安装Kubernetes不重要
# 获得集群对外提供访问的ip, 在每个人的电脑上ip不一样。
# MySQL的Service对外暴露的端口为30306
IP=$(minikube ip)  

mysql -uroot -puser -h ${IP} -P 30306

安装Redis

  • 创建ConfigMap
kubectl apply -f mysql-singleton/mysql-config.yaml
  • 创建调度Redis应用的Deployment和向外提供服务的Service
kubectl apply -f redis-singleton/deployment-service.yaml
  • 从电脑上访问Redis
# Redis Service对外暴露端口为:31379
IP=$(minikube ip)  

redis-cli -h ${IP} -p 31379

安装ETCD

  • 创建命名空间etcd, etcd的资源都放在这个空间下:
kubectl create namespace etcd
  • 创建用到的Services:
kubectl apply -f resources/services.yml -n etcd
  • 创建etcd 集群:
cat resources/etcd.yml.tmpl | resources/config.bash | kubectl apply -n etcd -f -

备注: 上面的命令只在minikue的k8s上有效,如果用的是Docker Desktop自带的K8s集群,请执行下面的命令

kubectl apply -f resources/etcd-statefulset-newl.yaml
  • 从电脑上访问etcd
IP=$(minikube ip)

PORT=$(kubectl get services -o jsonpath="{.spec.ports[].nodePort}" etcd-client -n etcd)
ETCDCTL_API=3 ./etcdctl --endpoints ${IP}:${PORT}  get root --prefix

安装MongoDB

安装的是Standalone(单点)类型的MongoDB

  • 创建root用户的用户名和密码的secret对象
kubectl apply -f mongodb-singleton/mongo-secret.yaml
  • 创建Deployment和Service
kubectl apply -f mongodb-singleton/deployment-service.yaml
  • 客户端访问,推荐使用MongoDB Compass
IP=$(minikube ip) # 假设$IP是 192.168.64.4

mongodb://username:[email protected]:30017/?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&ssl=false
  • 在客户端里为数据库创建用户
> use my-database

> db.createUser(
  {
    user: "my-user",
    pwd: "passw0rd",
    roles: [ { role: "readWrite", db: "my-database" } ]
  }
)

安装Nacos

  • 创建Nacos的Deployment和Service
kubectl apply -f nacos/deployment.yaml

kubectl apply -f nacos/service.yaml
  • 本地访问Nacos
# 登录的用户名和密码都是nacos

http://localhost:30848/nacos
  • 用域名访问

也可以添加Ingress,用域名访问Nacos

创建Ingress

kubectl apply -f nacos/ingress.yaml
# k8s v1.22 后的版本请使用
# kubectl apply -f nacos/ingress-new-v1.22.yaml

hosts中设置 dev.nacos.com 后可通过域名进行访问

http://dev.nacos.com/nacos

如果是在Spring中使用nacos时需要这么配置

spring.cloud.nacos.discovery.server-addr=127.0.0.1:30848
// 或者是下面这样,
//不加端口,Spring Nacos的Jar包默认会去访问8848端口,
//所以在程序里用ingress配置的域名访问时也要加端口
spring.cloud.nacos.discovery.server-addr=dev.nacos.com:80

安装RocketMQ

  • 安装MQ
kubectl apply -f rocketmq/rocketmq-deployment-service.yaml
  • 安装Web Console
kubectl apply -f rocketmq/rocketmq-console.yaml

About

开发工程师的Kubernetes学习笔记

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published