设为首页 收藏本站
查看: 715|回复: 0

[经验分享] kubernetes 1.8 高可用安装(五)

[复制链接]

尚未签到

发表于 2018-9-15 14:09:06 | 显示全部楼层 |阅读模式
# Calico Version v2.6.1  
# https://docs.projectcalico.org/v2.6/releases#v2.6.1
  
# This manifest includes the following component versions:
  
#   calico/node:v2.6.1
  
#   calico/cni:v1.11.0
  
#   calico/kube-controllers:v1.0.0
  

  
# This ConfigMap is used to configure a self-hosted Calico installation.
  
kind: ConfigMap
  
apiVersion: v1
  
metadata:
  
  name: calico-config
  
  namespace: kube-system
  
data:
  
  # Configure this with the location of your etcd cluster.
  
  etcd_endpoints: " :2379"
  

  
  # Configure the Calico backend to use.
  
  calico_backend: "bird"
  

  
  # The CNI network configuration to install on each node.
  
  cni_network_config: |-
  
    {
  
        "name": "k8s-pod-network",
  
        "cniVersion": "0.1.0",
  
        "type": "calico",
  
        "etcd_endpoints": "__ETCD_ENDPOINTS__",
  
        "etcd_key_file": "__ETCD_KEY_FILE__",
  
        "etcd_cert_file": "__ETCD_CERT_FILE__",
  
        "etcd_ca_cert_file": "__ETCD_CA_CERT_FILE__",
  
        "log_level": "info",
  
        "mtu": 1500,
  
        "ipam": {
  
            "type": "calico-ipam"
  
        },
  
        "policy": {
  
            "type": "k8s",
  
            "k8s_api_root": "https://__KUBERNETES_SERVICE_HOST__:__KUBERNETES_SERVICE_PORT__",
  
            "k8s_auth_token": "__SERVICEACCOUNT_TOKEN__"
  
        },
  
        "kubernetes": {
  
            "kubeconfig": "__KUBECONFIG_FILEPATH__"
  
        }
  
    }
  

  
  # If you're using TLS enabled etcd uncomment the following.
  
  # You must also populate the Secret below with these files.
  
  etcd_ca: ""   # "/calico-secrets/etcd-ca"
  
  etcd_cert: "" # "/calico-secrets/etcd-cert"
  
  etcd_key: ""  # "/calico-secrets/etcd-key"
  

  
---
  

  
# The following contains k8s Secrets for use with a TLS enabled etcd cluster.
  
# For information on populating Secrets, see http://kubernetes.io/docs/user-guide/secrets/
  
apiVersion: v1
  
kind: Secret
  
type: Opaque
  
metadata:
  
  name: calico-etcd-secrets
  
  namespace: kube-system
  
data:
  
  # Populate the following files with etcd TLS configuration if desired, but leave blank if
  
  # not using TLS for etcd.
  
  # This self-hosted install expects three files with the following names.  The values
  
  # should be base64 encoded strings of the entire contents of each file.
  
  # etcd-key: null
  
  # etcd-cert: null
  
  # etcd-ca: null
  

  
---
  

  
# This manifest installs the calico/node container, as well
  
# as the Calico CNI plugins and network config on
  
# each master and worker node in a Kubernetes cluster.
  
kind: DaemonSet
  
apiVersion: extensions/v1beta1
  
metadata:
  
  name: calico-node
  
  namespace: kube-system
  
  labels:
  
    k8s-app: calico-node
  
