centos7でk8sクラスターをインストールおよび構成するための詳細な手順

構成の背景の紹介

kubernetesは、Googleのオープンソースコンテナクラスター管理システムであり、アプリケーションの展開、保守、拡張メカニズムなどの機能を提供します。kubernetesを使用すると、k8s(kとsの間に8文字あります)と呼ばれるクラスター間コンテナ化アプリケーションの管理が容易になります。

なぜこのような複雑なドッカークラスター管理ツールをkubernetesで使用するのですか?私は最初にdockerの組み込みの群れと接触しました。このツールは非常にシンプルで、dockerクラスター機能を完了するのに高速です。ただし、docker1.13の組み込みスウォームをクラスターとして使用すると、VIP [ロードバランシング](https://cloud.tencent.com/product/clb?from=10680)がポートを外部ネットワークに正しくマッピングしないか、アドレスが占有されているため、高可用性の要件には適していません。解決策が見つかりませんでした。k8sにしか切り替えることができません。

ラボ環境

インストール

yum-config-manager --add-repo https://docs.docker.com/v1.13/engine/installation/linux/repo_files/centos/docker.repo 
yum makecache fast 
yum -y install docker-engine-1.13.1 
yum install epel-release -y 
yum remove -y docker-engine* 
yum install -y kubernetes etcd docker flannel 

構成ファイルの変更

以下の10.135.163.237は、独自のサーバーIPに置き換えられることに注意してください。

sed -i "s/localhost:2379/10.135.163.237:2379/g"/etc/etcd/etcd.conf

sed -i "s/localhost:2380/10.135.163.237:2380/g"/etc/etcd/etcd.conf

sed -i "s/10.135.163.237:2379/10.135.163.237:2379,http:\/\/127.0.0.1:2379/g"/etc/etcd/etcd.conf

sed -i "s/127.0.0.1:2379/10.135.163.237:2379/g"/etc/kubernetes/apiserver

sed -i "s/--insecure-bind-address=127.0.0.1/--insecure-bind-address=0.0.0.0/g"/etc/kubernetes/apiserver

sed -i "s/--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota/--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota/g"/etc/kubernetes/apiserver

sed -i "s/--hostname-override=127.0.0.1/--hostname-override=10.135.163.237/g"/etc/kubernetes/kubelet

sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g"/etc/kubernetes/kubelet

sed -i "s/--address=127.0.0.1/--address=0.0.0.0/g"/etc/kubernetes/kubelet

sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g"/etc/kubernetes/config

sed -i "s/127.0.0.1:2379/10.135.163.237:2379/g"/etc/sysconfig/flanneld 

ホストを変更

vi /etc/hosts 
10.135.163.237 k8s_master 

ネットワークを追加

systemctl enable etcd.service

systemctl start etcd.service

etcdctl mk //atomic.io/network/config '{"Network":"172.17.0.0/16"}' 

サービス開始

service docker start 
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler kube-proxy kubelet docker flanneld ;do systemctl restart $SERVICES; systemctl enable $SERVICES; systemctl status $SERVICES; done;

最初のデモ

ファイルa.yamlを書き込む

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
 name: my-app
spec: 
 replicas:2
 template:
 metadata:
 labels:
 app: my-app
 spec:
 containers:- name: my-app
 image: registry.alauda.cn/yubang/paas_base_test
 ports:- containerPort:80
 command:["/bin/bash","/var/start.sh"] 
 resources: 
 limits: 
 cpu:0.5 
 memory: 64Mi 

**ファイルb.yaml **を書き込む

apiVersion: v1 
kind: Service 
metadata: 
 name: my-app-svc
 labels:
 app: my-app
spec: 
 ports:- port:80
 targetPort:80
 nodePort:30964
 type: NodePort
 selector:
 app: my-app

サービスの作成

kubectl create -f a.yaml --validate 
kubectl create -f b.yaml --validate 

サービスの削除

kubectl delete-f a.yaml 
kubectl delete-f b.yaml 

子ノードを追加

ソフトウェアをインストールする

yum-config-manager --add-repo https://docs.docker.com/v1.13/engine/installation/linux/repo_files/centos/docker.repo 
yum makecache fast 
yum -y install docker-engine-1.13.1 
yum install epel-release -y 
yum remove -y docker-engine* 
yum install -y kubernetes docker flannel 

構成ファイルを変更します(10.135.163.237がメインノードIP、139.199.0.29が現在のノードIPです)

sed -i "s/--hostname-override=127.0.0.1/--hostname-override=139.199.0.29/g"/etc/kubernetes/kubelet

sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g"/etc/kubernetes/kubelet

sed -i "s/--address=127.0.0.1/--address=0.0.0.0/g"/etc/kubernetes/kubelet

sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g"/etc/kubernetes/config

sed -i "s/127.0.0.1:2379/10.135.163.237:2379/g"/etc/sysconfig/flanneld

sed -i "s/--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota/--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota/g"/etc/kubernetes/apiserver

サービス開始

service docker start

for SERVICES in kube-proxy kubelet docker flanneld;do 
 systemctl restart $SERVICES
 systemctl enable $SERVICES
 systemctl status $SERVICES
 done;

メインサーバー上のノードを表示

kubectl get node 

サービスを再起動します(クラスターに再参加します)

systemctl restart kube-apiserver.service 

ノードを削除

kubectl delete node node ip

総括する

以上がこの記事の全内容です。この記事の内容があなたの研究や仕事に一定の参考になることを願っています。ご不明な点がございましたら、メッセージを残して交換してください。ZaLouへのご支援ありがとうございます。

Recommended Posts

centos7でk8sクラスターをインストールおよび構成するための詳細な手順
Centos7にFreeIPAをインストールして構成する
VMware 15を使用して仮想マシンをインストールし、CentOS8を使用するための詳細な手順
CentOS7にElasticsearchをインストールして構成する方法
CentOS8にVNCをインストールして構成する方法
CentOS8にRedisをインストールして構成する方法
CentOS6にphpMyAdminをインストールして構成する方法
CentOS8にOwncloudをインストールして構成する方法
CentOS8にRedmineをインストールして構成する方法
Centos6.5はmongodbをインストールして構成します
Centos7インストールk8sクラスター1.15.0バージョン
CentOS8にNFSサーバーをインストールして構成する方法
Ubuntu16.04およびApache仮想ホストを構成するための詳細な手順
vmware10.0クラックバージョンにcentosをインストールするための詳細な手順
CentOS5.9でkeepalivedをインストールして構成します
CentOS7をCentOS8にアップグレードする方法(詳細な手順)
CentOS8にPostfixメールサーバーをインストールして構成する方法
Linux CentOS7にJDKをインストールするための詳細な手順
UbuntuにDockerをインストールして構成する
CentOS7.3はiptablesをインストールして詳細に使用します
CentOS8-NFSサービスをインストールして構成する
Centos7.2にHDP2.6をインストールする方法
CentOS最小限のインストールとTIPSの構成
vsftpdをインストールするためのCentOS6.8メソッドの手順
MySQLをインストールしてUbuntuのデフォルトパスワードを変更するための詳細な手順
Centos8はApachehttpd2.4.37を使用して、Webサーバーの手順を詳細にインストールします
k8sプラクティス(1):Centos 7.6デプロイメントk8s(v1.14.2)クラスター
CentOS7.3.1611はk8s1.5.2クラスターを展開します
CentOS7はk8sクラスターを展開します
Centos7はKubernetesクラスターを展開します
centos7でk8sクラスターをインストールおよび構成するための詳細な手順
Centos7インストールk8sクラスター1.15.0バージョン
Centos7hadoopクラスターのインストールと構成
centos7にAndroidSDKをインストールする方法
Dockerをデプロイし、CentOSでNginxを構成します
Centos8でnodejsとyumをコンパイルしてインストールします
centos8カスタムディレクトリにnginxをインストールします(詳細なチュートリアル)
Ubuntu16.04にNATSをインストールして構成する方法
Ubuntu18.04にGogsをインストールして構成する方法
VMware FusionはCentOS7をインストールし、ネットワークを構成します
CentOS7にDockerをインストールして使用する方法
Ubuntu18.04にCyberpanelをインストールして構成する方法
Ubuntu16.04にownCloudをインストールして構成する方法
Ubuntu16.04にownCloudをインストールして構成する方法
Dockerでsshをサポートするようにcentosコンテナを構成します
Ubuntu18.04にGitLabをインストールして構成する方法
Ubuntu18.04にAnsibleをインストールして構成する方法
LinuxにAnacondaをインストールするための詳細な手順(Ubuntu 18.04)
CentOS8にComposerをインストールして使用する方法
Ubuntu16.04にElasticsearchをインストールして構成する方法
Ubuntu14.04にPostGISをインストールして構成する方法
CentOS8にNode.jsとnpmをインストールする方法
Ubuntu18.04にVNCをインストールして構成する方法
Ubuntu16.04にSphinxをインストールして構成する方法
Ubuntu14.04にOrientDBをインストールして構成する方法
centos7.2.1511にjdk1.8.0_151とmysql5.6.38をインストールする方法
centos8カスタムディレクトリにphp7.3をインストールする方法
CentOS8にCurlをインストールして使用する方法
Centos7.2は、phpMyAdminをビルドする方法をコンパイルしてインストールします
Ubuntu12.04にAppScaleをインストールして構成する方法
centosにtomcatをインストールおよびアンインストールする方法
Ubuntu14.04にPostGISをインストールして構成する方法
centos7をインストールして接続します
Centos7にMySQL5.7をインストールします
CentOS7.3.1611はk8s1.5.2クラスターを展開します
セントスにphpをインストールする
CentOS7のvsftpdのインストール手順