首页 > 其他分享 >k8s——istio

k8s——istio

时间:2024-06-01 20:21:26浏览次数:14  
标签:-- istio master deployment 1.22 k8s root

安装istio

Istio / 入门

[root@master ~]# curl -L https://istio.io/downloadIstio | sh -
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --100   102  100   102    0     0     86      0  0:00:01  0:00:01 --:--:--    86
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --100  4899  100  4899    0     0   2222      0  0:00:02  0:00:02 --:--:--  9313

******省略******
Need more information? Visit https://istio.io/latest/docs/setup/install/ 

[root@master ~]# ls
anaconda-ks.cfg  istio-1.22.0  kube-flannel.yml
[root@master ~]# cd istio-1.22.0/
[root@master istio-1.22.0]# ls
bin  LICENSE  manifests  manifest.yaml  README.md  samples  tools
[root@master istio-1.22.0]# cd bin/
[root@master bin]# ls
istioctl
[root@master bin]# cp istioctl  /usr/local/bin/
[root@master bin]# is   #tab 补全看能不能补
isosize   istioctl  
[root@master istio-1.22.0]# istioctl install --set profile=demo -y✔ Istio core installed                                            
✔ Istiod installed                                                
✔ Egress gateways installed                                       
✔ Ingress gateways installed                                      
✔ Installation complete                                           Made this installation the default for injection and validation.
# 这会使用演示配置文件将Istio组件安装在默认的Kubernetes集群

[root@master istio-1.22.0]# kubectl label namespace default istio-injection=enabled

namespace/default labeled
#当我们在此Kubernetes集群上部署任何应用程序时,我们需要指示Istio自动注入Envoy sidecar代理

#yaml创建


# 由于我们已经为默认命名空间启用了自动注入Envoy sidecar代理,因此一切都会由istiod来处理
# 注意此时注入的命名空间内原有的资源不会被修改

# 举例实例

# 部署bookinfo

[root@master istio-1.22.0]# kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
service/details created
serviceaccount/bookinfo-details created
deployment.apps/details-v1 created
service/ratings created
serviceaccount/bookinfo-ratings created
deployment.apps/ratings-v1 created
service/reviews created
serviceaccount/bookinfo-reviews created
deployment.apps/reviews-v1 created
deployment.apps/reviews-v2 created
deployment.apps/reviews-v3 created
service/productpage created
serviceaccount/bookinfo-productpage created
deployment.apps/productpage-v1 created


# 等待拉取镜像
[root@master istiod]# kubectl get po
NAME                             READY   STATUS    RESTARTS   AGE
details-v1-cf74bb974-xsppk       2/2     Running   0          10m
productpage-v1-87d54dd59-6hdmb   2/2     Running   0          10m
ratings-v1-7c4bbf97db-qhzcp      2/2     Running   0          10m
reviews-v1-5fd6d4f8f8-tk58c      2/2     Running   0          10m
reviews-v2-6f9b55c5db-zhjh5      2/2     Running   0          10m
reviews-v3-7d99fd7978-8nprb      2/2     Running   0          10m
two-deployment-d9554f944-84l94   1/1     Running   0          5h40m
two-deployment-d9554f944-8jldq   1/1     Running   0          5h40m
two-deployment-d9554f944-w4mgw   1/1     Running   0          5h40m
[root@master istiod]# 


# 内部访问
[root@master istio-1.22.0]# kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -sS productpage:9080/productpage |grep title
    <title>Simple Bookstore App</title>
        <h4 class="modal-title">Please sign in</h4>
[root@master istio-1.22.0]# 

# 外部访问
# 将应用程序与istio网关关联
[root@master istio-1.22.0]# kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
gateway.networking.istio.io/bookinfo-gateway created
virtualservice.networking.istio.io/bookinfo created
# 确保配置没有问题
[root@master istio-1.22.0]# istioctl analyze

✔ No validation issues found when analyzing namespace: default

# 如果因为原有的资源没有被注入而报错
# 我们可以使用istioctl kube-inject命令来手动注入,或者直接删除资源
# 在 Istio 自动注入(通过 MutatingAdmissionWebhook)未启用或不起作用的情况下
# 手动为 Pod 注入 sidecar
istioctl kube-inject -f my-deployment.yaml -o my-deployment-injected.yaml
# 这里,-f my-deployment.yaml 指定了要注入的原始资源文件
# -o my-deployment-injected.yaml 指定了输出文件的名称
# 该文件将包含注入后的资源定义

# 当使用 istioctl kube-inject 命令时
# 它会读取原始的资源文件(比如 my-deployment.yaml)
# 然后在该文件中的 Pod 模板部分添加 Istio sidecar 容器的配置
# 生成一个新的、已经注入 Istio sidecar 的资源文件(比如 my-deployment-injected.yaml)。

# 这个新的文件包含了原始文件的所有内容
# 但额外添加了 Istio 所需的配置
# 使得使用 kubectl apply 命令将这个新文件应用到 Kubernetes 集群时,Pod 启动时会包含 Istio 的 sidecar 容器。



# 确定入口和端口
# 确定 Kubernetes 集群是否在支持外部负载均衡器的环境中运行
# 修改svc配置文件`edit`修改
# type: LoadBalancer 修改为 type: NodePort
[root@master istio-1.22.0]# kubectl get svc istio-ingressgateway -n istio-system
NAME                   TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)                                                                      AGE
istio-ingressgateway   NodePort   10.101.221.20   <none>        15021:32616/TCP,80:31642/TCP,443:31040/TCP,31400:32024/TCP,15443:30184/TCP   6h12m


