Centos7.2 /7.3クラスターインストールKubernetes1.8.4 +ダッシュボード

1. 環境構成#

**ノード数:3 **

**ノードシステム:CentOS 7.2 / 7.3 **


2. 結果を示す#


3. Kubernetes環境を構築する[1]#

3.1 概要##

Kubernetesクラスター環境はマスターノードと複数のワーカーノードで構成されており、役割が異なれば環境構成も異なります。

3つのノードのIPが次の場合:

1 k8s-Master:192.168.1.12 k8s-Worker1:192.168.1.23 k8s-Worker2:192.168.1.3

3.2 マスターノード環境設定##

手順1:ホスト名を変更する、SELinuxを無効にする、ファイアウォールを設定する、またはファイアウォールを無効にする

1 # ホスト名を変更してSELinuxを無効にする
 2~]# hostnamectl set-hostname 'k8s-master'3~]# exec bash
 4~]# setenforce 05~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g'/etc/sysconfig/selinux
 6 # ファイアウォールを設定する
 7[ root@k8s-master ~]# firewall-cmd --permanent --add-port=6443/tcp
 8[ root@k8s-master ~]# firewall-cmd --permanent --add-port=2379-2380/tcp
 9[ root@k8s-master ~]# firewall-cmd --permanent --add-port=10250/tcp
10[ root@k8s-master ~]# firewall-cmd --permanent --add-port=10251/tcp
11[ root@k8s-master ~]# firewall-cmd --permanent --add-port=10252/tcp
12[ root@k8s-master ~]# firewall-cmd --permanent --add-port=10255/tcp
13[ root@k8s-master ~]# firewall-cmd --reload
14[ root@k8s-master ~]# echo '1'>/proc/sys/net/bridge/bridge-nf-call-iptables
15 # またはファイアウォールを無効にします
16[ root@k8s-master ~]#systemctl stop firewalld && systemctl disable firewalld

手順2:Kubernetesソースを構成する

