運維のk 8 sクラスタ構築
K 8 sクラスタをkubeadmで配備
1:master(192.168.1.1.99)コンポーネント:
https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
docker-ce kubelet kubeadm kubectlのインストール
dockerを初期化dockerサービスを開始
クbeletの初期化
次の内容が表示されると、初期化に成功しました.
Node 01インストール初期化
依存ミラーをdockerに自動的にダウンロードさせるには、masterのdockerをコピーします.サービスファイルをnode 01にmasterのk 8 s.repoとダウンロードしたdocker-ceのyumウェアハウスは、yum中にエラーが発生した場合にmasterの方法で実行するように構成されています.
メインノードの上でkubectl get nodesは系を調べます
:
1、 ;
2、 :dns OR hosts 3 /etc/hosts
3、 iptables firewalld disable
1:master(192.168.1.1.99)コンポーネント:
https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
yum docker docker-ce.repo
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
cd /etc/yum.repos.d/
vim k8s.repo # kubetnetes
[k8s]
name=K8s Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1
yum repolist
docker-ce kubelet kubeadm kubectlのインストール
yum install docker-ce kubelet kubeadm kubectl -y
wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
rpm --import yum-key.gpg
dockerを初期化dockerサービスを開始
systemctl daemon-reload #
systemctl start docker.service # docker
systemctl enable docker.service #
systemctl enable kubelet.service
docker docker
1、 docker
cd /usr/lib/systemd/system/docker.service
# for containers run by docker
Environment="HTTPS_PROXY=http://www.ik8s.io:10080"
Environment="NO_PROXY=127.0.0.0/8,172.20.0.0/16"
2、
kubeadm config images list
k8s.gcr.io/kube-apiserver:v1.13.1
k8s.gcr.io/kube-controller-manager:v1.13.1
k8s.gcr.io/kube-scheduler:v1.13.1
k8s.gcr.io/kube-proxy:v1.13.1
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.2.24
k8s.gcr.io/coredns:1.2.6
docker pull docker.io/mirrorgooglecontainers/kube-apiserver:v1.13.1
docker tag docker.io/mirrorgooglecontainers/kube-apiserver:v1.13.1 k8s.gcr.io/kube-apiserver:v1.13.1
docker pull docker.io/mirrorgooglecontainers/kube-controller-manager:v1.13.1
docker tag docker.io/mirrorgooglecontainers/kube-controller-manager:v1.13.1 k8s.gcr.io/kube-controller-manager:v1.13.1
docker pull docker.io/mirrorgooglecontainers/kube-scheduler:v1.13.1
docker tag docker.io/mirrorgooglecontainers/kube-scheduler:v1.13.1 k8s.gcr.io/kube-scheduler:v1.13.1
docker pull docker.io/mirrorgooglecontainers/kube-proxy:v1.13.1
docker tag docker.io/mirrorgooglecontainers/kube-proxy:v1.13.1 k8s.gcr.io/kube-proxy:v1.13.1
docker pull docker.io/mirrorgooglecontainers/pause:3.1
docker tag docker.io/mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
docker pull docker.io/mirrorgooglecontainers/etcd:3.2.24
docker tag docker.io/mirrorgooglecontainers/etcd:3.2.24 k8s.gcr.io/etcd:3.2.24
docker pull docker.io/coredns/coredns:1.2.6
docker tag docker.io/coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6
-----------------------------------------------------------------------------
クbeletの初期化
kubelet /etc/sysconfig/kubelet, Swap , :
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
kubelet
systemctl enable kubelet.service
kubeadm init --kubernetes-version=v1.13.1 --pod-network-cidr=192.168.0.0/6 --service.cidr=192.168.1.0/12 --ignore-preflight-errors=Swap
--kubernetes-version=v1.11.1 # k8s
--pod-network-cidr=10.244.0.0/16 #pod
--service.cidr=10.96.0.0/12 #service
--ignore-preflight-errors=Swap #
error tag
次の内容が表示されると、初期化に成功しました.
Your Kubernetes master has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir ~/.kube # .kube sudo root
sudo cp /etc/kubernetes/admin.conf ~/.kube/ # admin.conf ./kube
sudo chown $(id -u):$(id -g) $HOME/.kube/config # ./kube
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
You can now join any number of machines by running the following on each node
as root:
# node ( )
kubeadm join 192.168.1.179:6443 --token 5m7gg1.czd5td6itn9g2fhz --discovery-token-ca-cert-hash sha256:50c64cac88defae6beecf7bdde9b212094d7cc937b709b94f0baaeaaa4246e7e
root :
mkdir ~/.kube
cp /etc/kubernetes/admin.conf ~/.kube/
root
kubectl get cs #
kubectl get nodes #
NAME STATUS ROLES AGE VERSION
master NotReady master 19h v1.13.1 # flannel
flannel
https://github.com/coreos/flannel #flannel
#
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
#
NAME STATUS ROLES AGE VERSION
master Ready master 19h v1.13.1
# ( master pod )
kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-86c58d9df4-4frfz 1/1 Running 0 19h
coredns-86c58d9df4-hlr72 1/1 Running 0 19h
etcd-master 1/1 Running 0 19h
kube-apiserver-master 1/1 Running 0 19h
kube-controller-manager-master 1/1 Running 0 19h
kube-flannel-ds-amd64-4c7jx 1/1 Running 0 19h
kube-flannel-ds-amd64-89m8l 1/1 Running 0 17h
kube-flannel-ds-amd64-rmxj9 1/1 Running 0 19h
kube-proxy-8pnqs 1/1 Running 0 17h
kube-proxy-b4hlj 1/1 Running 0 19h
kube-proxy-fzp2m 1/1 Running 0 19h
kube-scheduler-master 1/1 Running 0 19h
# kube-system
kubectl get ns
NAME STATUS AGE
default Active 19h
kube-public Active 19h
kube-system Active 19h
#
Node 01インストール初期化
依存ミラーをdockerに自動的にダウンロードさせるには、masterのdockerをコピーします.サービスファイルをnode 01にmasterのk 8 s.repoとダウンロードしたdocker-ceのyumウェアハウスは、yum中にエラーが発生した場合にmasterの方法で実行するように構成されています.
yum install docker-ce kubelet kubeadm -y
1、 docker
2、 docker 、 kubelet
systemctl start docker.service # docker
systemctl enable docker.service #
systemctl enable kubelet.service
kube-proxy 、 pause master
node01
kubeadm job
kubeadm join 192.168.1.179:6443 --token 5m7gg1.czd5td6itn9g2fhz --discovery-token-ca-cert-hash sha256:50c64cac88defae6beecf7bdde9b212094d7cc937b709b94f0baaeaaa4246e7e --ignore-preflight-errors=Swap #
メインノードの上でkubectl get nodesは系を調べます
kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 20h v1.13.1
node01 Ready 19h v1.13.1 #
# node02 node01