• [体验官] k8s部署helloworld
    尝试了好久的helloworld,都卡在pull image环节,修改了resolve dns也没有成功,排除网络问题,应该还是配置有问题。现成的测试项目暂时用不了,那就自己写一个吧:在Go中编写了一个简单的服务器,用“Hello World”响应http请求。[root@ecs-b769 ~]# vi main.go package main import ( "fmt" "log" "net/http" "os" ) func GetEnvDefault(key, defVal string) string {         val, ex := os.LookupEnv(key)         if !ex {                 return defVal         }         return val } func handler(w http.ResponseWriter, r *http.Request) {     log.Print("Hello world received a request.")     version := GetEnvDefault("VERSION", "v1")     log.Println(version)     fmt.Fprintf(w, "Hello world %s\n",version) } func main() {     log.Print("Hello world sample started.")     http.HandleFunc("/hello", handler)     port := GetEnvDefault("PORT", "80")     log.Fatal(http.ListenAndServe(fmt.Sprintf(":%s", port), nil)) }从基础Go镜像开始构建Dockerfile。[root@ecs-385f ~]# vi Dockerfile #use the official Golang image to create a build artifact. # https://hub.docker.com/_/golang FROM golang:1.12.5 as builder # Copy local code to the container image. WORKDIR /go/src/app COPY . . RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o start main.go # Use a Docker multi-stage build to create a lean production image. # https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds FROM alpine:3.9.4 COPY --from=builder /go/src/app/start /start RUN chmod 775 /start # Run the web service on container startup. CMD ["/start"] # Use the official Golang image to create a build artifact. # https://hub.docker.com/_/golang FROM golang:1.12.5 as builder # Copy local code to the container image. WORKDIR /go/src/app COPY . . RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o start main.go # Use a Docker multi-stage build to create a lean production image. # https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds FROM alpine:3.9.4 COPY --from=builder /go/src/app/start /start RUN chmod 775 /start # Run the web service on container startup. CMD ["/start"][root@ecs-385f ~]# docker build -t hello:v1 . Sending build context to Docker daemon  17.92kB Step 1/8 : FROM golang:1.12.5 as builder  ---> 1ef078f0da9e Step 2/8 : WORKDIR /go/src/app  ---> Using cache  ---> f95f8c547d5f Step 3/8 : COPY . .  ---> b1a8ce01e3de Step 4/8 : RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o start main.go  ---> Running in cee9bd3b172f Removing intermediate container cee9bd3b172f  ---> 6a99fdb6ace9 Step 5/8 : FROM alpine:3.9.4 3.9.4: Pulling from library/alpine e7c96db7181b: Pull complete  Digest: sha256:7746df395af22f04212cd25a92c1d6dbc5a06a0ca9579a229ef43008d4d1302a Status: Downloaded newer image for alpine:3.9.4  ---> 055936d39205 Step 6/8 : COPY --from=builder /go/src/app/start /start  ---> 70fb9cff5e68 Step 7/8 : RUN chmod 775 /start  ---> Running in 35630a07c2d1 Removing intermediate container 35630a07c2d1  ---> 6706473c77bb Step 8/8 : CMD ["/start"]  ---> Running in 88a57f47e74a Removing intermediate container 88a57f47e74a  ---> 145828adcb9b Successfully built 145828adcb9b Successfully tagged hello:v1 [root@ecs-385f ~]# docker images REPOSITORY                                                       TAG             IMAGE ID       CREATED              SIZE hello                                                            v1              145828adcb9b   30 seconds ago       20.2MByaml文件,其实就是需求文本,如果有人能跑通就没有问题,有问题就是环境兼容的问题。[root@ecs-385f ~]# vi hello-kubernetes.yaml       labels:         app: hello-kubernetes     spec:       containers:       - name: helloworld-kubernetes         image: hello:v1         imagePullPolicy: Never         ports:         - containerPort: 80 # hello-kubernetes.yaml      apiVersion: v1 kind: Service metadata:   name: hello-kubernetes spec:    type: ClusterIP   ports:   - port: 80     targetPort: 80   selector:     app: hello-kubernetes ---    apiVersion: apps/v1 kind: Deployment metadata:   name: hello-kubernetes spec:   replicas: 1   selector:     matchLabels:       app: hello-kubernetes   template:     metadata:       labels:         app: hello-kubernetes     spec:       containers:       - name: helloworld-kubernetes         image: hello:v1         imagePullPolicy: Never         ports:         - containerPort: 80[root@ecs-b769 ~]# kubectl apply -f hello-kubernetes.yaml service/hello-kubernetes unchanged deployment.apps/hello-kubernetes unchanged [root@ecs-b769 ~]# kubectl get po NAME                                READY   STATUS             RESTARTS   AGE hello-kubernetes-6c67c8c8dd-tz5kd   1/1     Running            0          33m myapp-9896ff477-949kx               0/1     ImagePullBackOff   0          44m [root@ecs-b769 ~]# kubectl get svc NAME               TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE hello-kubernetes   ClusterIP      10.96.232.94    <none>        80/TCP           34m kubernetes         ClusterIP      10.96.0.1       <none>        443/TCP          37h my-service         LoadBalancer   10.96.145.90    <pending>     8080:32471/TCP   51m nginx-service      NodePort       10.96.226.104   <none>        80:31050/TCP     23h [root@ecs-b769 ~]# kubectl exec -it hello-kubernetes sh Error from server (NotFound): pods "hello-kubernetes" not found [root@ecs-b769 ~]# kubectl exec -it hello-kubernetes-6c67c8c8dd-tz5kd sh / # ls bin    dev    etc    home   lib    media  mnt    opt    proc   root   run    sbin   srv    start  sys    tmp    usr    var / # exit [root@ecs-b769 ~]# curl hello-kubernetes/hello curl: (6) Could not resolve host: hello-kubernetes; Unknown error [root@ecs-b769 ~]# curl 10.96.232.94/hello Hello world v1
  • [技术干货] 2021-03-12:go中,如何确定有没有内存泄露,系统里怎么去监控整体的运行情况,日志是怎么处理的?
    2021-03-12:go中,如何确定有没有内存泄露,系统里怎么去监控整体的运行情况,日志是怎么处理的?
  • [技术干货] 2021-03-11:go中,协程内部再启用协程,它们是没关系,对吧?外部协程奔溃,内部协程还会执行吗?外部协程执行结束的时候,
    2021-03-11:go中,协程内部再启用协程,它们是没关系,对吧?外部协程奔溃,内部协程还会执行吗?外部协程执行结束的时候,如何让内部协程也停止运行?golang原生提供的包里,让内部协程停止运行,如何实现?
  • 论go语言的潮流
    近几年,关于 Go 与 Java 还有 c 的对比和讨论愈演愈烈,但不可否认的是,在十年多的时间里,Go 语言发展势头强劲,凭借其简洁、高效的特性,在竞争激烈的编程语言市场中占据了一席之地。字节跳动已经全部转 Go 语言,腾讯、阿里等大公司纷纷选择使用 Go 语言来开发服务应用项目。在 TIOBE 近一两年的榜单中,Go 语言在前 20 位中,总体呈现稳中有升的趋势,2020年 3 月又一次冲进前十。而在国内,没有哪个大厂不做 Kubernetes,微服务和 Serverless,这些正是云原生语言 Go 的主场。目前大热的区块链,以太坊的 geth,比特币的 btcd,闪电网络的 lnd,都是 Go 语言开发。不仅如此,区块链更被列为国家战略,这也很大程度加速了Go语言的崛起,2018年5月20日工业和信息化部信息中心发布《2018中国区块链产业白皮书》,Go语言与区块链成为“数字中国”建设的重要支撑。有亲爹谷歌的扶持,有大厂背书,社区和生态持续良好发展,Go 语言的前途一片光明。因此,我们认为 Go 语言有希望越过早期采用者阶段,进入早期大众阶段。如果你是一名 PHP,或者 NET 工程师,那我建议你从今天开始,果断利用业务时间学习下 Go 语言,跟上时代的潮流走,把握住这波语言红利。如果你是一名相对成熟的 Java 工程师,我同样也建议你考虑下 Go 语言。因为在一个人都可以的情况,你可以在多种语言里都可以,做得很好,这个毫无疑问。但是如果说来了一波趋势,你能抓住的话,等于对你来说是一个加速剂。目前Go 语言就处于这样一个不错的时代中。其实,现在很多人已经开始如火如荼的学习 Go 语言了,可能在你刚刚换到这门语言的时候,你会发现之前你之前代码的那些问题全都没有了,感觉前途一片美好。遗憾的是,可能这是因为你仅仅才开始写了几个模块,还没有进入维护期。事实是如果你没有深入的去钻研软件工程的规律和技术,没有深入的了解 Go 语言的独有特色,理解 Go 语言的设计哲学,建立一套专属的使用方法论,那么是很难通过换一门新语言就解决所有的问题的。
  • [技术干货] 2021-03-06:go中,公共变量是协程安全吗?赋值操作是原子的吗?为什么?
    2021-03-06:go中,公共变量是协程安全吗?赋值操作是原子的吗?为什么?
  • [技术干货] 2021-03-05:go中,io密集型的应用,比如有很多文件io,磁盘io,网络io,调大GOMAXPROCS,会不会对性能有
    2021-03-05:go中,io密集型的应用,比如有很多文件io,磁盘io,网络io,调大GOMAXPROCS,会不会对性能有帮助?为什么?
  • [互动交流] go sdk 上传同一份文件导致不会变化
    基于最新的 go sdk, 上传同一份txt文件导致不会变化.大概隔几分钟再次上传就会变化. 为什么.每次上传文件名称一样,内容不一样,不能更新呢??obsClient.PutObject(input)
  • [技术干货] 2020-12-18:java和go,并发控制有哪几种方式?
    2020-12-18:java和go,并发控制有哪几种方式?#福大大架构师每日一题#
  • [技术干货] 2020-12-17:java和go,如何高效的拼接字符串?
    2020-12-17:java和go,如何高效的拼接字符串?#福大大架构师每日一题#
  • [热门活动] 【云享MindTalks·第八期】#神秘的夜幕团队成员张冶青加入群聊#Python与Go不得不说的选型之争
    那晚你错过的交流(PPT文末自取)那一晚,你没来第八期云享MindTalks,可能错过了一场精彩的对话交流~餐前小甜点助手小采访:你为什么选择用Python?因为语法简单?优雅?还是因为免费?:不,因为惜命,“人生苦短,我用Python”。暖心小贴士:Python的编写效率高,可以用Python省下的时间去植发哦。助手小采访:用Python你幸福吗?:我姓张。助手小采访:……,那可以请您简单分享一下Python的使用体验吗?:动态一时爽,一直动态一直爽。助手小采访:那是不是意味着这个工具很好用,妈妈再也不用担心我出bug的感觉?:什么BUG?!!暖心小贴士:动态一时爽,重构火葬场,这是动态语言的弊端。助手小采访:听说您之后又去学了Go?请用一句话证明。:err !=nil精彩正餐吃到饱交流者1号:Go的gorotine和Python的corotine区别?张老师:gorotine应该就是Go语言的协程,corotine是Python语言的协程,corontine是借鉴了JavaScript里的语法。协程你可以想象为轻量型的线程。交流者2号:我现在想修全栈向,Python用了三年,不会别的语言。一直在开脚本和API,想做点带前端的完整作品。未来趋势来看,是修炼react+go还是继续Python撸flask+django?张老师:谈点个人看法啊,Python用了三年说明你已经很熟悉Python了。从我自己的经历来说,我也是先学了Python然后又学习了Go,我觉得我们学点其他的知识,有助于拓宽我们的知识面,能够帮助到自己打开视野。react是Javascript的一个分支,一个框架,如果你想要修全栈的话,是可以学习一下的。现在react,vue比较主流,flask的话,目前不是那么的主流。交流者3号:Python使用uvloop的话,速度比Go如何?张老师:这个问题我没有实践过uvloop,无法给你做准确的判断,如果你用Python做一些底层的设计的话,能够对它进行一些优化,很可能会取得很好的效果。交流者4号:前端是vue还是react?如果时间有限的话。张老师:国内的话vue还是很多的,国外多是react,如果时间有限的话,建议学习vue,可以从3开始学;如果时间允许的话,建议两个都可以学着看看。交流者5号:Python转数据挖掘可以吗?不知道从何下手。张老师:如果你是用Python做数据分析,是完全可以转数据挖掘的。数据挖掘的话,还包含数据分析和机器学习的,Python的话,比较好的一点,就是有很多库都给你封装好了。如果说你能理解基础原理的话,完全是可以转的。交流者6号:Go和dart差不多吗?张老师:我知道移动端一个比较火的框架就是用dart语言写的,dart的话更多的可能会用于移动开发,相对来说Go的话使用的范围更广。交流者7号:老师是怎么学习Go的?张老师:总结下来的话,就是实践,“实践出真理”,我觉得我个人比较有效的学习方式就是通过实践,因为有Python的基础,经常做Python和go的对比,加强自己的理解,也更有意思。learn by doing是非常有效的学习方式。交流者8号:老师您的CrawLab从Python到Go重构了多久?张老师:重构了大概二十天左右,最近在着手做大的架构升级,预计明年初可以发版~Github: https://github.com/crawlab-team/crawlabDemo: https://demo-pro.crawlab.cn文档: https://docs.crawlab.cn欢迎大家来给我+star哦~谢谢交流者9号:请问有什么推荐的项目吗?张老师:推荐可以从小项目入手,比如: PPT: https://tinyurl.com/yd7gdf4k- 视频: https://www.bilibili.com/video/BV1Az4y1r7gE/- Go入门开源项目:  1. https://github.com/linxGnu/goseaweedfs  2. https://github.com/spf13/viper  3. https://github.com/crawlab-team/crawlab-go-sdk  4. https://github.com/jaeles-project/gospider学习资料推荐Python  基础     •https://github.com/jackfrued/Python-Core-50-Courses (中文)     •https://github.com/learnbyexample/Python_Basics (英文)  进阶    《Python高性能编程》 - Micha Gorelick & Ian Ozsvald    《Python核心编程》 - Wesley Chun    《利用Python进行数据分析》 - Wes McKinney    《Python自然语言处理》 - Steven Bird, Ewan Klein & Edward Loper    《Python 3网络爬虫开发实战》 - 崔庆才    《Python 3网络爬虫宝典》 - 韦世东     极客时间《Python核心技术与实战》 -景霄Go   基础     掘金小册《基于 Go 语言构建企业级的 RESTful API 服务》 - 雷克斯    《Go语言核心编程》 - 李文塔  进阶  《Go语言实战》 - William Kennedy, Brian Ketelsen & Erik St. Martin    《Go语言高级编程》 - 柴树杉 &曹春晖更多精彩,敬请期待~扫码进微信群,仅限200人开始时间12月17日 20:00活动介绍云享MindTalks是由华为云DevCloud团队携手云享专家共同策划进行的系列技术交流活动。各业界大咖纷纷现身群聊,以即时对话形式,来进行最直接的技术交流和思想碰撞。不同领域的专家,各样的业界话题尽在此处,为保证极简极高效,活动仅20分钟,限量200人,先进先得。编程语言那么多那个才是你的心头好?是优雅简单的Python?还是高效精致的Go?动态与静态语言的选型之争,由张冶青老师带你全面分析! 专家介绍知名外企前端开发工程师神秘Night Team(夜幕团队)成员8年软件开发经验,全干工程师专注前端、爬虫和数据分析领域活动规则1.扫码加小助手入群聊,仅限200人,先到先得。2.对未能及时回复的问题,由助手收集集中回答。3.更多资源和活动请进入云享MindTalks VIP群。4.抽奖奖品为限定HE2E知识卡牌和老师推荐书籍         《Go语言核心编程》。
  • [技术干货] 2020-12-12:现场写代码,把CPU打满,java和go都行,并解释为什么。
    2020-12-12:现场写代码,把CPU打满,java和go都行,并解释为什么。#福大大架构师每日一题#
  • [热门活动] 【12.12狂欢】数仓+BI专场,不止是四折,年终大回馈,满额消费还送P40 Pro~
    不玩虚,才是真狂欢,扫描图中二维码,火力全开“购够GO”!!!------【我】------【是】------【分】------【割】------【线】---【学习福利】关注华为云GaussDB(DWS)公众号:这里会定期推送相关干货:精品博文、维护宝典、产品信息等,和您分享最新最全的PB级数仓GaussDB(DWS)黑科技~(扫描下方公众号二维码即可关注)添加华为云GaussDB(DWS)小助手微信号:进入专家交流群,实时交流学习、分享最新的DWS资源~(扫描下方小助手二维码即可进群)GaussDB(DWS)产品主页:https://www.huaweicloud.com/product/dws.html   
  • [分享交流] 发现了一个回帖送奖品的活动。go!go!go!go!go!
    https://bbs.huaweicloud.com/forum/thread-92792-1-1.html
  • [技术干货] 2020-12-07:go中,slice的底层数据结构是什么?
    2020-12-07:go中,slice的底层数据结构是什么?#福大大架构师每日一题#
  • [技术干货] 2020-12-05:go中,map的扩容流程是什么?
    2020-12-05:go中,map的扩容流程是什么?#福大大架构师每日一题#
总条数:152 到第
上滑加载中