我们知道kubernetes外部访问服务只有四种:port-forward、Ingress、LoadBalancer、NodePort,那有没有一种直接进入到集群内访问服务?当然有,这里为大家提供一个思路及一个方法,大家可以尝试做做,该方法可以为你的工作提效。
我们知道kubernetes外部访问服务只有四种:port-forward、Ingress、LoadBalancer、NodePort,那有没有一种直接进入到集群内访问服务?当然有,这里为大家提供一个思路及一个方法,大家可以尝试玩玩,该方法可以为你的工作提效。
场景一:大家在k8s中是不是遇到,想到群集的应用导入数据时,发该服务没有暴露端口,想要导数据得先将服务暴露出来,这时需要先在k8s里创建LoadBalancer或NodePort,或者将原来ClusterIP改为LoadBalancer或NodePort才可以外部访问,或者使用port-forward。ingress这时更不好实现,ingress本身就是一个LoadBalancer,对TCP和UDP实现比较麻烦,端口多的时候无法招架。
场景二:我们想知道k8s集群内部各容器是否互访及内部域名是否互通,通常的做法是进入pod里面去ping、curl等操作,比较麻烦。
说明一下:场景一是外部访问问题,场景二是集群内部之间访问问题。
这种场景我是怎么解决的呢,思路很简单,就是将集群的流量代理出来,如http、vpn、socks等,这里举一个非常实用且简单的方法:跑一个能连sshd的pod就可以了。注意:使用sshd代理上网可能会遇到证书问题,所以大家不要用来代理上网。
ssh.yaml
1 apiVersion: apps/v1 2 kind: Deployment 3 metadata: 4 name: ssh 5 namespace: javalittleman 6 # labels: 7 # app: ssh 8 spec: 9 replicas: 110 template:11 metadata:12 labels:13 app: ssh14 spec:15 containers:16 - name: ssh17 image: panubo/sshd18 env:19 - name: SSH_ENABLE_ROOT20 value: "true"21 - name: SSH_ENABLE_PASSWORD_AUTH22 value: "true"23 - name: MOTD24 value: "欢迎登录"25 # - name: DISABLE_SFTP26 # value: "false"27 - name: SSH_USERS28 value: "userr:1000:1000,admin:48:48,root"29 - name: GATEWAY_PORTS30 value: "true"31 - name: TCP_FORWARDING32 value: "true"33 # - name: SFTP_MODE34 # value: "true"35 # - name: SFTP_CHROOT36 # value: "/data"37 # - name: SCP_MODE38 # value: "true"39 # - name: RSYNC_MODE40 # value: "true"41 ports:42 - containerPort: 2243 protocol: TCP44 # tty: true45 volumeMounts:46 - mountPath: /etc/entrypoint.d/47 name: ssh-storage48 subPath: entrypoint.d49 - mountPath: /root/.ssh/50 name: ssh-storage51 subPath: .ssh52 # - mountPath: /etc/ssh/keys53 # name: ssh-storage54 # subPath: keys55 - mountPath: /data56 name: ssh-storage57 subPath: data58 - mountPath: /etc/ssh/59 name: ssh-storage60 subPath: ssh61 volumes:62 - name: ssh-storage63 persistentVolumeClaim:64 claimName: ssh-pvc65 selector:66 matchLabels:67 app: ssh68 ---69 apiVersion: v170 kind: Service71 metadata:72 namespace: javalittleman73 name: ssh74 labels:75 app: ssh76 spec:77 type: LoadBalancer78 ports:79 - port: 2280 targetPort: 2281 protocol: TCP82 selector:83 app: ssh84 85 ---86 apiVersion: v187 kind: PersistentVolumeClaim88 metadata:89 name: ssh-pvc90 namespace: javalittleman91 spec:92 # storageClassName: nfs-client-provisioner193 accessModes:94 - ReadWriteMany95 resources:96 requests:97 storage: 1Mi
以上yaml自己根据自己的情况去配置,我这里使用了存储、LoadBalancer,这些先要准备好
这个脚本我加了一个对xshell兼容的代码,至于用户密码你可以选择密文或者明文都可以了,这个脚本是放在/etc/entrypoint.d/下的,需要对此加可执行权限chmod。
setpasswd.sh
1 #!/usr/bin/env bash 2 3 set -e 4 #docker run --rm -it --entrypoint /usr/bin/env docker.io/panubo/sshd:1.3.0 mkpasswd 5 #echo 'root:$6$1yzDg4xFmQMecjlV$ddBMEcWZaHGkyki1aJ67ZavSOJaPVXj8v03PQc5n08Pb6ilplthzrBr/prmcEJ5uplaIvgtMpzDF0pijtCEi01' | chpasswd --encrypted 6 7 # Or if you don't pre-hash the password remove the line above and uncomment the line below. 8 echo "userr:userrpassword" | chpasswd 9 echo "admin:adminpassword" | chpasswd10 11 # 解决xshell报错:服务器发送了一个意外的数据包。received:3,expected:2012 13 sshd_config=/etc/ssh/sshd_config14 findstr='KexAlgorithms1'15 16 if [ `grep -c $findstr $sshd_config` -eq '0' ]; then17 echo "KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1" >> /etc/ssh/sshd_config18 else19 echo "已经存在"20 fi
效果如下:
先讲场景二:可以直接在这里ping服务名,如果要跨namespace访问,就可以通过k8s的访问规则去尝试访问,如果访问不了,就证明该服务有问题。
场景一:接下来就是要把这个192.168.109.125的流量代理出来,这样就可以像把电脑搬到k8s内部网络里访问服务了。下图是通过xshell的隧道方式实现socks代理,当然大家可以使用其它工具。
IE代理设置,使用socks5(套节字),当然你可以使用chrome,chrome需要安装插件。
我们来试试如果访问,其它服务这里就不列举了:
直接访问k8s内部IP:如访问Kunsul
通过navicat查询或导入导出数据
原文转载:http://www.shaoqun.com/a/813664.html
老师你的奶好大又圆 老师让我解开蕾丝胸罩:http://lady.shaoqun.com/a/247356.html
扛老师那雪白的两条玉腿 巨大在她腿间进进出出:http://lady.shaoqun.com/a/248356.html
口述实录:性欲难耐出轨4次 高潮缠绵爱难忘:http://lady.shaoqun.com/m/a/251596.html
女人喂男人吃私人部位 女人下面被吃有多爽:http://lady.shaoqun.com/m/a/247713.html
我们知道kubernetes外部访问服务只有四种:port-forward、Ingress、LoadBalancer、NodePort,那有没有一种直接进入到集群内访问服务?当然有,这里为大家提供一个思路及一个方法,大家可以尝试做做,该方法可以为你的工作提效。我们知道kubernetes外部访问服务只有四种:port-forward、Ingress、LoadBalancer、NodePort,那有
佛山到中山悦来亲子王国怎么走?悦来亲子王国乘车路线?:http://www.30bags.com/a/422799.html
佛山端午节活动?2021端午节佛山什么地方有活动?:http://www.30bags.com/a/421212.html
佛山二月花展介绍?佛山梦里水乡百花园赏花攻略?:http://www.30bags.com/a/424181.html
澳门圣诞节哪里好玩?有什么好玩的?:http://www.30bags.com/a/404634.html
希腊博物馆系列—奥林匹亚博物馆 - :http://www.30bags.com/a/408322.html
他JJ又粗又长的查插我 乱伦悲剧,黑夜里与小叔子疯狂缠绵:http://www.30bags.com/a/255212.html
扒开屁股自己坐上来 男领导把我下面摸出水了:http://lady.shaoqun.com/a/248374.html
故事:43岁初婚大叔遇到37岁二婚撒娇少女|中年迷失:http://www.30bags.com/a/441881.html
行长将她双腿分得更开 少妇从反抗到迎合:http://lady.shaoqun.com/m/a/248343.html
我和老外真实刺激的交换 老外拿粗大征服了我:http://www.30bags.com/m/a/249801.html
关于性和爱,青春期男生最想知道的五个问题:http://www.30bags.com/a/441879.html
两性有什么区别?女人的原因和男人的不同:http://www.30bags.com/a/441880.html
No comments:
Post a Comment