継続的な統合テスト(3)--kubernetes環境構築


背景


話題を統合し続け、容器へのテストが完了したら、どのように容器を管理するかが急務です.オープンソースコンテナ管理、サービス編成とスケジューリングの枠組みは現在広く流行している.
  • 昔から三剣客と呼ばれていたmachine+swarm+compose
  • google内部大規模クラスタ管理システムBorgのオープンソースバージョンKubernetes
    mesos+zookeeper+marathon

  • ノード拡張

    に含まれるコンポーネントは次のとおりです.
  • Flanneld:私の前に書いた文章Kubernetesを参考にしてFlannelのネットワーク構成に基づいて、以前はTLSを構成していませんでしたが、今はserivceプロファイルにTLS構成を追加する必要があります.
  • kubelet
  • kube-proxy

  • 1.Flanneldネットワーク構成


    インストール:yum install flannleを使用したインストール構成:/usr/lib/systemd/system/flanneld.serviceの編集
    [Unit]
    Description=Flanneld overlay address etcd agent
    After=network.target
    After=network-online.target
    Wants=network-online.target
    After=etcd.service
    Before=docker.service
    
    [Service]
    Type=notify
    EnvironmentFile=/etc/sysconfig/flanneld
    EnvironmentFile=-/etc/sysconfig/docker-network
    ExecStart=/usr/bin/flanneld-start $FLANNEL_OPTIONS
    ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    RequiredBy=docker.service

    起動パラメータの設定:/etc/sysconfig/flanneldの編集
    # Flanneld configuration options
    
    # etcd url location.  Point this to the server where etcd runs
    FLANNEL_ETCD_ENDPOINTS="http://10.13.1.135:2379"
    
    # etcd config key.  This is the configuration key that flannel queries
    # For address range assignment
    FLANNEL_ETCD_PREFIX="/coreos.com/network"
    
    # Any additional options that you want to pass
    #FLANNEL_OPTIONS=""

    開始:
    systemctl start flanneld
    systemctl status flanneld

    クbeletのインストールと構成


    インストール:yum install kubernetesを使用して構成サービスファイルをすべてインストール:/usr/lib/systemd/system/kubelet.serviceを編集
    [Unit]
    Description=Kubernetes Kubelet Server
    Documentation=https://github.com/GoogleCloudPlatform/kubernetes
    After=docker.service
    Requires=docker.service
    
    [Service]
    WorkingDirectory=/var/lib/kubelet
    EnvironmentFile=-/etc/kubernetes/config
    EnvironmentFile=-/etc/kubernetes/kubelet
    ExecStart=/usr/bin/kubelet \
                $KUBE_LOGTOSTDERR \
                $KUBE_LOG_LEVEL \
                $KUBELET_API_SERVER \
                $KUBELET_ADDRESS \
                $KUBELET_PORT \
                $KUBELET_HOSTNAME \
                $KUBE_ALLOW_PRIV \
                $KUBELET_POD_INFRA_CONTAINER \
                $KUBELET_ARGS
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target

    コンフィギュレーションクbeletのコンフィギュレーションファイル:編集/etc/kubernetes/kubelet
    ###
    # kubernetes kubelet (minion) config
    
    # The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
    KUBELET_ADDRESS="--address=0.0.0.0"
    
    # The port for the info server to serve on
    # KUBELET_PORT="--port=10250"
    
    # You may leave this blank to use the actual hostname
    KUBELET_HOSTNAME="--hostname-override=10.210.130.46"
    
    # location of the api-server
    KUBELET_API_SERVER="--api-servers=http://10.13.1.135:8080"
    
    # pod infrastructure container
    #KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
    
    # Add your own!
    KUBELET_ARGS="--cluster_dns=10.254.159.10 --cluster_domain=cluster.local"

    開始:
    systemctl start kubelet
    systemctl status kubelet

    kube-proxy


    サービスファイルの構成:/usr/lib/systemd/system/kube-proxy.serviceの編集
    [Unit]
    Description=Kubernetes Kube-Proxy Server
    Documentation=https://github.com/GoogleCloudPlatform/kubernetes
    After=network.target
    
    [Service]
    EnvironmentFile=-/etc/kubernetes/config
    EnvironmentFile=-/etc/kubernetes/proxy
    ExecStart=/usr/bin/kube-proxy \
                $KUBE_LOGTOSTDERR \
                $KUBE_LOG_LEVEL \
                $KUBE_MASTER \
                $KUBE_PROXY_ARGS
    Restart=on-failure
    LimitNOFILE=65536
    
    [Install]
    WantedBy=multi-user.target

    開始:
    systemctl start kube-proxy
    systemctl status kube-proxy

    構成説明:https://github.com/rootsongjc/follow-me-install-kubernetes-cluster/blob/master/06-%E9%83%A8%E7%BD%B2node%E8%8A%82%E7%82%B9.md