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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/103048.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cisdem Video Player for mac(高清视频播放器) v5.6.0中文版

Cisdem Video Player mac是一款功能强大的视频播放器,适用于 macOS 平台。它可用于播放不同格式的视频文件,并具有一些实用的特性和功能。 Cisdem Video Player mac 中文版软件特点 多格式支持:Cisdem Video Player 支持几乎所有常见的视频格…

Git: tag管理

查看 git tag//会查看到仓库内所有的tag,与分支无关添加 附注标签会包含完整的标签信息,可以进行校验,轻量标签是某个特定提交的引用,包含信息较少。一般正式发版时要使用附注标签 git tag -a V1.0.0 -m "My Version V1.0.0"//在…

Kubernetes新增节点

1. K8S节点Hosts及防火墙设置 node3节点进行如下配置&#xff1a; #添加hosts解析&#xff1b; cat >/etc/hosts<<EOF 127.0.0.1 localhost localhost.localdomain 192.168.1.146 master1 192.168.1.147 node3 EOF #临时关闭selinux和防火墙&#xff1b; sed -i /SE…

破解mariadb密码

破解mariadb密码 小白教程&#xff0c;一看就会&#xff0c;一做就成。 1.先停止mariadb systemctl stop mariadb.service 2.进单用户模式 mysqld_safe --skip-grant-tables & 3.登录mariadb mysql -uroot #&#xff08;不用密码也能登录&#xff09; 4.切换到mysql …

基于FPGA的视频接口之千兆网口(二链路)

简介 相信网络上对于FPGA驱动网口的开发板、博客、论坛数不胜数,为何博主需要重新手敲一遍呢,而不是做一个文抄君呢!因为目前博主感觉网络上描述的多为应用层上的开发,非从底层开始说明,本博主的思虑还是按照老规矩,按照硬件、底层、应用等关系,使用三~四篇文章,来详细…

SQLite:TIMESTAMP类型使用

SQLite&#xff1a;CURRENT_TIMESTAMP是以GMT时区为准&#xff0c;而不是本地机器的时区 在本文中&#xff0c;我们将介绍SQLite数据库中的一个特性&#xff1a;CURRENT_TIMESTAMP。在SQLite中&#xff0c;我们可以使用CURRENT_TIMESTAMP函数来获取当前时间戳。然而&#xff0…

php函数

1. strstr() 返回a在b中的第一个位置 2.substr() 截取字符串 3.PHP字符串函数parse_str(将字符串解析成多个变量)-CSDN博客 4.explode() 字符串分割为数组 5.trim&#xff08;&#xff09; 1.去除字符串两边的 空白字符 2.去除指定字符 6.extract()函数从数组里…

解决 Centos 安装 Python 3.10 的报错: Could not import runpy module

操作环境&#xff1a;CentOS 7、Gcc 4.8.5、Python 3.10.0 系统上已经有 2.x&#xff0c;3.6 版本的 Python 了&#xff0c;但是还是想装一个 3.10 的。因为刚写的脚本文件是较高版本的&#xff0c;在 3.6 上无法正常运行&#xff0c;Python 语法不是很了解&#xff0c;只能从…

分享一份关于 Rust 编程的学习指南

Rust是一种现代的系统级编程语言&#xff0c;以其注重内存安全、性能和并发性而闻名。学习Rust可以是一段有回报的旅程&#xff0c;为您打开构建强大高效应用的机会。无论您是经验丰富的开发者还是完全的初学者&#xff0c;本指南将通过精选的资源和技巧帮助您踏上Rust编程之旅…

华为李鹏:加速5G商业正循环,拥抱更繁荣的5.5G(5G-A)

2023年10月10日&#xff0c;在华为主办的第十四届全球移动宽带论坛上&#xff0c;华为高级副总裁、运营商BG总裁李鹏面向来自全球的运营商和产业伙伴&#xff0c;提出抓住网络需求和趋势的力量——“面向后天的业务&#xff0c;积极规划明天的网络&#xff0c;加速5G商业正循环…

【Qt之QTableWidget和QTreeWidget】树悬停、选择样式及表格表头和首行间隔线

QTableWidget设置表头与首行间隔线 win10 实例化QTableWidget后&#xff0c;表格表头和首行中间无间隔线&#xff0c;以下是通过样式表进行设置&#xff1a; // 设置横向表格头的间隔线&#xff0c;可设置四个方向的间隔线,不需要间隔线的可以设置为0px// border-left:0px sol…

redis数据类型——stream

Redis Stream&#xff08;Redis流&#xff09;是Redis数据库的一种数据结构&#xff0c;用于实时数据流的处理。它是在Redis 5.0版本中引入的&#xff0c;用于解决消息队列和日志处理等实时数据流场景的需求。Redis Stream提供了一种非常灵活和高效的方式来处理时间序列数据&am…

https和http的区别及安全性

首先进行提问&#xff1a;https是加密传输&#xff0c;那么它安全吗&#xff1f; 简单的回顾&#xff1a; HTTPS和HTTP都是网络协议&#xff0c;也就是规定数据如何在互联网中传输的规则。它们的主要区别在于安全性。 HTTP&#xff08;Hypertext Transfer Protocol&#xff…

使用pendulum包对时间数据进行加、减操作 add()和subtract()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 使用pendulum包 对时间数据进行加、减操作 add()和subtract() 选择题 请问dt.add(years5)的结果是&#xff1a; import pendulum as pdl print("【执行】dtpdl.datetime(2023,10,1)&qu…

基于黏菌优化的BP神经网络(分类应用) - 附代码

基于黏菌优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于黏菌优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.黏菌优化BP神经网络3.1 BP神经网络参数设置3.2 黏菌算法应用 4.测试结果&#xff1a;5.M…

distcc分布式编译

distcc https://gitee.com/bison-fork/distcc.git 下载工具链 mingw&#xff0c;https://www.mingw-w64.org/downloads/#w64devkitperl&#xff0c;https://strawberryperl.com/releases.html免安装zip版本&#xff0c;autoconf等脚本依赖perlautoconf、automake&#xff0c…

催交费通知单套打单纸设置说明

2.0系统打印催交费通知单设置尺寸操作展示如下,仅供参考。具体如下: 一、Win7系统 1.找到设备和打印机,选中对应打印机后点击上方打印服务器属性; 2.创建一个宽14cm,高14cm的表单; 二、win10系统 1.找到打印机,点管理,选择打印首选项;

17.(开发工具篇Gitlab)如何在Gitlab配置ssh key

前言: Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置 一、git 配置 (1)打开 git 命令窗口 (2)配置用户名(填自己的姓名) git config --global user.name “chenbc” (3)配置用户邮箱(填自己的邮箱) git config …

金和OA C6任意文件读取漏洞 复现[附POC]

文章目录 金和OA C6任意文件读取漏洞 复现[附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 金和OA C6任意文件读取漏洞 复现[附POC] 0x01 前言 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试…