k8s集群安装v1.20.9后-2-改造部署自己的服务k8sApp,增加istio

1.环境准备:

K8s集群,已经实现了k8s-app小例子,可以正常访问。(已包含docker)
在此基础上对项目进行改进,实现istio流量切换。

2.安装部署istio

2.1 安装go

官网下载go和istio的安装包,上传到k8s集群虚拟机上(三个机器都安装)

[root@node1 ~]# cd /root/Public/istio
[root@master istio]# ls
go1.20.6.linux-amd64.tar.gz  istio-1.4.5.tar.gz
[root@master istio]# tar -C /usr/local -xzf go1.20.6.linux-amd64.tar.gz 
[root@master istio]# vi /etc/profile  #设置PATH和GOPATH
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
$ source /etc/profile

验证安装是否成功:
在刚才设置的GOPATH目录下创建一个级联目录src/hello(完成的目录应该是$HOME/go/src/hello,或者读者自己设置的目录),在这个目录下新建一个文件 hello.go

[root@master hello]# pwd
/root/go/src/hello
[root@master hello]# touch hello.go
[root@master hello]# vi hello.go 
package main
import "fmt"
func main() {
   
    fmt.Println("hello, go")
}
[root@master hello]# go run hello.go
hello, go

如果能在终端中看到打印出了“hello, go”,则说明Go语言安装成功了。

2.2 安装istio

[root@node1 hello]# cd /root/Public/istio
[root@master istio]# ls
go1.20.6.linux-amd64.tar.gz  istio-1.6.8-linux-amd64.tar.gz
[root@master istio]# tar -zxvf istio-1.6.8-linux-amd64.tar.gz
[root@master istio]# mv istio-1.6.8 /usr/local/istio
[root@master istio]# export PATH=$PATH:/usr/local/istio/bin
[root@master istio]# source /etc/profile

## 验证安装是否成功:
[root@master istio]# istioctl version
no running Istio pods in "istio-system"
1.6.8

2.3 部署istio

[root@master istio]# istioctl manifest apply --set profile=demo
✔ Istio core installed                                                                                                                                                                             
✔ Istiod installed                                                                                                                                                                                 
✔ Ingress gateways installed                                                                                                                                                                       
✔ Egress gateways installed                                                                                                                                                                        
✔ Addons installed                                                                                                                                                                                 
✔ Installation complete                                                                                                                                                                            [root@master istio]# kubectl get pod -n istio-system
NAME                                    READY   STATUS    RESTARTS   AGE
grafana-7647cf9c74-864vk                1/1     Running   0          6m42s
istio-egressgateway-7764d599cb-s66zt    1/1     Running   0          6m43s
istio-ingressgateway-56cf5fd57c-smfc7   1/1     Running   0          6m43s
istio-tracing-7fcc6f5848-8tfxl          1/1     Running   0          6m42s
istiod-7567dbfd7b-c7pgz                 1/1     Running   0          9m28s
kiali-7f575d9c4c-jd2fx                  1/1     Running   0          6m42s
prometheus-6c7bcc84bc-l279c             2/2     Running   0          6m42s
[root@master istio]# kubectl get namespace -L istio-injection
NAME              STATUS   AGE     ISTIO-INJECTION
default           Active   24h     
ingress-nginx     Active   23h     
istio-system      Active   9m43s   disabled
k8s-demo          Active   24h     
kube-node-lease   Active   24h     
kube-public       Active   24h     
kube-system       Active   24h  

3.k8s-app改造成k8s-istio-app,做一个istio流量切换小例子

3.1 代码新增接口方便查询k8s集群中istio的/app/info接口

这样写是由于k8s的ingress gateway我们配置的直接走的k8s的service,所以istio得流量切换这样调用/app/info不起作用,写成feign调用配置为istio配置可以看到切换流量的效果。若想看差异,也可以将此地址配置为k8s的svc地址。例如:http://k8s-istio-app.k8s-istio-demo.svc:80
接口hello
此接口通过feign查询集群中/app/info接口,通过istio(若想通过k8s的svc也可切换地址,很方便)
feign地址属性
此地址配置为istio:
http://istio-ingressgateway.istio-system.svc:8080
更改为istio地址

3.2 新建命名空间

[root@master ~]# kc create ns k8s-istio-demo
namespace/k8s-istio-demo created

3.3 给此命名空间开启自动注入sidecar(istio)


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
26. (填空题, 3.4分) 使用多种方法获得HTML标记的引用 <div id="div1">第一个DIV</div> <tex><r</tex> <div id="div2" class="setc" style="color:red">第二个 <span name="sp">第一个SAPN</span> <tex><</tex> <span name="sp" class="setc" style="color:red">第二个SAPN</span> <tex>SAPP</tex> <p> 段落 1</p><p> 段落 2</p> <tex><j</tex> <tex>^{2}</tex> <button onclick="useld()">使用id属性</button> <button onclick="useName()">使用name属性</button> <button onclick="useTag()">使用标记名</button> <button onclick="useClass()">使用CSS类</button> <button onclick="useSelector()">使用CSS选择器</button> <script> function useld() { var div1 = document._(1) div1.innerHTML = 'div1' function useName() { var sp1 = document_(2) [0] sp1.innerHTML = 'span1' function useTag() { var ps = document._(3) ps[0].innerHTML = '第一个段落' ps[1] (.innerHTML = '第二个段落' } function useClass() ( var setc = document._(4) setc[0]. = 'blue' setc[1].style.color = 'green' } 26. (填空题, 3.4分) 使用多种方法获得HTML标记的引用 <div id="div1">第一个DIV</div> <tex><r</tex> <div id="div2" class="setc" style="color:red">第二个 <span name="sp">第一个SAPN</span> <tex><</tex> <span name="sp" class="setc" style="color:red">第二个SAPN</span> <tex>SAPP</tex> <p> 段落 1</p><p> 段落 2</p> <tex><j</tex> <tex>^{2}</tex> <button onclick="useld()">使用id属性</button> <button onclick="useName()">使用name属性</button> <button onclick="useTag()">使用标记名</button> <button onclick="useClass()">使用CSS类</button> <button onclick="useSelector()">使用CSS选择器</button> <script> function useld() { var div1 = document._(1) div1.innerHTML = 'div1' function useName() { var sp1 = document_(2) [0] sp1.innerHTML = 'span1' function useTag() { var ps = document._(3) ps[0].innerHTML = '第一个段落' ps[1] (.innerHTML = '第二个段落' } function useClass() ( var setc = document._(4) setc[0]. = 'blue' setc[1].style.color = 'green' )
最新发布
06-03

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值