spring-cloud-kubernetes 之 hello world

在这里插入图片描述

前言

spring-cloud-kubernetes是springcloud官方推出的开源项目,用于将Spring Cloud和Spring Boot应用运行在kubernetes环境,并且提供了通用的接口来调用kubernetes服务,GitHub上官方地址是:https://github.com/spring-cloud/spring-cloud-kubernetes

环境安装

安装JDK8

yum install java-1.8.0-openjdk* -y

java -version

安装maven

mkdir /home/work/maven -p

wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz


tar -zxvf apache-maven-3.6.3-bin.tar.gz


vim /etc/profile

添加以下内容

export M2_HOME=/home/work/maven/apache-maven-3.6.3
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$M2_HOME/bin:$PATH

mvn -v

在这里插入图片描述

下载源码

官方demo包含在整个spring-cloud-kubernetes开源项目中,因此要下载整个开源项目,由于主干的提交一直很活跃,因此最好下载个release版本,我这里下载的是v1.0.1.RELEASE,如下图红框所示,地址是:https://github.com/spring-cloud/spring-cloud-kubernetes/releases

修改maven设置

需要事先修改maven的设置,否则编译构建的时候会报错:

  1. 打开maven的配置文件settings.xml,完整路径是apache-maven-3.6.0/conf/settings.xm;
  2. 在settings.xml文件内,找到pluginGroups节点,在里面增加两行,修改完成后效果如下:
  <pluginGroups>
    <pluginGroup>io.fabric8</pluginGroup>
    <pluginGroup>org.springframework.boot</pluginGroup>
  </pluginGroups>

编译项目源码

将项目中checkstyle的插件去掉

<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>

将上图中的源码下载解压,得到一个新的文件夹spring-cloud-kubernetes-2.0.0;

mvn clean compile -U

进入目录/spring-cloud-kubernetes-2.0.0/spring-cloud-kubernetes-examples/kubernetes-hello-world-example,这里面就是官方的入门demo,执行以下命令开始构建并且会部署到minikube:

mvn clean package fabric8:deploy -Pkubernetes

查看服务,已经创建了,类型是NodePort ,并且将8080端口映射到宿主机的30700端口,说明可以用http://宿主机IP:30700来访问此服务:

kubectl get all -o wide

在这里插入图片描述

查看项目健康状态

访问 http://192.168.56.123:32554/actuator/health
在这里插入图片描述

查看注册上去的节点

执行 curl 192.168.56.123:32554/services 会报错

kubectl logs -f 【podId】

在这里插入图片描述
也就是说当前的system:serviceaccount账号是没有权限通过API server访问"services"资源的,此时最快的解决办法是提升账号权限:

kubectl create clusterrolebinding permissive-binding \
  --clusterrole=cluster-admin \
  --user=admin \
  --user=kubelet \
  --group=system:serviceaccounts

注意:以上办法只能用于开发和测试环境,不要用在生产环境,在生产环境应该参考Kubernetes的RBAC授权相关设置来处理。

再次访问

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值