Kubernetes Controller: Difference between revisions

From WilliamsNet Wiki
Jump to navigation Jump to search
(added node-name to kubeadm init command)
(added debian repo instructions and headers)
Line 1: Line 1:
The kubernetes controller install is based on the prerequisites in the [[Kubernetes Cluster Installation]] page.
The kubernetes controller install is based on the prerequisites in the [[Kubernetes Cluster Installation]] page.


Install the kubernetes repo:
== Install the kubernetes repo ==


===CentOS 7 ===
<pre>cat <<EOF > /etc/yum.repos.d/kubernetes.repo
<pre>cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
[kubernetes]
Line 18: Line 19:


  yum install -y kubelet kubectl kubeadm --disableexcludes=kubernetes
  yum install -y kubelet kubectl kubeadm --disableexcludes=kubernetes
  systemctl start kubelet
 
  systemctl enable kubelet
=== Debian 10 ===
apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
  apt-get install -y kubelet kubeadm kubectl
  apt-mark hold kubelet kubeadm kubectl
 
== Install the master ==


Make sure that /etc/sysconfig/kubelet (or /etc/default/kubelet for Debian) has the following line:
Make sure that /etc/sysconfig/kubelet (or /etc/default/kubelet for Debian) has the following line:


  KUBELET_EXTRA_ARGS=--authentication-token-webhook --fail-swap-on=false --feature-gates=DevicePlugins=true --kubelet-cgroups=/systemd/system.slice
  KUBELET_EXTRA_ARGS=--authentication-token-webhook --fail-swap-on=false --feature-gates=DevicePlugins=true --kubelet-cgroups=/systemd/system.slice
systemctl start kubelet
systemctl enable kubelet


Initialize master with parameter to support flannel network (as root)
Initialize master with parameter to support flannel network (as root)
Line 29: Line 42:
  kubeadm init --pod-network-cidr=10.244.0.0/16 --token-ttl 0  --ignore-preflight-errors Swap --node-name `hostname -s`
  kubeadm init --pod-network-cidr=10.244.0.0/16 --token-ttl 0  --ignore-preflight-errors Swap --node-name `hostname -s`


Initialize authentication for kubectl (as user)
== Initialize authentication for kubectl ==


  mkdir -p $HOME/.kube
  mkdir -p $HOME/.kube
Line 35: Line 48:
  sudo chown $(id -u):$(id -g) $HOME/.kube/config  
  sudo chown $(id -u):$(id -g) $HOME/.kube/config  


Install flannel pod network (as user)
== Install flannel pod network ==


  kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml


Enable pods to run on master node if desired (as user)
== Enable pods to run on master node if desired ==


  kubectl taint nodes --all node-role.kubernetes.io/master-
  kubectl taint nodes --all node-role.kubernetes.io/master-

Revision as of 23:55, 20 August 2019

The kubernetes controller install is based on the prerequisites in the Kubernetes Cluster Installation page.

Install the kubernetes repo

CentOS 7

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg 
exclude=kube*
EOF 

... or just copy it from an already installed kubernetes node ...

Install the pieces of the kubeadm installation on all nodes

yum install -y kubelet kubectl kubeadm --disableexcludes=kubernetes

Debian 10

apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

Install the master

Make sure that /etc/sysconfig/kubelet (or /etc/default/kubelet for Debian) has the following line:

KUBELET_EXTRA_ARGS=--authentication-token-webhook --fail-swap-on=false --feature-gates=DevicePlugins=true --kubelet-cgroups=/systemd/system.slice
systemctl start kubelet
systemctl enable kubelet

Initialize master with parameter to support flannel network (as root)

kubeadm init --pod-network-cidr=10.244.0.0/16 --token-ttl 0  --ignore-preflight-errors Swap --node-name `hostname -s`

Initialize authentication for kubectl

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config 

Install flannel pod network

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Enable pods to run on master node if desired

kubectl taint nodes --all node-role.kubernetes.io/master-