GithubHelp home page GithubHelp logo

cnych / kubernetes-learning Goto Github PK

View Code? Open in Web Editor NEW
1.7K 53.0 554.0 102.59 MB

《从Docker到Kubernetes进阶课程》在线文档

Home Page: https://www.qikqiak.com/k8s-book/

License: Apache License 2.0

HTML 8.39% JavaScript 1.35% Python 13.34% Shell 1.47% Dockerfile 71.28% Smarty 4.16%
docker kubernetes course jenkins gitlab elasticsearch prometheus

kubernetes-learning's Introduction

从Docker到Kubernetes进阶

从 Docker 入门一步步迁移到 Kubernetes 的进阶课程

在线浏览:https://www.qikqiak.com/k8s-book

GitHub地址:https://github.com/cnych/kubernetes-learning/

视频课程在线地址:https://youdianzhishi.com/course/6n8xd6/

介绍

Kubernetes是Google基于Borg开源的容器编排调度引擎,作为CNCF(Cloud Native Computing Foundation)最重要的组件之一,它的目标不仅仅是一个编排系统,而是提供一个规范,可以让你来描述集群的架构,定义服务的最终状态,Kubernetes 可以帮你将系统自动地达到和维持在这个状态。Kubernetes 作为云原生应用的基石,相当于一个云操作系统,其重要性不言而喻。

从Docker到Kubernetes进阶

之前一直有同学跟我说我 Docker 掌握得还可以,但是不知道怎么使用 Kubernetes,网上的其他关于 Kubernetes 的课程费用又太高,本书就是为你们准备的,当然如果你不了解 Docker,不了解 Kubernetes,都没有关系,我们会从 Docker 入门一步步深入,到 Kubernetes 的进阶使用的。所以大家完全没必要担心。

学完本课程以后,你将会对 DockerKubernetes 有一个更加深入的认识,我们会讲到:

  • Docker 的一些常用方法,当然我们的重点会在 Kubernetes 上面
  • 会用 kubeadm 来搭建一套 Kubernetes 的集群
  • 理解 Kubernetes 集群的运行原理
  • 常用的一些控制器使用方法
  • 还有 Kubernetes 的一些调度策略
  • Kubernetes的运维
  • 包管理工具 Helm 的使用
  • 最后我们会实现基于 Kubernetes 的 CI/CD

社区&读者交流

  • 博客:阳明的博客
  • 微信群:k8s技术圈,扫描我的微信二维码,阳明,或直接搜索微信号iEverything后拉您入群,请增加备注(k8s或kubernetes)
  • 知乎专栏:k8s技术圈
  • 开发者头条:k8s技术圈
  • 微信公众号:扫描下面的二维码关注微信公众号k8s技术圈

k8s公众帐号

  • 优点知识:优点知识是一个综合的技术学习平台,本书配套的视频教程将会发布在该平台上面,感兴趣的朋友可以扫描下发的二维码关注自己感兴趣的课程。

优点知识服务号 优点知识小程序

kubernetes-learning's People

Contributors

agxmaster avatar cdpidan avatar cnych avatar hedeqiang avatar jinpengcn avatar li2008kui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kubernetes-learning's Issues

关于gitlab-ci + helm部署问题

我在gitlab-ci中使用helm发布应用,有报错:

$ helm version
Client: &version.Version{SemVer:"v2.14.2", GitCommit:"a8b13cc5ab6a7dbef0a58f5061bcc7c0c61598e7", GitTreeState:"clean"}
Error: pods is forbidden: User "system:serviceaccount:test-ci:default" cannot list resource "pods" in API group "" in the namespace "kube-system"

报错中的User信息是 system:serviceaccount:test-ci:default,我给tiller打的补丁用户是gitlab,这里是不是有问题?

gitlab-ci文件deploy部分如下:

deploy_test:
  image: alpine/helm:2.14.2
  stage: deploy
  script:
    - helm init --client-only --skip-refresh
    - helm version
    - helm upgrade --install
      --set image.repository=$BUILD_IMAGES_NAME
      --set image.tag=$BUILD_TAG_NAME
      --set ingress.annotations."kubernetes\.io/ingress\.class"=nginx-ingress-intranet
      --wait
      --namespace=test-ci
      id-generate ./helm/id-generator
  when: manual
  tags:
    - helm

我已经创建了ServceAccount并给tiller打上了补丁:

[root@php-cd-master qikqiak]# cat test-ci-sa.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: gitlab
  namespace: test-ci
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: gitlab
subjects:
  - kind: ServiceAccount
    name: gitlab
    namespace: test-ci
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
[root@php-cd-master qikqiak]# kubectl get deploy tiller-deploy -n test-ci -o yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "2"
  creationTimestamp: "2019-08-21T10:53:43Z"
  generation: 2
  labels:
    app: helm
    name: tiller
  name: tiller-deploy
  namespace: test-ci
  resourceVersion: "8755592"
  selfLink: /apis/extensions/v1beta1/namespaces/test-ci/deployments/tiller-deploy
  uid: f116542a-c401-11e9-a54f-00163e0e8032
spec:
  progressDeadlineSeconds: 2147483647
  replicas: 1
  revisionHistoryLimit: 2147483647
  selector:
    matchLabels:
      app: helm
      name: tiller
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: helm
        name: tiller
    spec:
      automountServiceAccountToken: true
      containers:
      - env:
        - name: TILLER_NAMESPACE
          value: test-ci
        - name: TILLER_HISTORY_MAX
          value: "0"
        image: sapcc/tiller:v2.14.2
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /liveness
            port: 44135
            scheme: HTTP
          initialDelaySeconds: 1
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        name: tiller
        ports:
        - containerPort: 44134
          name: tiller
          protocol: TCP
        - containerPort: 44135
          name: http
          protocol: TCP
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /readiness
            port: 44135
            scheme: HTTP
          initialDelaySeconds: 1
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: gitlab
      serviceAccountName: gitlab
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: "2019-08-21T10:53:43Z"
    lastUpdateTime: "2019-08-21T10:53:43Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  observedGeneration: 2
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1

目前集群中存在多个tiller-deploy

[root@php-cd-master qikqiak]# kubectl get deploy -l name=tiller -A
NAMESPACE     NAME            READY   UP-TO-DATE   AVAILABLE   AGE
kube-system   tiller-deploy   1/1     1            1           16h
test-ci       tiller-deploy   1/1     1            1           16h

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.