
场景说明:
1、server端部署的是kubernetes,使用的阿里云的Kubernetes服务;
2、proxy与app属于远程端,两者的应用使用了容器实例运行,而且proxy与app无固定公网ip,配置的是远程端局域网的内网ip,日常通过frc穿透工具远程ssh这些proxy与app机;系统os均是centos;
3、app若要更新应用或者数据,需要从proxy拉取,若proxy无此最新应用数据,则proxy从server端拉取;
4、proxy与app,目前使用server端kuberntees集群外部的zabbix监控中;
问题:这种情况下,proxy与app端,适合采用k3s吗?如果采用k3s,如何实现应用部署更新与监控实现?实现server端与远程端的kubernetes集群化。
欢迎有兴趣研讨的同学,扫码交流。

1、创建文件夹:
cd /save/
mkdir -p golang/gopath
cd golang
2、下载最新版go包:
wget https://dl.google.com/go/go1.13.1.linux-amd64.tar.gz
3、解压:
tar -zxvf go1.13.1.linux-amd64.tar.gz
解压后得到go文件夹:
[root@wiki golang]# ls -al
total 117232
drwxr-xr-x 4 root root 87 Oct 9 23:10 .
drwxr-xr-x 7 root root 76 Oct 9 23:18 ..
drwxr-xr-x 10 root root 272 Sep 26 02:53 go
-rw-r--r-- 1 root root 120040373 Sep 26 05:25 go1.13.1.linux-amd64.tar.gz
drwxr-xr-x 2 root root 6 Oct 9 23:10 gopath
-rw-r--r-- 1 root root 13 Oct 9 23:05 hello_world.go
[root@wiki golang]#
4、复制go到/usr/local/:
cp -a go /usr/local/
5、追加/etc/profile最后三行如下:
[root@wiki golang]# cat /etc/profile
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}
if [ -x /usr/bin/id ]; then
if [ -z "$EUID" ]; then
# ksh workaround
EUID=`/usr/bin/id -u`
UID=`/usr/bin/id -ru`
fi
USER="`/usr/bin/id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
fi
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /usr/sbin
pathmunge /usr/local/sbin
else
pathmunge /usr/local/sbin after
pathmunge /usr/sbin after
fi
HOSTNAME=`/usr/bin/hostname 2>/dev/null`
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
unset i
unset -f pathmunge
export GOROOT=/usr/local/go
export GOPATH=/save/golang/gopath
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
[root@wiki golang]#
刷新/etc/profile,使其配置生效:
source /etc/profile
查看go环境:
[root@wiki golang]# go version
go version go1.13.1 linux/amd64
[root@wiki golang]# go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/save/golang/gopath"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build426115351=/tmp/go-build -gno-record-gcc-switches"
[root@wiki golang]#