安裝
apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat << EOF >/etc/apt/sources.list.d/kubernetes.list
> deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
> EOF
apt-get update && apt-get install -y kubelet kubectl
swapoff -a
- 關掉swap的原因
- swap就是當內存不足時將部分內存數據存放到磁盤中,防止OOM
- 對於集羣化的服務(比如etcd)來說,掛掉一個實例比整個集羣都出毛病(etcd沒掛,但是服務質量很差)要好
kind單機版部署
GO111MODULE="on" go get sigs.k8s.io/kind && kind create cluster
kind delete cluseter
kubeadm部署
- 官方對kubeadmin的解釋是不適用於大規模集羣,僅用於快速搭建測試集羣
- 如果在初始化過程中出現了任何Error導致初始化終止了,使用
kubeadm reset
重置之後再重新進行初始化
- master節點部署
apt-get install -y kubeadm
kubeadm init \
--apiserver-advertise-address=<your host address> \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16
export KUBECONFIG=/etc/kubernetes/admin.conf
cp -i /etc/kubernetes/admin.conf ~/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl get pod --all-namespaces
kubectl get nodes
kubeadm token create --print-join-command
kubeadm join xxxx --token xxxx --discovery-token-ca-cert-hash sha256:xxxx
scp /etc/kubernetes/admin.conf <node>:/etc/kubernetes
export KUBECONFIG=/etc/kubernetes/admin.conf
kubectl describe node <node name>
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
debug工具部署
- 原理類似
docker exec
和sidecar,優點在於提供了大量debug工具(如curl, netstat, tcpdump等)
- 業務容器可以保持最小化, 不需要預裝任何額外的排障工具
- README
export PLUGIN_VERSION=0.1.1
curl -Lo kubectl-debug.tar.gz https://github.com/aylei/kubectl-debug/releases/download/v${PLUGIN_VERSION}/kubectl-debug_${PLUGIN_VERSION}_linux_amd64.tar.gz
tar -zxvf kubectl-debug.tar.gz kubectl-debug
sudo mv kubectl-debug /usr/local/bin/
kubectl debug <target pod> --agentless --port-forward
命令行補全
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc
echo "source <(kubectl completion zsh)" >> ~/.zshrc
source ~/.zshrc