spec:
  
  selector:
  
    matchLabels:
  
      k8s-app: calico-node
  
  template:
  
    metadata:
  
      labels:
  
        k8s-app: calico-node
  
      annotations:
  
        scheduler.alpha.kubernetes.io/critical-pod: ''
  
        scheduler.alpha.kubernetes.io/tolerations: |
  
          [{"key": "dedicated", "value": "master", "effect": "NoSchedule" },
  
           {"key":"CriticalAddonsOnly", "operator":"Exists"}]
  
    spec:
  
      hostNetwork: true
  
      serviceAccountName: calico-node
  
      containers:
  
        # Runs calico/node container on each Kubernetes node.  This
  
        # container programs network policy and routes on each
  
        # host.
  
        - name: calico-node
  
          image: quay.io/calico/node:v2.6.1
  
          env:
  
            # The location of the Calico etcd cluster.
  
            - name: ETCD_ENDPOINTS
  
              valueFrom:
  
                configMapKeyRef:
  
                  name: calico-config
  
                  key: etcd_endpoints
  
            # Choose the backend to use.
  
            - name: CALICO_NETWORKING_BACKEND
  
              valueFrom:
  
                configMapKeyRef:
  
                  name: calico-config
  
                  key: calico_backend
  
            # Cluster type to identify the deployment type
  
            - name: CLUSTER_TYPE
  
              value: "k8s,bgp"
  
            # Disable file logging so `kubectl logs` works.
  
            - name: CALICO_DISABLE_FILE_LOGGING
  
              value: "true"
  
            # Set Felix endpoint to host default action to ACCEPT.
  
            - name: FELIX_DEFAULTENDPOINTTOHOSTACTION
  
              value: "ACCEPT"
  
            # Configure the IP Pool from which Pod IPs will be chosen.
  
            - name: CALICO_IPV4POOL_CIDR
  
              value: "192.168.0.0/16"
  
            - name: CALICO_IPV4POOL_IPIP
  
              value: "always"
  
            # Disable IPv6 on Kubernetes.
  
            - name: FELIX_IPV6SUPPORT
  
              value: "false"
  
            # Set Felix logging to "info"
  
            - name: FELIX_LOGSEVERITYSCREEN
  
              value: "info"
  
            # Set MTU for tunnel device used if ipip is enabled
  
            - name: FELIX_IPINIPMTU
  
              value: "1440"
  
            # Auto-detect the BGP IP address.
  
            - name: IP
  
              value: "autodetect"
  
            - name: IP_AUTODETECTION_METHOD
  
              value: "can-reach=www.baidu.com"
  
            - name: FELIX_HEALTHENABLED
  
              value: "true"
  
          securityContext:
  
            privileged: true
  
          resources:
  
            requests:
  
              cpu: 250m
  
          livenessProbe:
  
            httpGet:
  
              path: /liveness
  
              port: 9099
  
            periodSeconds: 10
  
            initialDelaySeconds: 10
  
            failureThreshold: 6
  
          readinessProbe:
  
            httpGet:
  
              path: /readiness
  
              port: 9099
  
            periodSeconds: 10
  
          volumeMounts:
  
            - mountPath: /lib/modules
  
              name: lib-modules
  
              readOnly: true
  
            - mountPath: /var/run/calico
  
              name: var-run-calico
  
              readOnly: false
  
            - mountPath: /calico-secrets
  
              name: etcd-certs
  
        # This container installs the Calico CNI binaries
  
        # and CNI network config file on each node.
  
        - name: install-cni
  
          image: quay.io/calico/cni:v1.11.0
  
          command: ["/install-cni.sh"]
  
          env:
  
            # The location of the Calico etcd cluster.
  
            - name: ETCD_ENDPOINTS
  
              valueFrom:
  
                configMapKeyRef:
  
                  name: calico-config
  
                  key: etcd_endpoints
  
            # The CNI network config to install on each node.
  
            - name: CNI_NETWORK_CONFIG
  
              valueFrom:
  
                configMapKeyRef:
  
                  name: calico-config
  
                  key: cni_network_config
  
          volumeMounts:
  
            - mountPath: /host/opt/cni/bin
  
              name: cni-bin-dir
  
            - mountPath: /host/etc/cni/net.d
  
              name: cni-net-dir
  
            - mountPath: /calico-secrets
  
              name: etcd-certs
  
      volumes:
  
        # Used by calico/node.
  
        - name: lib-modules
  
          hostPath:
  
            path: /lib/modules
  
        - name: var-run-calico
  
          hostPath:
  
            path: /var/run/calico
  
        # Used to install CNI.
  
        - name: cni-bin-dir
  
          hostPath:
  
            path: /opt/cni/bin
  
        - name: cni-net-dir
  
          hostPath:
  
            path: /etc/cni/net.d
  
        # Mount in the etcd TLS secrets.
  
        - name: etcd-certs
  
          secret:
  
            secretName: calico-etcd-secrets
  

  
---
  

  
# This manifest deploys the Calico Kubernetes controllers.
  
# See https://github.com/projectcalico/kube-controllers
  
apiVersion: extensions/v1beta1
  
kind: Deployment
  
metadata:
  
  name: calico-kube-controllers
  
  namespace: kube-system
  
  labels:
  
    k8s-app: calico-kube-controllers
  
  annotations:
  
    scheduler.alpha.kubernetes.io/critical-pod: ''
  
    scheduler.alpha.kubernetes.io/tolerations: |
  
      [{"key": "dedicated", "value": "master", "effect": "NoSchedule" },
  
       {"key":"CriticalAddonsOnly", "operator":"Exists"}]
  
spec:
  
  # The controllers can only have a single active instance.
  
  replicas: 1
  
  strategy:
  
    type: Recreate
  
  template:
  
    metadata:
  
      name: calico-kube-controllers
  
      namespace: kube-system
  
      labels:
  
        k8s-app: calico-kube-controllers
  
    spec:
  
      # The controllers must run in the host network namespace so that
  
      # it isn't governed by policy that would prevent it from working.
  
      hostNetwork: true
  
      serviceAccountName: calico-kube-controllers
  
      containers:
  
        - name: calico-kube-controllers
  
          image: quay.io/calico/kube-controllers:v1.0.0
  
          env:
  
            # The location of the Calico etcd cluster.
  
            - name: ETCD_ENDPOINTS
  
              valueFrom:
  
                configMapKeyRef:
  
                  name: calico-config
  
                  key: etcd_endpoints
  

  
---
  

  
# This deployment turns off the old "policy-controller". It should remain at 0 replicas, and then
  
# be removed entirely once the new kube-controllers deployment has been deployed above.
  
apiVersion: extensions/v1beta1
  
kind: Deployment
  
metadata:
  
  name: calico-policy-controller
  
  namespace: kube-system
  
  labels:
  
    k8s-app: calico-policy
  
spec:
  
  # Turn this deployment off in favor of the kube-controllers deployment above.
  
  replicas: 0
  
  strategy:
  
    type: Recreate
  
  template:
  
    metadata:
  
      name: calico-policy-controller
  
      namespace: kube-system
  
      labels:
  
        k8s-app: calico-policy
  
    spec:
  
      hostNetwork: true
  
      serviceAccountName: calico-kube-controllers
  
      containers:
  
        - name: calico-policy-controller
  
          image: quay.io/calico/kube-controllers:v1.0.0
  
          env:
  
            # The location of the Calico etcd cluster.
  
            - name: ETCD_ENDPOINTS
  
              valueFrom:
  
                configMapKeyRef:
  
                  name: calico-config
  
                  key: etcd_endpoints
  

  
---
  

  
apiVersion: v1
  
kind: ServiceAccount
  
metadata:
  
  name: calico-kube-controllers
  
  namespace: kube-system
  

  
---
  

  
apiVersion: v1
  
kind: ServiceAccount
  
metadata:
  
  name: calico-node
  
  namespace: kube-system



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-583633-1-1.html 上篇帖子: kubernetes 1.8 高可用安装(四) 下篇帖子: kubernetes 1.8 高可用安装(六)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表