初始化kubernetes
此文介绍如何初始化kubernetes。事前说明本文介绍的是一台虚拟机同时作为Master和Node。虚拟机软件是oracle virtualbox,操作系统是centos 7.5,kubernetes版本是1.11.2。事前安装了docker-ce,kubeadm,kubectl,kubelet。并做了一些初始化处理。网络配置了NAT和Host-Only两种。其中Host-Only...
此文介绍如何初始化kubernetes。
事前说明
本文介绍的是一台虚拟机同时作为Master和Node。
虚拟机软件是oracle virtualbox,操作系统是centos 7.5,kubernetes版本是1.11.2。
事前安装了docker-ce,kubeadm,kubectl,kubelet。并做了一些初始化处理。
网络配置了NAT和Host-Only两种。其中Host-Only的网卡为enp0s8,这个会在kubeadm init命令中用的。
其他信息如下:
- 本机的普通用户名:think
- hostname:k8s
- ip:192.168.56.111
如果没有可以安装kubernetes的网络环境,可以下载稍第一版本的kubernetes1.10.1版本的虚拟机作为学习使用。
(下载地址:https://blog.csdn.net/engchina/article/details/80087344)
初始化
如果以前启动过kubernetes,需要reset,使用root用户执行以下命令。
kubeadm reset
使用root用户初始化kubenetes。(网卡enp0s8和版本stable-1.11(如果使用的是本文中提到的kubernetes1.10.1版本虚拟机,请改为stable-1.10)请根据各自环境修改。)
IP_ADDR=$(ip addr show enp0s8 | grep -Po 'inet \K[\d.]+')
echo $IP_ADDR
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=${IP_ADDR} --kubernetes-version stable-1.11
如果正常安装,最后能看到如下日志信息。(这个信息情保存起来,特别是kubeadm join命令,有其他Node加入时会使用到。)
Your Kubernetes master has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
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:
kubeadm join 192.168.56.111:6443 --token a7snof.m8dkitymup0nsa4p --discovery-token-ca-cert-hash sha256:4dd26df04378c50f688bfcc1abef29174b68cd4af0b689d65a062ddb3aa2385f
使用普通用户执行以下命令,此例中为think用户。
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
发布pod network。此例中使用canal。
kubectl apply -f \
https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/canal/rbac.yaml
kubectl apply -f \
https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/canal/canal.yaml
使这台虚拟机同时作为Node,执行以下命令。
kubectl taint node k8s node-role.kubernetes.io/master-
如果只是作为Master使用,执行以下命令恢复。
kubectl taint node k8s node-role.kubernetes.io/master=””:NoSchedule
执行以下命令确认。
确认节点信息。
kubectl get nodes
笔者的日志显示是
NAME STATUS ROLES AGE VERSION
k8s Ready master 33m v1.11.2
确认所有信息,包括pod,service等。
kubectl get all --all-namespaces
笔者的日志显示是
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system pod/canal-rqrb4 3/3 Running 0 27m
kube-system pod/coredns-78fcdf6894-l4msq 1/1 Running 0 30m
kube-system pod/coredns-78fcdf6894-q45ft 1/1 Running 0 30m
kube-system pod/etcd-k8s 1/1 Running 0 29m
kube-system pod/kube-apiserver-k8s 1/1 Running 0 29m
kube-system pod/kube-controller-manager-k8s 1/1 Running 0 29m
kube-system pod/kube-proxy-dmjbs 1/1 Running 0 30m
kube-system pod/kube-scheduler-k8s 1/1 Running 0 29m
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 30m
kube-system service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 30m
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
kube-system daemonset.apps/canal 1 1 1 1 1 <none> 27m
kube-system daemonset.apps/kube-proxy 1 1 1 1 1 beta.kubernetes.io/arch=amd64 30m
NAMESPACE NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
kube-system deployment.apps/coredns 2 2 2 2 30m
NAMESPACE NAME DESIRED CURRENT READY AGE
kube-system replicaset.apps/coredns-78fcdf6894 2 2 2 30m
确认STATUS为“Running”,AVAILABLE还有READY的数和DESIRED的数相等,说明正常初始化了。
完结!
更多推荐
所有评论(0)