ubuntu 安装 kubernetes
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu 安装 kubernetes相关的知识,希望对你有一定的参考价值。
参考技术A 最近在学云原生的东西,用到k8s比较多,试着安装了一下,踩了一些坑,总算顺利的安装上了,用到的版本为ubuntu 20.04 安装docker 20.10、kubbernetes 1.23.1关闭虚拟内存
安装docker
再更新一下,添加docker镜像源,阿里的没配置账户用不了,这里用的网易镜像源,网易yyds
重启docker
接下来安装 k8s
最后就是初始化了,只要改apiserver-advertise-address为你的ip就行了
初始化成功
参考文章:
https://www.cnblogs.com/a208606/p/15539600.html
https://blog.csdn.net/u010381752/article/details/114086343
markdown 在Ubuntu 16上安装3节点Kubernetes群集
## Master: Dependencies
```
apt update && apt upgrade -y
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt install linux-image-extra-virtual ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt update
```
## Master: Install Docker, Kubernetnes:
```
apt install docker-ce kubelet kubeadm kubectl kubernetes-cni -y
```
## Master: Initialize the Kubernetes Cluster:
```
kubeadm init --pod-network-cidr 192.168.0.0/16 --service-cidr 10.96.0.0/12 --service-dns-domain "k8s" --apiserver-advertise-address $(ifconfig eth0 | grep 'inet addr'| cut -d':' -f2 | awk '{print $1}')
```
You should get information back on initiating commands as a normal user, as well as the network that you need to deploy as well as how to join worker nodes to the cluster.
## Master: Setup the Kubernetes Config:
As a normal user:
```
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config | tee -a ~/.bashrc
```
## Master: Deploy a POD Network to the Cluster:
As a normal user, deploy a [pod network](https://www.projectcalico.org/):
```
kubectl apply -f http://docs.projectcalico.org/v2.3/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml
```
## Worker: Setup Dependencies and Install Kubernetes:
```
apt update && apt upgrade -y
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt install linux-image-extra-virtual ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt update
apt install docker-ce kubelet kubeadm kubectl kubernetes-cni -y
```
## Worker: Setup the Kubernetes Config:
As a normal user:
```
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config | tee -a ~/.bashrc
```
## Worker: Join the Node to the Cluster:
From the output of the `kubeadm init`, you received a join token, which we will be running from the node that we would like to join:
```
kubeadm join --token 51e20a.40a4599dbe3ca2e0 172.31.39.193:6443 --discovery-token-ca-cert-hash sha256:[long-string]
```
## Master: Check if the nodes are reachable:
```
kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-172-31-32-88 Ready <none> 16m v1.8.4
ip-172-31-39-193 Ready master 23m v1.8.4
```
## Master: Verify if all the Kube-System Containers are running:
```
kubectl get all --namespace=kube-system
```
## Master: List the Pods:
List the containers thats currently running:
```
kubectl get pods
NAME READY STATUS RESTARTS AGE
guids-6d7b75568d-sndbd 0/1 ContainerCreating 0 5s
```
## Master: Deploy a Pod:
Lets deploy a service into our kubernetes cluster:
```
kubectl run guids --image=alexellis2/guid-service:latest --port 9000
deployment "guids" created
kubectl get pods
NAME READY STATUS RESTARTS AGE
guids-6d7b75568d-sndbd 1/1 Running 0 15s
```
## Master: Describe the Pod:
Describe the Pod and get the IP:
```
kubectl describe pod guids-6d7b75568d-sndbd | grep IP
IP: 192.168.144.66
```
## Master: Describing Services:
```
kubectl describe services kubernetes-dashboard --namespace=kube-system
```
## Master: Testing the Service:
```
curl 192.168.144.66:9000/guid
{"guid":"dde5c4f1-d412-4acf-9ab3-bd81b347bc4f","container":"guids-6d7b75568d-sndbd"}
```
## Master: Getting the Logs:
```
kubectl logs guids-6d7b75568d-sndbd
```
## Master: Exec into a Cointainer:
```
kubectl exec -it guids-6d7b75568d-sndbd sh
```
## Create the Dashboard Service:
```
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
kubectl describe services kubernetes-dashboard --namespace=kube-system
kubectl proxy --address 0.0.0.0 --port 8001 --accept-hosts='^*$'
# or if using localhost:
ssh -L 8001:127.0.0.1:8001 -N
```
## Deploy a [Web Application](https://www.mirantis.com/blog/how-install-kubernetes-kubeadm/):
```
kubectl create namespace sock-shop
kubectl apply -n sock-shop -f "https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml?raw=true"
kubectl -n sock-shop get svc front-end
kubectl get pods --namespace=sock-shop
```
```
## Resources:
- https://github.com/kubernetes/kubernetes/tree/master/examples
- http://blog.pichuang.com.tw/Installing-Kubernetes-on-Linux-with-kubeadm/
- https://blog.alexellis.io/kubernetes-in-10-minutes/
- http://alexander.holbreich.org/kubernetes-on-ubuntu/
- http://alesnosek.com/blog/2017/02/14/accessing-kubernetes-pods-from-outside-of-the-cluster/
以上是关于ubuntu 安装 kubernetes的主要内容,如果未能解决你的问题,请参考以下文章