k8s-v1.10.11インストール
8355 ワード
Centos 7はk 8 s-v 1をインストールする.10.11
環境の説明:
win10 + vmware
:centos7
master:4G 4
node1: 8G 8
node2: 8G 8
マスターとnodeのhostsについては、設定しなくてもいいです.
ステップ1~6は、master、nodeともに実行され、ステップ7は、masterにおいて
kubectl init...
、nodeにおいてkubectl join...
が実行され、残りのステップが実行される必要があるかどうかは状況によって異なり、以下に詳細に説明する.1、ファイアウォールを閉じる実行
systemctl stop firewalld
systemctl disable firewalld
2、selinuxとswap selinuxを無効にする:setenforce 0
vi /etc/selinux/config
SELINUX=disabled
swapoff -a
sysctl --system
cat < /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf
PS:エラー解決centos 7 bridge-nf-call-ip 6 tables出現No such file or directoryを追加
sysctl-pの実行時に表示されます.
[root@localhost ~]# sysctl -p
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: No such file or directory
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory
解決方法:インストールライブラリ
yum install -y epel-release
yum install -y conntrack ipvsadm ipset jq sysstat curl iptables
起動システムモジュールmodprobe br_netfilter
modprobe ip_vs
[root@localhost ~]# modprobe br_netfilter
[root@localhost ~]# ls /proc/sys/net/bridge
bridge-nf-call-arptables bridge-nf-filter-pppoe-tagged
bridge-nf-call-ip6tables bridge-nf-filter-vlan-tagged
bridge-nf-call-iptables bridge-nf-pass-vlan-input-dev
実行
[root@localhost ~]# sysctl -p
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
これで、エラー解決
4、変換源
cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
5、インストールコンポーネント(centos 7)
yum install -y kubernetes-cni-0.6.0
yum install -y kubeadm-1.10.0-0 kubectl-1.10.0-0
PS:
1、 `yum -y install kubelet kubeadm kubectl`, 。 ,
, (yum install -y kubeadm-1.10.0-0)
2、 k8s ,kubeadm kubectl kubelet 。 kubelet cni
, cni kubelet, kubelet cni
6、ミラーPSのダウンロード:壁内の環境にある場合は、k 8 s対応バージョンのコンポーネントを手動でプールからミラーする必要があります.壁外の場合は無視できます
作成
vim pull.sh
#!/bin/bash
images=(kube-apiserver-amd64:v1.10.11 kube-scheduler-amd64:v1.10.11 \
kube-controller-manager-amd64:v1.10.11 kube-proxy-amd64:v1.10.11 k8s-dns-kube-dns-amd64:1.14.8 \
k8s-dns-dnsmasq-nanny-amd64:1.14.8 k8s-dns-sidecar-amd64:1.14.8 etcd-amd64:3.1.12 flannel:v0.10.0-amd64 \
pause-amd64:3.1)
for imageName in ${images[@]} ; do
docker pull registry.aliyuncs.com/google_containers/$imageName
docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
docker rmi registry.aliyuncs.com/google_containers/$imageName
done
実行
chmod +x pull.sh
./pull.sh
[root@node3 ~]# chmod +x pull.sh
[root@node3 ~]# ./pull.sh
Trying to pull repository registry.aliyuncs.com/google_containers/kube-apiserver-amd64 ...
v1.10.11: Pulling from registry.aliyuncs.com/google_containers/kube-apiserver-amd64
90e01955edcd: Already exists
6b53b376f822: Downloading [==> ] 1.67 MB/32.65 MB
......
7、master初期化/node join加入クラスタmaster実行:
kubeadm init --kubernetes-version=v1.10.11 --pod-network-cidr=10.244.0.0/16
[root@master ~]# kubeadm init --kubernetes-version=v1.10.11 --pod-network-cidr=10.244.0.0/16
...
node実行:
kubeadm join 192.168.221.130:6443 --token mzyzsb.v7u2jjhikm5qihj2 \ --discovery-token-ca-cert-hash sha256:cc38145dd3197bc73ed0cb85214bdf0f869331353c514713c0bef36779bf39b5
[root@master /]# kubeadm join 192.168.221.130:6443 --token mzyzsb.v7u2jjhikm5qihj2 \
> --discovery-token-ca-cert-hash sha256:cc38145dd3197bc73ed0cb85214bdf0f869331353c514713c0bef36779bf39b5
...
PS:1)-pod-network-cidrパラメータは10.244.0.0/16を使用します.flannelコンポーネントが選択されているためです.他のコンポーネントを選択すると、そのパラメータが変更されます.2)masterがpodをスケジューリングできるようにするには、次のコマンドを実行します.
kubectl taint nodes --all node-role.kubernetes.io/master-
3)master参加スケジューリングkubectl taint node master node-role.kubernetes.io/master="":NoSchedule
4)nodeノードが実行するkubeadm join ...
コマンドをキャンセルし、masterがkubeadm init
を実行するとshellに出力され、直接copyがnodeに実行されます.8、権限masterの設定
1、 kubectl root ,
export KUBECONFIG=/etc/kubernetes/admin.conf
2、 kubectl root ,
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
node
node kubectl ,
1、 master `/etc/kubernetes/admin.conf`,scp node
2、 master 1 2, 。
クラスタ情報の表示
kubectl get nodes
[root@master /]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
node2 NotReady node2 6d19h v1.10.11
node3 NotReady node3 5d22h v1.10.11
master NotReady master 6d19h v1.10.11
PS:1)nodeノードでkubectlを使用する必要がない場合、このステップはnodeノードで無視できます.2)このライセンスは会社でよく使われており、root以外のユーザーがkubectlを使用することを許可するアプリケーションシーンがあります.非maserノードを露出してkubectlを使用します.3)情報を見ると,いくつかのノードの状態がNotReadyであるのは,flannelプラグインがインストールされていないためである4)kubectlコマンドがエラーを報告するためである.
[root@node3 ~]# kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?
上記のエラーの原因の1つは、関連するユーザーに権限が与えられていないため、上記の手順を実行すれば解決できます.
9、flanelネットワークプラグインのインストール実行
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/62e44c867a2846fefb68bd5f178daf4da3095ccb/Documentation/kube-flannel.yml
ノード情報の表示[root@master /]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
node2 Ready node2 6d19h v1.10.11
node3 Ready node3 5d22h v1.10.11
master Ready master 6d19h v1.10.11
これでk 8 sの導入が完了しました
PS:2つのmagicのコマンドを補充する1)
kubectl label node node-role.kubernetes.io/=
クラスタの配備を開始したばかりの頃、kubectl get nodes
に見えるnodeのrolesはNone[root@master /]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
node2 NotReady none 6d21h v1.10.11
node3 Ready none 5d23h v1.10.11
master Ready none 6d21h v1.10.11
このコマンドは、ノードのrolesプロパティ実行
kubectl label node node2 node-role.kubernetes.io/node2=
を変更できます.[root@master /]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
node2 NotReady node2 6d21h v1.10.11
node3 Ready none 5d23h v1.10.11
master Ready none 6d21h v1.10.11
2)
kubeadm token create --print-join-command
実行後kubeadm init...
shellにkubeadm join ....
コマンドが出力されます.kubeadm join ....
には、有効期限があるtokenパラメータが含まれています.以上のコマンドをmasterで実行すると、完了したkubeadm join ....
コマンドを再生成できます.[root@master /]# kubeadm token create --print-join-command
kubeadm join 192.168.138.131:6443 --token lrzi12.7ttonier7365bdnb --discovery-token-ca-cert-hash sha256:5336f2fcd7a0ab24ddb551a560096d5b309bf2f30b9cefe1b346e8561960d385
第2の命令は数十編のopenstackをひっくり返した後の成果ですよ.後になって、kubernetesの権威あるガイドラインの隅にこっそり隠れていることに気づきました.さらにk 8 sコマンドは私のkubernetesのよく使うコマンドの総括を参考にすることができます
元旦にk 8 s配備の文章を書きたいと思って、今まで引きずって完成しました.ネット上の品質の高いk 8 s配置に関する文章ですが、なんだか細かい点を説明していないような気がします.後でいくつかのk 8 s関連の文章を書きます.異なるバージョンの異なるシステムの下での配置、k 8 s関連コンポーネントの紹介と応用、kubeflowの配置と応用などが含まれています.興味のある盆友たちは一緒に検討することができます.