Kubernetes 环境搭建步骤(1) – 创建主节点

总结

这是Kubernetes环境的构建步骤。

Kubernetes是什么?

Kubernetes 是一种用于进行虚拟容器(例如 Docker)的集群管理的服务。

请参考这里以获取详细信息。

    • Docker(コンテナ型仮想化)と Kubernetes についての簡単な紹介

 

    Kubernetesとは何かを分かりやすく紹介する「よい子のためのKubernetes絵本」動画が公開

这篇文章是关于构建主节点的步骤。
创建节点的步骤如下。
Kubernetes集群环境构建步骤(2)- 创建节点。

目录

    Kubernetesハンズオン目次

事前准备

首先,我们需要准备一台服务器用于主节点,至少一台服务器用于从节点。
这次,我们准备了两个虚拟机,一个用于主节点,一个用于从节点,并进行了搭建。

在此页面上,对于没有特别指定的步骤,请全部在主服务器上执行。

师傅的环境 de

    • CentOS7.1

 

    • Kubernetes v1.5.2

 

    • flanneld 0.7.1

 

    • etcdserver 3.1.9

 

    • etcdcluster 3.1.0

 

    Docker version 1.12.6, build 88a4867/1.12.6

Kubernetes的架构

这是构成Kubernetes的组件。

componentdescapiserverkubernetesを操作するためのAPIを提供するcontroller-managerコンテナの状態管理やノードの管理と言った各種管理作業を行うproxyコンテナへのネットワークルーティングおよび負荷分散を行うscheduler各ノードに対しコンテナの割り当てなどを行うkubelet各ノード上でのコンテナ作成/削除やボリュームの割り当てなどを行うkubectlAPI経由でKubenetesを操作するためのクライアントツール

从kubernetes开始学习Docker容器管理

关于flannel和etcd

使用这两个工具,将创建一个用于容器之间通信的内部网络。
由于flannel使用etcd,因此首先需要启动etcd。

名前説明ectdFlannelが各種情報を格納するKeyValueストアflannelコンテナ間で通信するための内部ネットワークを作る

参考文章:etcd和flannel支持Kubernetes的分布式环境。

主机名称的配置

Kubernetes为了在节点之间通信时能够使用机器的主机名,在/etc/hosts中注册了IP地址和主机名。

192.168.33.10 master

安装

我将安装etcd、kubernetes和flannel。

$ sudo yum -y install etcd kubernetes flannel

etcdの設定

kubernetesやflannelはその設定管理にetcdを使用します。
そのため、まずetcdの設定を行ってサービスを起動しておく必要があります。

etcd的默认配置只允许从本地主机访问,为了能够从外部连接,需要进行设置。

$ sudo vi /etc/etcd/etcd.conf
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
$ sudo systemctl start etcd

法兰绒的设置

为了使用虚拟网络,我们将进行flannel的设置。
通过etcdctl命令指定flannel所使用的虚拟网络IP地址。

$ sudo etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}'
$ sudo  systemctl start flanneld

Kubernetes的配置设置

我們將設置Kubernetes。

发布RSA密钥

使用openssl命令,将用于kubernetes API认证的密钥文件创建为/etc/kubernetes/serviceaccount.key。

$ sudo openssl genrsa -out /etc/kubernetes/serviceaccount.key 2048

指定主服务器

在 /etc/kubernetes/config 文件中指定 Kubernetes 的主节点服务器。

$ sudo vi /etc/kubernetes/config
# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://192.168.33.10:8080"

设置主机名和API服务器的配置

/etc/hostsに設定した、ホスト名と、API Serverの設定をします。

$ sudo vi /etc/kubernetes/kubelet
KUBELET_HOSTNAME="--hostname-override=master"
KUBELET_API_SERVER="--api-servers=http://192.168.33.10:8080"

API服务器的配置

将主服务器的IP地址指定给KUBE_API_ADDRESS。
将创建的RSA密钥的路径指定给KUBE_API_ARGS。

由于使用了`–insecure-bind-address`参数,是为了假定本地通信使用。如果不是本地通信,则应使用`–address`参数。

在 KUBE_API_ARGS 中指定刚刚生成的RSA密钥的路径。

$ sudo vi /etc/kubernetes/apiserver
KUBE_API_ADDRESS="--insecure-bind-address=192.168.33.10"
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.33.10:2379"
KUBE_API_ARGS="--service_account_key_file=/etc/kubernetes/serviceaccount.key"

controller-manager

同样,需要在/etc/kubernetes/controller-manager中指定密钥文件。

$ sudo vi /etc/kubernetes/controller-manager
# Add your own!
KUBE_CONTROLLER_MANAGER_ARGS="--service_account_private_key_file=/etc/kubernetes/serviceaccount.key"

各种启动 (Gè

有很多东西要启动。

$ sudo systemctl start kube-apiserver
$ sudo systemctl start kube-controller-manager
$ sudo systemctl start kube-scheduler
$ sudo systemctl start kube-proxy
$ sudo systemctl start kubelet

自动启动设定

$ sudo systemctl enable flanneld
$ sudo systemctl enable etcd
$ sudo systemctl enable kube-apiserver
$ sudo systemctl enable kube-controller-manager
$ sudo systemctl enable kube-scheduler
$ sudo systemctl enable kube-proxy
$ sudo systemctl enable kubelet

在中国,仅需要一个选项即可,将以下内容翻译成中文:kubectl命令的配置。

请使用kubectl命令进行配置。
这个配置是为每个用户创建的,请使用操作Kubernetes的普通用户账户来执行。

顺便提一下,kubectl命令引用~/.kube/config文件作为配置文件,所以您也可以手动创建~/.kube/config文件,而无需使用kubectl命令。

$ kubectl config set-cluster vagrant --server=http://master:8080
$ kubectl config set-credentials vagrant-admin --username=admin --password=admin
$ kubectl config set-context vagrant --cluster=vagrant --user=vagrant-admin
$ kubectl config use-context vagrant

設定内容確認

$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    server: http://master:8080
  name: vagrant
contexts:
- context:
    cluster: vagrant
    user: vagrant-admin
  name: vagrant
current-context: vagrant
kind: Config
preferences: {}
users:
- name: vagrant-admin
  user:
    password: admin
    username: admin

クラスタの情報を確認

$ kubectl cluster-info
Kubernetes master is running at http://master:8080

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

nodeの情報を確認。

可以确认Master已经完成了。

$ kubectl get nodes
NAME      STATUS    AGE
master    Ready     6m

防火墙的设置 de

为了与节点进行通信,要打开2379号和8080号端口。

$ sudo firewall-cmd --add-port=2379/tcp --zone=public --permanent
$ sudo firewall-cmd --add-port=8080/tcp --zone=public --permanent
$ sudo firewall-cmd --reload

选项:Kubernetes集群环境搭建步骤(2) – 创建节点

请看参考。

    • kubernetesによるDockerコンテナ管理入門

 

    • Docker(コンテナ型仮想化)と Kubernetes についての簡単な紹介

 

    • Kubernetesクラスタ環境を構築してDashboardで見える化を試してみた

 

    • docker-composeしか知らない私がKubernetesを触ってみたメモ

 

    • VagrantでKubernetesクラスタを立てる

 

    • Kubernetes Installation with Vagrant & CoreOS

 

    • [入門編]etcdでクラスタを構築する

 

    Kubernetesとは何かを分かりやすく紹介する「よい子のためのKubernetes絵本」動画が公開
广告
将在 10 秒后关闭
bannerAds