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的组件。
从kubernetes开始学习Docker容器管理
关于flannel和etcd
使用这两个工具,将创建一个用于容器之间通信的内部网络。
由于flannel使用etcd,因此首先需要启动etcd。
参考文章: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絵本」動画が公開