公式の例** [** [** https://kubernetes.io/docs/getting-started-guides/centos/centos_manual_config/ ](https://kubernetes.io/docs/getting-started-guides/centos/centos_manual_config/)] **では、ソースのKubernetesバージョンが古すぎて、執筆時点ではまだバージョン1.5.2です。このバージョンにはダッシュボードアクセスがあり、表示できます。問題、公式の例を使用しないことをお勧めします。

新しいソースを使用する:

1 # 作成する/etc/yum.repos.d/kubernetes.リポジトリファイル
2[ kubernetes]3 name=Kubernetes
4 baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
5 enabled=16 gpgcheck=17 repo_gpgcheck=18 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
9 https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

ステップ3:KubeadmとDockerをインストールする

インストールする前に、以前の古いバージョンを完全に削除する必要があります。詳細については、CenOS yumremoveコマンドを参照してください。

1[ root@k8s-master ~]# yum install kubeadm docker -y

KubectlおよびDockerサービスを開始して有効にします

1[ root@k8s-master ~]# systemctl restart docker && systemctl enable docker
2[ root@k8s-master ~]# systemctl  restart kubelet && systemctl enable kubelet

ステップ4:Kubernetesマスターを初期化する

1[ root@k8s-master ~]# kubeadm init

スワップオンがサポートされていないというエラーが表示された場合は、コマンドswapoff-aを使用してスワップ機能をオフにします。

しばらく待ってから正常に表示されますので、他人の写真を借りてください

生成されたトークンを保存するように注意してください。後で使用します

ステップ5:クラスターを使用して、次のファイルが現在のユーザーのマスター上にあり、他のユーザーがこのファイルなしでクラスターにアクセスできないことを確認します

1[ root@k8s-master ~]# mkdir -p $HOME/.kube
2[ root@k8s-master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
3[ root@k8s-master ~]# chown $(id -u):$(id -g) $HOME/.kube/config

ステップ6:ポッドネットワークをクラスターにデプロイする

ポッドネットワークの概要:クラスターステータスを準備完了にしてkube-dnsステータスを実行するには、異なるホストのコンテナーが相互に通信するようにポッドネットワークを展開します。PODネットワークは、ワーカーノード間のオーバーレイネットワークです。

1[ root@k8s-master ~]# export kubever=$(kubectl version | base64 | tr -d '\n')2[root@k8s-master ~]# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"3 serviceaccount "weave-net" created
4 clusterrole "weave-net" created
5 clusterrolebinding "weave-net" created
6 daemonset "weave-net" created

手順7:ノードのステータスを確認する

1[ root@k8s-master ~]# kubectl get nodes
 2 NAME         STATUS    AGE       VERSION
 3 k8s-master   Ready     1h        v1.7.54[root@k8s-master ~]# kubectl  get pods  --all-namespaces
 5 NAMESPACE     NAME                                 READY     STATUS    RESTARTS   AGE
 6 kube-system   etcd-k8s-master                      1/1       Running   0          57m
 7 kube-system   kube-apiserver-k8s-master            1/1       Running   0          57m
 8 kube-system   kube-controller-manager-k8s-master   1/1       Running   0          57m
 9 kube-system   kube-dns-2425271678-044ww            3/3       Running   0          1h
10 kube-system   kube-proxy-9h259                     1/1       Running   0          1h
11 kube-system   kube-scheduler-k8s-master            1/1       Running   0          57m
12 kube-system   weave-net-hdjzd                      2/2       Running   0          7m

3.3 ワーカーノード環境設定##

手順1:SELinuxを無効にして、ファイアウォールを構成します[マスターノード環境の構成手順1を参照してください]

ステップ2:Kubernetesソースを構成する[マスターノード環境の構成ステップ2を参照]

ステップ3:KubeadmとDockerをインストールします[マスターノード環境の構成ステップ3を参照]。ワーカーノードはdockerサービスを再起動するだけで済みます。

ステップ4:ワーカーノードをマスターノードのクラスターに追加します。トークンは、マスターによって初期化されたばかりのトークンです。

[ root@worker-node1 ~]# kubeadm join --token a3bd48.1bc42347c3b35851 192.168.1.1:6443

ポート10250が占有されているというエラーが報告された場合は、次のコマンドを実行して関連するプロセスを見つけ、それを強制終了します。

1 sudo lsof -i :102502 sudo kill [pid]

/ etc / kubernets /の下のファイルがすでに存在するというエラーが報告された場合は、それを削除して、上記の結合コマンドを実行してください。

ステップ5:マスターノードでクラスターの状況を観察します

1[ root@k8s-master ~]# kubectl get nodes
2 NAME           STATUS    AGE       VERSION
3 k8s-master     Ready     2h        v1.7.54 worker-node1   Ready     20m       v1.7.55 worker-node2   Ready     18m       v1.7.56[root@k8s-master ~]#

4. ダッシュボード環境の構築#

4.1 ダッシュボードファイルをダウンロードする[2]

1 git clone https://github.com/kubernetes/dashboard

4.2 ダッシュボードの展開[2]

1 cd dashboard/src/deploy/recommend
2 kubectl apply -f  kubernetes-dashboard.yaml

4.3 ローカル[3]からダッシュボードにアクセスする##

1 # このメソッドには、ダッシュボードが開始されたマシンからのみアクセスできることに注意してください
2 kubectl proxy
3 Starting to serve on 127.0.0.1:80014 #ローカルブラウザに次のアドレスを入力してアクセスします
5 http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

4.4 外部からダッシュボードにアクセスする[3]

1 # 最初にkubernetesを変更します-ダッシュボードサービス
2 $ kubectl -n kube-system edit service kubernetes-dashboard
3 # 中型:ClusterIPをタイプに変更します:NodePort、保存
4 # 外部ポート番号を表示する
5 $ kubectl -n kube-system get service kubernetes-dashboard
6 NAME                   CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
7 kubernetes-dashboard   10.100.124.90<nodes>443:31707/TCP   21h
8 # マスターを使用する(ダッシュボードを起動したマシンですか)Ipおよび31707ポートにアクセスできます。httpの代わりにhttpsプロトコルを使用するように注意してください

4.5 ダッシュボードアカウントにログインする方法[4] [5]

トークン方式を使用

1 # トークンを表示
 2[ root@k8s-master ~]# kubectl  get secret -n kube-system
 3 # 名前名を選択-controller-token
 4[ root@k8s-master ~]#kubectl describe secret/namespace-controller-token-4vvdq -n kube-system
 5 Name:         namespace-controller-token-4vvdq
 6 Namespace:    kube-system
 7 Labels:<none>8 Annotations:  kubernetes.io/service-account.name=namespace-controller
 9    kubernetes.io/service-account.uid=84ff3777-ce8f-11e7-a967-f8bc124d5cbc
1011 Type:  kubernetes.io/service-account-token
1213 Data
14====15 ca.crt:1025 bytes
16 namespace:11 bytes
17 token:      eyDF4E4HuKNy6y..........Nd5xQDoCT0Pru-FdAzw

取得したトークンをブラウザのログインインターフェイスにコピーし、[サインイン]をクリックしてログインします。トークンごとに権限が異なるため、表示できるコンテンツが異なります。この点については、まだ検討していません。


5.関連コマンド#

1 # クラスタノードのステータスを表示する
 2 kubectl get nodes
 3 # 詳細なノード情報を表示する
 4 kubectl describe nodes
 5 # クラスタサービスのステータスを表示する
 6 kubectl get pods --all-namespaces
 7 # クラスタが実行されているIPを確認します
 8 kubectl cluster-info
 9 # マスターのさまざまなトークンを表示する
10 kubectl get secret -n kube-system
11 # 特定のトークンを表示する
12 kubectl describe secret/[token name]-n kube-system 

5. 参照#

【1】How to Install Kubernetes (k8s) 1.7 on CentOS 7 / RHEL 7 . [https://www.linuxtechi.com/install-kubernetes-1-7-centos7-rhel7/]

【2】README [https://github.com/kubernetes/dashboard/README.md]

【3】Accessing Dashboard 1.7.x and above [https://github.com/kubernetes/dashboard/wiki/Accessing-Dashboard---1.7.X-and-above**] **

[4] Kubernetes Dashboard1.7.0の展開2つまたは3つのこと[ [** http://tonybai.com/2017/09/26/some-notes-about-deploying-kubernetes-dashboard-1-7-0/ ](http://tonybai.com/2017/09/26/some-notes-about-deploying-kubernetes-dashboard-1-7-0/)] **

【5】How to sign in the kubernetes dashboard? [https://stackoverflow.com/questions/46664104/how-to-sign-in-kubernetes-dashboard]

[6]ダッシュボードの概要[ [** https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/#welcome-view ](https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/#welcome-view)] **

【7】Dashboard Authentication[https://kubernetes.io/docs/admin/authentication/]

Recommended Posts

Centos7.2 /7.3クラスターインストールKubernetes1.8.4 +ダッシュボード
CentOS7はKubernetes1.16.3をインストールします
CentOS6インストールcouchdb2クラスター
Centos7ビルドKubernetesクラスター
Centos7インストールkubernetesチュートリアル
Centos7はKubernetesクラスターを展開します
CentOS7インストールrabbitmqクラスター(バイナリ)
Centos7インストールk8sクラスター1.15.0バージョン
1.5Centos7をインストールする
Centos6はPython2.7.13をインストールします
CentOS7.2はMysql5.7.13をインストールします
CentOSはRedmineをインストールします
Centos7はPython3.6をインストールします。
CentOS7はDockerをインストールします
CentOS7はGlusterFSをインストールします
CentOS7.4はZabbix3.4をインストールします
CentOS7はDockerをインストールします
Centos6.5はTomcatをインストールします
CentOSはPython3.6をインストールします
VmwareはCentOS6をインストールします
centos7 install docker-ce 18.01.0
CentOS7.2はMariaDBをインストールします
CentOS7はHadoop3.0.0をインストールします
Centos7はPython2.7をインストールします
Centos7.6はseleniuをインストールします
CentOS7.3はZabbix3をインストールします
Centos7はLAMP + PHPmyadminをインストールします
CentOSインストールmysql
CentOSはopenjdk1.8をインストールします
CENTOS6.5インストールCDH5.12.1(1)
CentOSはPHPをインストールします
CentOS6はmist.ioをインストールします
Centos7はDockerをインストールします
CentOS7インストールmysql
centOsはrabbitMQをインストールします
CentOS7はMySQL5.6をインストールします
Centos7はNginxをインストールします
CentOS6.5はCDH5.13をインストールします
Centos7インストールdocker18
CentosはPython3をインストールします
centos7インストールドッカー
CentOSインストールjdk
centos7インストールnginx-rtmp
CentOS8はMySQL8.0をインストールします
Centos6.3はKVMをインストールします
CentOSはPostgreSQL9.1をインストールします
CentOS7はmysql8をインストールします
CentOS7はJava1.8をインストールします
CentOS8はfastdfs6.06をインストールします
CentOS7はGitlabをインストールします
Centos7はPostgreSQLをインストールします
CentOS7はMySQL8をインストールします
CentOS7はJava1.8をインストールします
CentOS6はDockerをインストールします
centos6.5インストールzabbix4.4
Centos8はDockerをインストールします
CentOS6.8はpython2.7をインストールします
CentOSインストールnodejs8
CentOS6.5はGNS3をインストールします
centos7.5インストールmysql5.7.17
Centos7はMySQL8.0をインストールします-手動