# 设置入口端口
export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')
export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')
export INGRESS_HOST=$(kubectl get po -l istio=ingressgateway -n istio-system -o jsonpath='{.items[0].status.hostIP}')

# 设置gateway_url
export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT

# 测试gateway——url
[root@master istio-1.22.0]# echo "$GATEWAY_URL"
10.104.43.196:31642

# 测试外部访问
[root@master istio-1.22.0]# echo "http://$GATEWAY_URL/productpage"
http://10.104.43.196:31642/productpage

安装kiali仪表盘

# 安装kiali仪表盘和其他插件
[root@master istio-1.22.0]# kubectl apply -f samples/addons
[root@master istio-1.22.0]# kubectl rollout status deployment/kiali -n istio-system
Waiting for deployment "kiali" rollout to finish: 0 of 1 updated replicas are available...
deployment "kiali" successfully rolled out
# 记得修改kiali svc 的type 将clusterIP 修改为 NodePort
[root@master istio-1.22.0]# istioctl dashboard kiali
http://localhost:20001/kiali
Failed to open browser; open http://localhost:20001/kiali in your browser.
# 此时显示的是localhost:20001/kiali 
# 也就是说 如果你要在windows上访问的话
# 要使用 http://10.104.43.196:30140/kiali
[root@master istio-1.22.0]# kubectl get svc -n istio-system |grep kial
kiali                  NodePort    10.97.183.177    <none>        20001:30140/TCP,9090:31574/TCP                                               91m


# Kiali 仪表板显示网格与关系的概述 在示例应用程序中的服务之间。它还提供 用于可视化交通流的过滤器。

标签:--,istio,master,deployment,1.22,k8s,root
From: https://www.cnblogs.com/humlogs/p/18211588

相关文章

  • 发布到win11本地k8s集群Aspire项目
    Aspire项目发布到win11本地k8s集群 合集-微服务(3) 1.微服务新体验之Aspire初体验05-302.Aspire项目发布到win11本地k8s集群05-313.微服务实践Aspire项目发布到远程k8s集群06-01收起 前提你必须会创建aspire项目,不会的请先看微服务新体验之Aspire初体验As......
  • Aspire项目发布到远程k8s集群
    前提你必须会创建aspire项目,不会的请先看微服务新体验之Aspire初体验Aspirate(Aspir8)Aspirate是将aspire项目发布到k8s集群的工具安装aspiratedotnettoolinstall-gaspirateaspirate初始化切换到AppHost项目目录aspirateinit在host项目中生成aspirate.json,如......
  • k8s——集群环境问题合集
    创建集群k8s集群创建集群环境问题合集重置master节点kubeadmreset-f#-f强制重置可选重置node节点#当你的master节点重置后,node节点需要重新加入集群kubeadmreset-f#-f强制重置可选#同时需要删除`rm-rf/var/lib/kubelet`#`rm-rf/etc/cni`两个文件......
  • 04.k8s的附加组件
    4.k8s的附加组件4.1dns服务安装dns服务1:下载dns_docker镜像包wgethttp://192.168.12.201/docker_image/docker_k8s_dns.tar.gz2:导入dns_docker镜像包(所有节点或者node2节点)3:修改skydns-rc.yaml,指定13的机器,该功能可加可不加spec:nodeSelector:kubern......
  • 05.k8s弹性伸缩
    5.k8s弹性伸缩k8s弹性伸缩,需要附加插件heapster监控弹性伸缩:随着业务访问量的大小,k8s系统中的pod比较弹性,会自动增加或者减少pod数量;5.1安装heapster监控1:上传并导入镜像,打标签ls*.tar.gzforninls*.tar.gz;dodockerload-i$n;donedockertagdocker.io/......
  • k8s学习--k8s集群使用容器镜像仓库Harbor
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录环境步骤一容器镜像仓库Harbor部署二、Kubernetes集群使用harbor仓库环境Ip主机名cpu内存硬盘192.168.10.11master1cpu双核2G40G192.168.10.12node011cpu双核2G40G192.168.10.13node021cp......
  • k8s--service详解
    1:service详解1、每次访问pod的时候,ip地址都不是固定的2、service有一个虚拟ip和端口,可以使用这个来进行访问3、kube-proxy,apiserver将service的信息存入到etcd中,kube-proxy将其转换为一个访问规则,这个就是本质4、表象,就是标签,本质就是规则,通过标签,来进行要管理哪些pod,5......
  • Aspire项目发布到win11本地k8s集群
    前提你必须会创建aspire项目,不会的请先看微服务新体验之Aspire初体验Aspirate(Aspir8)Aspirate是将aspire项目发布到k8s集群的工具安装aspiratedotnettoolinstall-gaspirateaspirate初始化切换到AppHost项目目录aspirateinit生成k8s配置文件aspirategenerat......
  • Centos8安装k8s1.23.9
    离线安装一、环境准备卸载podman关闭交换区禁用selinux关闭防火墙依赖包安装系统参数优化配置本地dockeryum源一:centos8默认安装podmanbuildah需要卸载sudoyumerasepodmanbuildah-y二:节点关闭swap分区swapoff-a&&sysctl-wvm.swappiness=0sudosed-i'......
  • Centos7部署k8s1.23.9
    !/bin/bashfunctionnode_update_kernel(){启用ELRepo仓库sudorpm--importhttps://www.elrepo.org/RPM-GPG-KEY-elrepo.orgsudorpm-Uvhhttp://www.elrepo.org/elrepo-release-7.0-6.el7.elrepo.noarch.rpm查看可用的系统内核包sudoyum--disablerepo="*"--enabl......